Çözüldü Sql veri tabanındaki resmi exceldeki image içine getirme

Bu sorun verilen destek sayesinde çözüme ulaştırılmıştır.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

egemir

Yeni Üye
Kullanıcı Bilgileri
Katılım
6 Eyl 2021
Mesajlar
124
Aldığı beğeni
13
Excel Versiyonu
Office 2013 TR
Konuyu Başlatan
merhaba,
veri tabanı sqlde bulunan resmi makro ile exceledeki image nesnesinin içine nasıl getirebilirim?
yardım lütfen
 
Çözüm
excel sayfasına image içerisine yada hücreye hiçbir resim getiremedim
resim = "C:\foto\personel.jpg"
belirttiğim path e veritabanından indiriyor ancak sayfama eklemiyor
Bazı durumlarda veritabanından dosya alırken bozarak alabiliyor. Belirttiğiniz yoldaki dosyayı çift tıklayarak açmayı denediniz mi? resmi görüntüleyebiliyor musunuz? Ayrıca image nesnesinin desteklediği bir formatta olduğundan emin miyiz?

ZaLim

hepSi bir yaLan . . .
Destek Ekibi
Kullanıcı Bilgileri
Katılım
7 Mar 2021
Mesajlar
218
Çözümler
4
Aldığı beğeni
242
Excel Versiyonu
Office 2013 TR
Merhaba @egemir
Konuya ait örnek belge paylaşabilir misiniz.
 

egemir

Yeni Üye
Kullanıcı Bilgileri
Katılım
6 Eyl 2021
Mesajlar
124
Aldığı beğeni
13
Excel Versiyonu
Office 2013 TR
Konuyu Başlatan
Range("G4") = baglantirst.Image(33)
sqldeki 33. dosya resim diğer kayıt bilgilerini getirdim ancak resim kısmını excelede gösteremedim yardımcı olursanız sevinirim
 

halily

Destek Ekibi
Kullanıcı Bilgileri
Katılım
29 Ağu 2021
Mesajlar
1,917
Çözümler
259
Aldığı beğeni
1,884
Excel Versiyonu
Office 2019 TR
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
dilerim işinize yarar
 

egemir

Yeni Üye
Kullanıcı Bilgileri
Katılım
6 Eyl 2021
Mesajlar
124
Aldığı beğeni
13
Excel Versiyonu
Office 2013 TR
Konuyu Başlatan
merhaba
ben macro konusunda biraz yeniyim kusura bakmayın sqlden resmi çekeceğim ResminAdrs = "resmin Adresi" '"baglantirst.Image(33)'""
yazmammı gerekiyor acaba
 

egemir

Yeni Üye
Kullanıcı Bilgileri
Katılım
6 Eyl 2021
Mesajlar
124
Aldığı beğeni
13
Excel Versiyonu
Office 2013 TR
Konuyu Başlatan
merhaba
ben macro konusunda biraz yeniyim kusura bakmayın sqlden resmi çekeceğim ResminAdrs = "resmin Adresi" '"baglantirst.Image(33)'""
yazmammı gerekiyor acaba
PHP:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

yukarıdaki kodları kullandığımda picture sınıfının insert özelliği alınamıyor diye hata veriyor
 

halily

Destek Ekibi
Kullanıcı Bilgileri
Katılım
29 Ağu 2021
Mesajlar
1,917
Çözümler
259
Aldığı beğeni
1,884
Excel Versiyonu
Office 2019 TR
kusura bakmayın ben soruyu farklı yorumlamışım.
sanki resim sunucuda bağımsız olarak bulunuyor gibi yorumladım
tabloya gömülü olduğunu fark etmemişim
 

egemir

Yeni Üye
Kullanıcı Bilgileri
Katılım
6 Eyl 2021
Mesajlar
124
Aldığı beğeni
13
Excel Versiyonu
Office 2013 TR
Konuyu Başlatan
rica ederim inşallah yardımcı olarak bir kişi bulabilirim
 

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
774
Çözümler
99
Aldığı beğeni
870
Excel Versiyonu
Office 2021 TR
Örneği çok uzatmadan 3 farklı alan adınız olduğunu varsayıyorum.
ID, DosyaAdi, Dosya
ID = Sayı
DosyaAdi = metin
Dosya = blob (Binary Large Object)

IDDosyaAdiDosya
1DosyaAdiniz1.jpgDosya blob verisi
2DosyaAdiniz2.jpgDosya Blob verisi
Veritabanınızda 2 dosya var ve dosya adlarınızı da DosyaAdi alanında tutuyorsunuz.

