13/09/2021, 14:56
Arkadaşlar ekte gönderdiğim dosyalarla Access sorgu tablosundan excel' veri almaya çalışıyorum Vba kodlarını yazdım ama bir türlü beceremedim yardımcı olursanız sevinirim.
SELECT Personel.Ad, Personel.Soyad, Sum(Satıs.tutar) AS İfade1
FROM Personel INNER JOIN Satıs ON Personel.Sicil = Satıs.Sicil, Satıs AS Satıs_1 INNER JOIN Personel AS Personel_1 ON Satıs_1.Sicil = Personel_1.Sicil
GROUP BY Personel.Ad, Personel.Soyad;
kodu aşağıdaki gibi düzenleyip dener misiniz?Dim Sql As String
Dim ADO_RS As ADODB.Recordset
Dim ADO_CN As ADODB.Connection
SQL = "SELECT * FROM Sorgu1 WHERE Ad = 'Fatih'"
Set ADO_RS = New ADODB.Recordset
Set ADO_CN = New ADODB.Connection
ADO_CN.ConnectionString = "provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ThisWorkbook.Path & "\Örnek.accdb;"
ADO_CN.Open
ADO_RS.Open SQL, ADO_CN, 3, 1 ' güncelleme yapabilmek için 1,3 0lmalı yada adOpenKeyset, adLockOptimistic
Sheets("Sayfa1").Range("A3").CopyFromRecordset ADO_RS
son:
ADO_RS.Close
ADO_CN.Close
Set ADO_RS = Nothing
Set ADO_CN = Nothing
Sheets("Sayfa1").Range("A4") = ADO_RS.Fields("Ad")
(13/09/2021, 17:23)karacaayt yazdı: [ -> ]toplam sütununda veriler hatalı oldu yani topla sonucu doğru değil.sorgunuzdaki amacı bilmediğimden çalışan bir sorgu olsun diye yazmıştım aslında sorgu kısmı için yeni konu açıp orada ayrıntılı açıklamada bulunarak sormanız daha uygun
(13/09/2021, 17:23)karacaayt yazdı: [ -> ]ayrı ayrı hücrelere yardırmak için ne yapmalıamacınız tam olarak ne o önemli bütün sorguyu alacaksanız önerdiğim CopyFromRecordset ADO_RS kodu zaten tüm veriyi alıyor
Sheets("Sayfa1").Range("A4") = ADO_RS.Fields("Ad")
aslında doğru hata vermemesi gerekSheets("Sayfa1").Range("A3").CopyFromRecordset ADO_RS
Sheets("Sayfa1").Range("A4") = ADO_RS.Fields("Ad")