Merhaba arkadaşlar..
Resim ekleme işi biraz kafa karıştırır.. Access kaynakları der ki "kayda resim ekleyeceksen ole nesnesi olarak ekle." Tamam ekleyelim ama eklediğimiz resimler dosya içine gömüldüğü için 10 resim sonra dosya boyutu balon gibi şişecek.. Bir de her sürümde istediğimiz uzantıda ekleyemeyiz.. 2003 bmp ister, 2007 de png ler sıkıntılı.. İşin özü, formlara görsel olarak eklediklerimizden harici resimleri ole nesnesi olarak eklemek çok efektif değildir..
En stabil yöntem resimleri dosyaya gömmeden, bilgisayarımızdaki konumunu kullanarak bir resim çerçevesinde göstermek..
Senaryo..:
Diyelim ki bir personel uygulamamız var. Her personele ait resimleri form üzerinden gözat penceresini kullanarak eklemek ve kayıtlar arasında gezinirken de hangi kayıt üzerindeysek o kayda ait resmi görmek istiyoruz.. Ve istiyoruz ki eklediğimiz resimleri değiştirebilelim ve hata silebilelim..
Nasıl Yapılır..:
Resim ekleyeceğimiz kayıtların bulunduğu tablomuza gidip tasarım görünümünde açıyoruz.. En sona yeni bir alan ekleyelim, ismi resim olsun. Veri tipi de Not olsun.. Bu alanda resim dosyamızın bilgisayarımızdaki yolunu saklayacağız..
![[Resim: resimekle1.jpg]](http://www.access-sql.com/resim/resimekle/resimekle1.jpg)
Tabloyu kaydedip kapalım ve formumuza geçelim.. Formumuza önce bir metin kutusu ekleyelim, ismi yine resim olsun. Özellikler / Biçim / Görünür seçeneğini Hayır yapalım..
Formumuz kayıt kaynağı olarak direkt tabloya bağlı ise bu metin kutusunun Özellikler / Veri / Denetim Kaynağı kısmına tablomuzdaki resim alanını yazalım..
Eğer formumuzun kayıt kaynağı bir sorguya dayalı ise bu sorguyu açıp tablomuzdan bu alanını da sorgu ızgarasına ekleyelim.. Bunu yapmazsak denetim kaynağında resim alanı görünmez..
Menüye alışıksanız Varolan Alanları Ekle kısmından da metin kutusu eklemeden resim alanını forma dahil edebilirsiniz..
Şimdi araç kutusundan Resim denetimi seçip formumuzun üzerine yerleştirelim.. Özellikler / Diğer / Ad kısmından da adını cerceve yapalım..
![[Resim: resimekle2.jpg]](http://www.access-sql.com/resim/resimekle/resimekle2.jpg)
Access bir resim seçmemizi isteyecek.. Aşağıdaki gibi bir resmi uygulamanız ile aynı klasöre eklerseniz resim eklenmemiş kayıtlarda bu resim görünür.. Resmi sağ tık yapıp Resmi Farklı Kaydet seçeneğinden bilgisayarınıza kaydedebilirsiniz.. (Resim 300x300 boyutlarındadır.. Küçük göründüğüne bakmayın.)
![[Resim: resimyok.jpg]](http://www.access-sql.com/resim/resimekle/resimyok.jpg)
Şimdi de forma iki düğme ekleyelim.. Birinin etiketi Ekle, diğerinin Sil olsun..
Son durum böyle olacak..:
![[Resim: resimekle3.jpg]](http://www.access-sql.com/resim/resimekle/resimekle3.jpg)
Kodlarımızı yazma aşamasına geldik.. Ekle düğmesinin Özellikler / Olay / Tıklandığında satırına çift tıklayalım.. Satırda [Olay Yordamı] ifadesi ve sağ kenarda üç noktalı bir düğme belirir.. Düğmeye tıklayalım ve açılan kod sayfasında imlecin oturduğu kısma bu kodu yazalım..:
Şimdi de Sil düğmesinin tıklandığında kod sayfasını açalım ve bu prosedürü yapıştıralım..:
Şimdi sıra kayıt gezintisi sırasında o kayda ait resmi çerçevede göstermeye geldi..
Formumuzun Özellikler / Olay / Geçerli Olduğunda kod sayfasına bunu yapıştıralım..:
Operasyon bitti sayılır.. Şimdi diyalog penceresi için gerekli olan bir referansı eklemek gerekiyor..
Kod sayfasını (VBA editörünü) açalım. Üstteki Tools Menüsünüden Refrences seçeneğine tıklayalım.. Ekrana gelen listeden Microsoft Office xx.x Object Library seçeneğini bulup onaylayalım.. (xx.x kısmı sürümünüze göre değişir..)
![[Resim: resimekle4.jpg]](http://www.access-sql.com/resim/resimekle/resimekle4.jpg)
Artık formumuz üzerinde kayıtlara resim ekleyebileceğiz..
![[Resim: resimekle5.jpg]](http://www.access-sql.com/resim/resimekle/resimekle5.jpg)
Konu anlatımı esnasında üzerinde çalıştığım dosya ektedir..
Detaylar diğer mesajlarda..
Resim ekleme işi biraz kafa karıştırır.. Access kaynakları der ki "kayda resim ekleyeceksen ole nesnesi olarak ekle." Tamam ekleyelim ama eklediğimiz resimler dosya içine gömüldüğü için 10 resim sonra dosya boyutu balon gibi şişecek.. Bir de her sürümde istediğimiz uzantıda ekleyemeyiz.. 2003 bmp ister, 2007 de png ler sıkıntılı.. İşin özü, formlara görsel olarak eklediklerimizden harici resimleri ole nesnesi olarak eklemek çok efektif değildir..
En stabil yöntem resimleri dosyaya gömmeden, bilgisayarımızdaki konumunu kullanarak bir resim çerçevesinde göstermek..
Senaryo..:
Diyelim ki bir personel uygulamamız var. Her personele ait resimleri form üzerinden gözat penceresini kullanarak eklemek ve kayıtlar arasında gezinirken de hangi kayıt üzerindeysek o kayda ait resmi görmek istiyoruz.. Ve istiyoruz ki eklediğimiz resimleri değiştirebilelim ve hata silebilelim..
Nasıl Yapılır..:
Resim ekleyeceğimiz kayıtların bulunduğu tablomuza gidip tasarım görünümünde açıyoruz.. En sona yeni bir alan ekleyelim, ismi resim olsun. Veri tipi de Not olsun.. Bu alanda resim dosyamızın bilgisayarımızdaki yolunu saklayacağız..
![[Resim: resimekle1.jpg]](http://www.access-sql.com/resim/resimekle/resimekle1.jpg)
Tabloyu kaydedip kapalım ve formumuza geçelim.. Formumuza önce bir metin kutusu ekleyelim, ismi yine resim olsun. Özellikler / Biçim / Görünür seçeneğini Hayır yapalım..
Formumuz kayıt kaynağı olarak direkt tabloya bağlı ise bu metin kutusunun Özellikler / Veri / Denetim Kaynağı kısmına tablomuzdaki resim alanını yazalım..
Eğer formumuzun kayıt kaynağı bir sorguya dayalı ise bu sorguyu açıp tablomuzdan bu alanını da sorgu ızgarasına ekleyelim.. Bunu yapmazsak denetim kaynağında resim alanı görünmez..
Menüye alışıksanız Varolan Alanları Ekle kısmından da metin kutusu eklemeden resim alanını forma dahil edebilirsiniz..
Şimdi araç kutusundan Resim denetimi seçip formumuzun üzerine yerleştirelim.. Özellikler / Diğer / Ad kısmından da adını cerceve yapalım..
![[Resim: resimekle2.jpg]](http://www.access-sql.com/resim/resimekle/resimekle2.jpg)
Access bir resim seçmemizi isteyecek.. Aşağıdaki gibi bir resmi uygulamanız ile aynı klasöre eklerseniz resim eklenmemiş kayıtlarda bu resim görünür.. Resmi sağ tık yapıp Resmi Farklı Kaydet seçeneğinden bilgisayarınıza kaydedebilirsiniz.. (Resim 300x300 boyutlarındadır.. Küçük göründüğüne bakmayın.)
![[Resim: resimyok.jpg]](http://www.access-sql.com/resim/resimekle/resimyok.jpg)
Şimdi de forma iki düğme ekleyelim.. Birinin etiketi Ekle, diğerinin Sil olsun..
Son durum böyle olacak..:
![[Resim: resimekle3.jpg]](http://www.access-sql.com/resim/resimekle/resimekle3.jpg)
Kodlarımızı yazma aşamasına geldik.. Ekle düğmesinin Özellikler / Olay / Tıklandığında satırına çift tıklayalım.. Satırda [Olay Yordamı] ifadesi ve sağ kenarda üç noktalı bir düğme belirir.. Düğmeye tıklayalım ve açılan kod sayfasında imlecin oturduğu kısma bu kodu yazalım..:
Visual Basic
- Dim gzt As FileDialog
- Dim DosyaAdi As String
- Dim SeciliNesne As Variant
- Set trz = Application.FileDialog(msoFileDialogFilePicker)
- With trz
- .AllowMultiSelect = False
- .ButtonName = "Resim Seç"
- .Filters.Add "Resimler", _
- "*.gif; *.jpg; *.jpeg; *.bmp; *.png"
- .FilterIndex = 0
- .InitialFileName = Environ("UserProfile") & "\My Documents\"
- .InitialView = msoFileDialogViewThumbnail
- .Title = "Resim Seç..."
- If .Show = True Then
- For Each SeciliNesne In .SelectedItems
- DosyaAdi = SeciliNesne
- Next SeciliNesne
- Me.resim = DosyaAdi
- Me.cerceve.Picture = DosyaAdi
- End If
- End With
Şimdi de Sil düğmesinin tıklandığında kod sayfasını açalım ve bu prosedürü yapıştıralım..:
Visual Basic
- If MsgBox("Kayda ait resim silinecek. Onaylıyor musunuz?" _
- , vbYesNo, "Resim Sil") = vbYes Then
- Me.resim = ""
-
- 'Çerçevede, aynı klasörde bulunan resimyok adndaki resim görünür..
- 'Bu resim yoksa çerçeve boş görünür..
- On Error Resume Next
- Me.cerceve.Picture = CurrentProject.Path & "\resimyok.jpg"
- End If
Şimdi sıra kayıt gezintisi sırasında o kayda ait resmi çerçevede göstermeye geldi..
Formumuzun Özellikler / Olay / Geçerli Olduğunda kod sayfasına bunu yapıştıralım..:
Visual Basic
- On Error GoTo hata
- If Nz(resim, "") = "" Then
- Me.cerceve.Picture = CurrentProject.Path & "\resimyok.jpg"
- Else
- Me.cerceve.Picture = resim
- End If
- Exit_hata:
- Exit Sub
-
- hata:
- MsgBox "Resim bulunamadı.." _
- & Chr(10) & "Resim dosyanız silinmiş," _
- & " yeri veya ismi değişmiş olabilir..", vbInformation, "Hata"
- Me.cerceve.Picture = ""
- Resume Exit_hata
Operasyon bitti sayılır.. Şimdi diyalog penceresi için gerekli olan bir referansı eklemek gerekiyor..
Kod sayfasını (VBA editörünü) açalım. Üstteki Tools Menüsünüden Refrences seçeneğine tıklayalım.. Ekrana gelen listeden Microsoft Office xx.x Object Library seçeneğini bulup onaylayalım.. (xx.x kısmı sürümünüze göre değişir..)
![[Resim: resimekle4.jpg]](http://www.access-sql.com/resim/resimekle/resimekle4.jpg)
Artık formumuz üzerinde kayıtlara resim ekleyebileceğiz..
![[Resim: resimekle5.jpg]](http://www.access-sql.com/resim/resimekle/resimekle5.jpg)
Konu anlatımı esnasında üzerinde çalıştığım dosya ektedir..
Detaylar diğer mesajlarda..

Bulunamayan yerleri bulmak için önce kaybolmak gerekir.
SORU SORMA KILAVUZU
Giriş | Sormadan Önce | İlgili Forumu dikkatlice seçin | Anlamlı ve duruma uygun konu başlıkları kullanın | Anlamsız soru cümleleri kurmayın | Açık, dilbilgisi kurallarına uygun ve sözdizimlerine dikkate ederek yazın | Sorunuz sizin için çok acil olsa bile, çok acil diye yazmayın | Sorununuz hakkında tam ve aydınlatıcı iletiler yazın | Amacınızı belirtin | Problemin belirtilerini tanımlayın, kendi tahminlerinizi değil | Sorunuz hakkında açık olun | Nezaket asla yaralamaz ve bazen oldukça yararlıdır | Boyut her şey değildir! | Kabalıkla ilgilenmek | Cevabı E-Posta ile istemeyin | İnsanlardan özel mesajla cevap vermelerini istemeyin | Eğer cevabı anlamadıysanız | Şayet bir cevap alamazsanız | Sorununuz çözüldükten sonra küçük bir not ile bildirin | Sorulmaması gereken türde sorular | İyi ve kötü sorular
Sorulara nasıl doğru düzgün cevap verilir
Kaptan Hector Barbossa
SORU SORMA KILAVUZU
Giriş | Sormadan Önce | İlgili Forumu dikkatlice seçin | Anlamlı ve duruma uygun konu başlıkları kullanın | Anlamsız soru cümleleri kurmayın | Açık, dilbilgisi kurallarına uygun ve sözdizimlerine dikkate ederek yazın | Sorunuz sizin için çok acil olsa bile, çok acil diye yazmayın | Sorununuz hakkında tam ve aydınlatıcı iletiler yazın | Amacınızı belirtin | Problemin belirtilerini tanımlayın, kendi tahminlerinizi değil | Sorunuz hakkında açık olun | Nezaket asla yaralamaz ve bazen oldukça yararlıdır | Boyut her şey değildir! | Kabalıkla ilgilenmek | Cevabı E-Posta ile istemeyin | İnsanlardan özel mesajla cevap vermelerini istemeyin | Eğer cevabı anlamadıysanız | Şayet bir cevap alamazsanız | Sorununuz çözüldükten sonra küçük bir not ile bildirin | Sorulmaması gereken türde sorular | İyi ve kötü sorular
Sorulara nasıl doğru düzgün cevap verilir