(Userform Üzerinde Image1 nesnesi olduğunu ve bu nesneye resim çağırmak için kullanılan CommandButton1 nesnesi olduğunu varsayıyorum.)
Aşağıdaki kod ile veritabanınızdan resim verisini çekip image nesnesi üzerinde gösterebilirsiniz.

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Not: Örnek kod olduğu için hata denetimleri ve diğer bir kaç ayrıntı göz ardı edilmiştir.

Düzeltme:
Kodun mantığını açıklayacak olursak, bağlantı nesnesi açılır, rs değişkenine veriler getirilir. rs değişkeni içerisindeki blob veriyi strm(adodb.stream) değişkeni içerisine aktarır. Aktarılan veri excel dosyanızın bulunduğu yola blob veriyi dosya olarak aktarır. Son olarak aktarılan dosya LoadPicture() ile image nesnesine aktarılır.
 
Son düzenleme:

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
774
Çözümler
99
Aldığı beğeni
870
Excel Versiyonu
Office 2021 TR
Ayrıca kodunuzdaki döngü yanlış kurulmuş. Her defasında en son kişinin verilerini aynı hücrelere getirecek gibi duruyor. Diyelim ki sorgunuz 5 kişi getirdi, hücreye en son 5. kişinin verilerini yazacağından dolayı ilk 4 kişiyi göremeyeceksiniz.
 

egemir

Yeni Üye
Kullanıcı Bilgileri
Katılım
6 Eyl 2021
Mesajlar
124
Aldığı beğeni
13
Excel Versiyonu
Office 2013 TR
Konuyu Başlatan
Örneği çok uzatmadan 3 farklı alan adınız olduğunu varsayıyorum.
ID, DosyaAdi, Dosya
ID = Sayı
DosyaAdi = metin
Dosya = blob (Binary Large Object)

IDDosyaAdiDosya
1DosyaAdiniz1.jpgDosya blob verisi
2DosyaAdiniz2.jpgDosya Blob verisi
Veritabanınızda 2 dosya var ve dosya adlarınızı da DosyaAdi alanında tutuyorsunuz.

(Userform Üzerinde Image1 nesnesi olduğunu ve bu nesneye resim çağırmak için kullanılan CommandButton1 nesnesi olduğunu varsayıyorum.)
Aşağıdaki kod ile veritabanınızdan resim verisini çekip image nesnesi üzerinde gösterebilirsiniz.

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Not: Örnek kod olduğu için hata denetimleri ve diğer bir kaç ayrıntı göz ardı edilmiştir.
olmadı 3265 hatası veriyor
 

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
774
Çözümler
99
Aldığı beğeni
870
Excel Versiyonu
Office 2021 TR
olmadı 3265 hatası veriyor
Kodu kendi kodlarınıza tam olarak nasıl uyarladınız. Uyarladığınız kodun tam olarak neresinde hata veriyor. Örnek dosya isteyip deneme yapmak isterdim ama sql serverdan veri çektiğiniz için bu mümkün görünmüyor.
 

egemir

