13/09/2021, 14:56
Access'den Excel'e Veri Aktarma Sorunu
1 2
13/09/2021, 15:31
berduş
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
13/09/2021, 17:23
karacaayt
@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:34
berduş
(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?
16/09/2021, 16:37
karacaayt
Kod:
Sheets("Sayfa1").Range("A3").CopyFromRecordset ADO_RS
Kod:
Sheets("Sayfa1").Range("A4") = ADO_RS.Fields("Ad")
Şimdi de şöyle bir sorumun var. Sorgudaki belirli bir kolonu Excel de belirli bir kolona yazdırmak istiyorum ama beceremedi. Örneğin sorgudaki "Ad" kolonunundaki bütün verileri Excel de "B4" hücresinden aşağı doğru yazdır diyebilir miyim?
16/09/2021, 16:47
berduş
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
1 2