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.
Access'den Excel'e Veri Aktarma Sorunu
access veritabanındaki sorgunuz hatalı önce onu düzenlemelisiniz?
sorgu kodunuzu aşağıdaki kodla değiştirebilirsiniz
unutmayın bu kod accessteki sorgu1 kodu
bu kod ise Excelde olacak
kusura bakmayın unutmuşum belirtmeyi
referanslardan Microsoft ActiveX Data Object x.x Library eklenmeli
sorgu kodunuzu aşağıdaki kodla değiştirebilirsiniz
unutmayın bu kod accessteki sorgu1 kodu
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?bu kod ise Excelde olacak
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
kusura bakmayın unutmuşum belirtmeyi
referanslardan Microsoft ActiveX Data Object x.x Library eklenmeli
@berduş Üstat yardımın için çok teşekkürler, seni de uğraştırıyorum ama access'teki sorgu1 için verdiğin Sql kodu ile toplam sütununda veriler hatalı oldu yani topla sonucu doğru değil.
Bir de üstat verileri ayrı ayrı hücrelere yardırmak için ne yapmalı aşağıdaki kodu kullandım ama hata verdi.
Bir de üstat verileri ayrı ayrı hücrelere yardırmak için ne yapmalı aşağıdaki kodu kullandım ama hata verdi.
Kod:
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
ama amacınız belli bir kaydın verilerini belli hücreler aktarmaksa
Sheets("Sayfa1").Range("A4") = ADO_RS.Fields("Ad")
aslında doğru hata vermemesi gerekdosyanızın hata veren haliyle ekler misiniz?
Kod:
Sheets("Sayfa1").Range("A3").CopyFromRecordset ADO_RS
Kod:
Sheets("Sayfa1").Range("A4") = ADO_RS.Fields("Ad")
Sorgudan gelen tüm veriler mi sayfaya aktarılacak yoksa sadece belli başlı sütunlar mı?
mesela Sheets("Sayfa1").Range("A2").CopyFromRecordset ADO_RS kodu sorgudaki tüm verileri A2'den aşağı doğru kopyalar
isterseniz verileri alrken kullandığınız sorguda alanların yerini değiştirerek istediğiniz alanın istediğiniz sütuna gelmesini sağlayabilirsiniz
ama açıkçası kast ettiğinizi tam anlamadım sadece tek sütun mu alınacak
yoksa 2. sütun B2'ye 6. sütun C2 arada 3 sütun boş bırak 3 sütun D2'ye tarzı bir şey mi istediğiniz
gerekirse elle girerek görünmesini istediğiniz sonucu hazırlar mısınız
mesela Sheets("Sayfa1").Range("A2").CopyFromRecordset ADO_RS kodu sorgudaki tüm verileri A2'den aşağı doğru kopyalar
isterseniz verileri alrken kullandığınız sorguda alanların yerini değiştirerek istediğiniz alanın istediğiniz sütuna gelmesini sağlayabilirsiniz
ama açıkçası kast ettiğinizi tam anlamadım sadece tek sütun mu alınacak
yoksa 2. sütun B2'ye 6. sütun C2 arada 3 sütun boş bırak 3 sütun D2'ye tarzı bir şey mi istediğiniz
gerekirse elle girerek görünmesini istediğiniz sonucu hazırlar mısınız
Konuyu Okuyanlar: 1 Ziyaretçi