Yeni Üye
Kullanıcı Bilgileri
Katılım
6 Eyl 2021
Mesajlar
124
Aldığı beğeni
13
Excel Versiyonu
Office 2013 TR
Konuyu Başlatan
Kodu kendi kodlarınıza tam olarak nasıl uyarladınız. Uyarladığınız kodun tam olarak neresinde hata veriyor. Örnek dosya isteyip deneme yapmak isterdim ama sql serverdan veri çektiğiniz için bu mümkün görünmüyor.
Genel değişken tanımlamaları
Dim yuklendimi As Boolean
Dim veritabaniismi, veritabanikullanici, veritabanisifre, strBaglanti, strSQL, anaveritabani As String
Dim baglanti As ADODB.Connection
Dim baglantirst, baglantirst1 As ADODB.Recordset
Dim hichatayok As Boolean
Dim VtAdi As String
Dim VtKulAdi As String
Dim VtSifre As String
Dim S_KODU As Integer
Sub GETİR()
'Veritabanı bağlantıları
Set baglanti = New ADODB.Connection
Set baglantirst = New ADODB.Recordset
strBaglanti = "PROVIDER=SQLOLEDB;"
strBaglanti = strBaglanti & "DATA SOURCE=" & veritabaniismi & ";INITIAL CATALOG=" & anaveritabani & "; Auto Translate=False;"
strBaglanti = strBaglanti & "UID=" & veritabanikullanici & ";PWD=" & veritabanisifre
baglanti.ConnectionString = strBaglanti
baglanti.Open
Set baglantirst.ActiveConnection = baglanti
baglantirst.Open "SELECT * FROM table_personel_sozlesme WHERE AD like '" & Range("D5") & "' AND SOYAD like '" & Range("D7") & "' ", baglanti, 1, 3
Dim bosmu As Boolean
bosmu = True
TEMİZLE
While Not baglantirst.EOF
Range("D8") = baglantirst.Fields(1)
Range("D5") = baglantirst.Fields(2)
Range("D7") = baglantirst.Fields(3)
Range("D10") = baglantirst.Fields(4)
Range("D12") = baglantirst.Fields(5)
Range("D14") = baglantirst.Fields(6)
Range("D16") = baglantirst.Fields(7)
Range("C26") = baglantirst.Fields(8)
Range("C27") = baglantirst.Fields(8)
Range("C28") = baglantirst.Fields(10)
Range("C29") = baglantirst.Fields(11)
Range("C30") = baglantirst.Fields(12)
Range("C31") = baglantirst.Fields(13)
Range("C32") = baglantirst.Fields(14)
Range("C33") = baglantirst.Fields(15)
Range("C34") = baglantirst.Fields(16)
Range("C35") = baglantirst.Fields(17)
Range("H26") = baglantirst.Fields(18)
Range("H27") = baglantirst.Fields(19)
Range("H28") = baglantirst.Fields(20)
Range("H29") = baglantirst.Fields(21)
Range("H30") = baglantirst.Fields(22)
Range("H31") = baglantirst.Fields(23)
Range("H32") = baglantirst.Fields(24)
Range("H33") = baglantirst.Fields(25)
Range("H34") = baglantirst.Fields(26)
Range("H35") = baglantirst.Fields(27)
Range("C41") = baglantirst.Fields(28)
Range("C37") = baglantirst.Fields(28)
Range("H37") = baglantirst.Fields(29)
Range("C42") = baglantirst.Fields(29)
Range("G4") = baglantirst.Image(33)
Range("D43") = baglantirst.Fields(32)
Range("C43") = baglantirst.Fields(31)
Range("D18") = baglantirst.Fields(30)
bosmu = False
baglantirst.MoveNext
Wend
If (bosmu = True) Then
MsgBox ("Personel Kaydı Bulunamadı.")
Exit Sub
End If
baglantirst.Close
End Sub
Sub TEMİZLE()
Range("D8") = ""
Range("D5") = ""
Range("D7") = ""
Range("D10") = ""
Range("D11") = ""
Range("D12") = ""
Range("D14") = ""
Range("D16") = ""
Range("D18") = ""
Range("C26") = ""
Range("C27") = ""
Range("C28") = ""
Range("C29") = ""
Range("C30") = ""
Range("C31") = ""
Range("C32") = ""
Range("C33") = ""
Range("C34") = ""
Range("C35") = ""
Range("H26") = ""
Range("H27") = ""
Range("H28") = ""

Range("H29") = ""
Range("H30") = ""
Range("H31") = ""
Range("H32") = ""
Range("H33") = ""
Range("H34") = ""
Range("H35") = ""
Range("H37") = ""
Range("C37") = ""
Range("C41") = ""
Range("C42") = ""
Range("C43") = ""
Range("D43") = ""
End Sub

resim dışında bu kodlar çalışıyor buradan yola çıkabilirsiniz sanırım
 

halily

Destek Ekibi
Kullanıcı Bilgileri
Katılım
29 Ağu 2021
Mesajlar
1,917
Çözümler
259
Aldığı beğeni
1,884
Excel Versiyonu
Office 2019 TR
sql 'deki tabloyu yerel access dosyasına çevirip buraya access+excel dosyası olarak ekleseniz?
tüm verilere gerek yok access dosyanızda aslına uygun 4-5 kayıt olması yeterli
 

egemir

Yeni Üye
Kullanıcı Bilgileri
Katılım
6 Eyl 2021
Mesajlar
124
Aldığı beğeni
13
Excel Versiyonu
Office 2013 TR
Konuyu Başlatan
doğrudur ancak benden istenen bu şekilde sqldeki veri excele hücreye aktarılacak
çözümünü bulamadım ne yazıkki
 

halily

Destek Ekibi
Kullanıcı Bilgileri
Katılım
29 Ağu 2021
Mesajlar
1,917
Çözümler
259
Aldığı beğeni
1,884
Excel Versiyonu
Office 2019 TR
amacım sadece yerelde çözümü bulmak yerelde sorun çözülünce siz zaten kodu sadece SQLdeki bağlantıya göre düzenlersiniz
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Konuyu okuyanlar

Üst