Skip to main content

AccessTr.neT


Tabloya resim eklemek

Tabloya resim eklemek

Çözüldü #3
Sn. Celoyce gibi bende tavsiye etmiyorum ancak taşımak istediğinizde bir sürü resim resim dosyası yerine accessle beraber tek dosya olması tabii ki hoş oluyor.

Resimleri yükleyip dosyanın boyutunun ne olduğunu ve çalışma performansını görmekte fayda var.

Örnek hazırlamak için vaktim şu an vaktim yok ancak daha önce bu tür bir iş için kullandığım örnek kodu yolluyorum.

Örnekte DESENRESIM adlı tabloya resimler yükleniyor.
DESEN_TAMYOL adlı alanda resmin tam yolu ve adı var. (Türü: Metin)
DESEN_PIC adlı alana resim dosyası yükleniyor. (Türü: OLE Object)

Kodda en can alıcı yerler şunlar:
Open Rs!DESEN_TAMYOL For Binary As DosyaNo
Get #DosyaNo, , Img
Rs!DESEN_PIC = Img

Private Sub btn_Kaydet_Click()
Dim DB As DAO.Database
Dim Rs As DAO.Recordset
Dim Img() As Byte, i As Long
Dim DosyaNo As Integer

DosyaNo = FreeFile

Set DB = CurrentDb()
Set Rs = DB.OpenRecordset("Select * From DESENRESIM")

'Veriatabanını ilk kaydına gidiyoruz:
'Rs.MoveFirst

Do While Not Rs.EOF

Rs.Edit

Open Rs!DESEN_TAMYOL For Binary As DosyaNo

'Img() değişkenimize (array) tek boyutlu olarak resim dosyasının boyu kadar büyüklük atadık:
ReDim Img(LOF(DosyaNo))

'Dosyadan her adımda bir byte okuyup Img değişkeni içine yazıyoruz:
Do While Not EOF(DosyaNo)
Get #DosyaNo, , Img
i = i + 1
Loop
Close #DosyaNo
Rs!DESEN_PIC = Img

Rs.Update
Rs.MoveNext
Loop
MsgBox "Tamamlandı"
End Sub


Bu arada tabloya kaydettiğimiz resmi göstermek için, öncelikle geçici bir tabloya resim dosyası olarak kaydediyoruz, Oradan yolunu göstererek açabiliyoruz.

Private Sub Desenin_Resmini_Goster()
On Error GoTo hata

'**************Veritabanındaki Resmin Bir Dosyaya Kaydedilmesi******************
Dim Img() As Byte, i As Long, Dosya As Integer
'Veritabanının Resim alanında bulunan bilgiyi Img değişkenine yükledik:
Img = Me.DESEN_PIC

'Boş dosya numarasını aldık:
Dosya = FreeFile

'Programın çalışma yolu (Path1) ile veritabanının ResimAd alanından oluşan ve dosyanın tam uzun adını gösteren bir şekilde yeni bir dosya yarattık. Mesela: C: esimlerçiçek1.jpg
Open "Desen.jpg" For Binary As #Dosya

'Bilgiyi (resmi) yani Img'nin içindekileri Dosya nolu dosya içine kaydediyoruz:
Put #Dosya, , Img

'Dosyamızı kapatıyoruz:
Close #Dosya

'**************Veritabanındaki Resmin Bir Dosyaya Kaydedilmesi Bitti**************
'İşiniz sadece resmi göstermek ise tabiki yukarıdaki işlemleri yapmanıza gerek yok. Yukarıda 'ayrılmış alandaki kod veritabanı içinden bir resmi aynı adda programın çalışma dizini içine 'kaydeder. Aşağıdaki kod ise sadece resim gösterir:

Me.Resim_Desen1.Picture = LoadPicture("Desen.jpg")

Exit Sub
hata:
Me.Resim_Desen1.Picture = LoadPicture("")
End Sub
Bildiğini bilenin arkasından git, bildiğini bilmeyeni uyar, bilmediğini bilene öğret, bilmediğini bilmeyenden kaç.
Konfüçyüs
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
Tabloya resim eklemek - Yazar: doganbaris - 10/11/2010, 12:00
Cvp: Tabloya resim eklemek - Yazar: C*e*l*o*y*c*e - 10/11/2010, 12:23
Cvp: Tabloya resim eklemek - Yazar: Seruz - 10/11/2010, 13:38
Cvp: Tabloya resim eklemek - Yazar: doganbaris - 10/11/2010, 15:45
Cvp: Tabloya resim eklemek - Yazar: akd - 11/11/2010, 00:02
Task