MS Access Veritabanları, VBA ve SQL Kullanımı

Microsoft Access'e dair herşey...

Forma Resim Ekleme -2

 Forma Resim Ekleme -2

2.Yöntem 

Bu yöntemimizde eklediğimiz resmin sadece yolunu tablomuzda saklayacağız. Bu yöntemin dezavantajı eklediğiniz resimlerin bulunduğu klasör adını ve dosya adlarını ve uzantılarını eğer sonradan değiştirirseniz resim görünmeyecek hata verecektir.

İlk olarak yapacağımız iş Personel tablosuna resim eklemek için fotograf adında bir alan açıp veri türünü de Uzun Metin olarak tanımlamak.


forma resim ekleme


Daha sonra formumuzu oluşturuyoruz. Kayıt Kaynağını personel tablomuz olan tbl_personel olarak ayarlıyoruz.

forma resim ekleme

Yukarıdaki şekilde de açıklandığı gibi fotograf alanı fotoğraf yol bilgisini saklar. Bunu formda görmemize gerek yok, onun için bu alanın görünür özelliğini false yapalım. Tasarım sekmesinden Resim nesnesini seçelim ve formun uygun yerine yerleştirelim. 

forma resim ekleme


Özelliklerden ad kısmına cerceve diyelim. Daha sonra fotoğrafı olmayan personellerin fotoğrafı yerine fotografyok.jpg adlı dosyamızı yine özelliklerden resim kısmına tanımlayalım.


forma resim ekleme


forma resim ekleme

Formumuzun son hali aşağıdaki gibi olmalıdır.



Uygulamamızın hata vermemesi için bir de referans tanımlamalıyız. Bunu da VBA editöründe  Tools Sekmesinden References kısmından ayarlıyoruz.

forma resim ekleme
Formumuzu çalıştıralım.


forma resim ekleme

VBA Kodları:

Formumuzun Current Olayı;

On Error GoTo hata
    If Nz(fotograf, "") = "" Then
        Me.cerceve.Picture = CurrentProject.Path & "\fotografyok.jpg"
    Else
        Me.cerceve.Picture = fotograf
    End If
Exit_hata:
    Exit Sub

hata:
    MsgBox "Fotoğraf bulunamadı.." _
           & Chr(10) & "Fotoğraf dosyanız silinmiş," _
           & " yeri veya ismi değişmiş olabilir..", vbInformation, "Hata"
           Me.cerceve.Picture = ""
    Resume Exit_hata

Ekle butonunun Click Olayı;

Dim onr As Object
Dim DosyaAdi As String
Dim SeciliNesne As Variant
Dim asil As String
Dim kopya As String
Dim xl

Set onr = Application.FileDialog(msoFileDialogFilePicker)
With onr
    .AllowMultiSelect = False
    .ButtonName = "Fotoğraf Seç"
    .Filters.Add "Fotoğraflar", _
                  "*.gif; *.jpg; *.jpeg; *.bmp; *.png"
    .FilterIndex = 0
    .InitialFileName = Environ("UserProfile") & "\My Documents\"
    .InitialView = msoFileDialogViewThumbnail
    .Title = "Fotoğraf Seç..."
        If .Show = True Then
            For Each SeciliNesne In .SelectedItems
            DosyaAdi = SeciliNesne
            Next SeciliNesne
            Me.fotograf = DosyaAdi
            Me.cerceve.Picture = DosyaAdi
On Error Resume Next
    asil = Me.fotograf

    kopya = CurrentProject.Path & "\Fotograflar\" _
& Me.personelID & Me.ad & Right(Dir(asil), 4)

Set xl = CreateObject("Scripting.FileSystemObject")
 
xl.CopyFile asil, kopya
Me.fotograf = kopya
Me.cerceve.Picture = kopya

End If
End With

Sil butonunun Click Olayı;

If MsgBox("Kayda ait fotoğraf silinecek. Onaylıyor musunuz?" _

                , vbYesNo, "Fotoğraf Sil") = vbYes Then

Me.fotograf = ""

On Error Resume Next

Me.cerceve.Picture = CurrentProject.Path & "\fotografyok.jpg"

End If

NOT: Uygulamanızın bulunduğu klasörde, Fotograflar adlı bir klasör ve fotografyok.jpg isimli varsayılan bir fotoğraf dosyası bulunması gerekir. Veritabanına fotoğrafları ekledikten sonra bu fotoğrafların isimleri veya yerleri değişirse veya silinirse  program hata verecektir.


Yorum Gönder

0 Yorumlar