Access İçindeki Webbrowser Dan Resim Nasıl Alınır

1 2 3
13/02/2020, 13:36

xoseng

Private Sub resimal_Click()
    Dim AlinanResim As Object
Dim image_src As String

Set Image = WebBrowser.Document.getElementById("OOMPageHeader1_imgOgrenciResim")

image_src = Image.src
       
        URLDownloadToFile 0, image_src, CurrentProject.Path & "\resim.png", 0, 0
        Me.Resim.Picture = CurrentProject.Path & "\resim.png"
Bu kodlarda hata yapıyorum sanırım, resim alamadım.
URLDownloadToFile kısmında hata veriyor.

Benim verdiğim linkteki örnek dosyadaki kodları kullanmamışsınız. Ayrıca resim, ilişkili nesne çerçevesi olmayacak, resim denetimi olacak.

ekli uygulamada, img id "image1" yazdığımda doğrulama resmini alıyor. Siz image1 yerine OOMPageHeader1_imgOgrenciResim yazacaksınız.hata veriyor,



office 2016 64 bit kullandığım için olabilir mi?
13/02/2020, 16:09

ozanakkaya

Ptrsafe yanlış yere eklenmiş, aşağıdaki ile değiştirin.

#If VBA7 Then
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, _
ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#Else
Private Declare Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, _
ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#End If
13/02/2020, 17:56

xoseng

(13/02/2020, 16:09)ozanakkaya yazdı: Ptrsafe yanlış yere eklenmiş, aşağıdaki ile değiştirin.

#If VBA7 Then
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, _
ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#Else
Private Declare Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, _
ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
#End If
64 bit için bu kod çalışıyor ve ilişkisiz nesne çerçevesine resimi alıyor, sonra formda başka bir işleme izin vermiyor ve ilişkili nesneyi tablo öğesine bağlayınca tabloda görünmüyor, ama formda görünüyor. Form kapatılıp açılınca resim gitmiş oluyor. Alınan resim Access dosyasının dışında ve aynı klasöre kayıt edilmiş oluyor. Formda gezintiye izin verilmiyor, bir kaç kayıttan resim alındığında hep aynı resim üzerine yazıyor. Nerede hata yaptım acaba bakabilir misiniz.
13/02/2020, 22:21

ozanakkaya

Tablodaki resim alanı metin olarak değiştirildi. Tabloya tckimlikno alanı eklendi.

Resim al butonuna tıkladığınızda resmi, uygulama ile aynı dizindeki resimler klasörüne tckimlikno.png olarak kaydeder. Siz kendi uygulamanızdaki tckimlikno metin kutusunu kullanmalısınız.
13/02/2020, 23:40

xoseng

Bu dosyayı denedim, bazı kısmi sorunlar var. Alınan resim Me.Resim1.Picture de (pano) saklandığı için yeni kayıt ekle denildiğinde makro hatası veriyor ve makro durdurulunca işlem yapıyor, bir de kayıt sil denildiğinde aynı sorun çıkıyor. Tüm kayıtlar silindiğinde bile son Me.Resim1.Picture duruyor.
çözüm olarak, resim Access tablosunda OLE nesnesinde saklansa ve dışa veya başka bir yere bağlantı verilmezse olamaz mı acaba? 
14/02/2020, 00:10

xoseng

If My.Computer.Clipboard.ContainsImage() Then
  Dim grabpicture As System.Drawing.Image
  grabpicture = My.Computer.Clipboard.GetImage()
  picturebox1.Image = grabpicture
............. = ...............
Else
............. = .............
End If
Bu şekilde bir komut yardımı ile resim panoya alınıp ilgili ResimOLE nesnesine yapıştırılsa, yapıştırıldıktan sonra pano boşaltılsa nasıl olur?
1 2 3