Skip to main content

AccessTr.neT


Access'den Excel'e Farklı Tablolardan Veri Aktarma Sorunu

Access'den Excel'e Farklı Tablolardan Veri Aktarma Sorunu

#7
gönderdiğiniz örnekle yazdığınız kodlar arasında hiç bir ilişki yok
1 - gelmesi istenen sorgu Hedef_Gerceklesme_2021 ama Access çalışmanızda bu sorgu yok
2 - kodda data klasöründe demişsiniz çalışmanızda klasör yok
3 - tablonuzun adı kodda farklı
yani çalışmanız eklemenizi istediğimizde baştan savma hazırlamayın lütfen
"yine hata verdi" demişsiniz ama nerede hata verdiğini belirtmemişsiniz, hatanın açıklamasını da yazmamışsınız
bu kodun her şeyi hatalı
o nedenle dosya yolunu ve adını doğru yazdığınızdan
sorgunun adının doğru olduğundan emin olun
son olarak siz accessin yolu olarak "Data Source=" & ThisWorkbook.Path & "DATA\data.accdb;" yazmışsınız oysa burası
"Data Source=" & ThisWorkbook.Path & "\DATA\data.accdb;" olmalıydı
\ koymazsanız dosya yolunu yanlış yazar
Cevapla
#8
Bir önceki mesajda da bahsettiğim gibi asıl uğraştığım projeyi paylaşamadığım için örnek dosyalar üzerinden sorularımı sorabiliyorum. Son yazdığım mesajdaki kodlarda esas çalıştığım projeye ait olduğu için örnekteki dosyalar ile farklı oldu. Açıkcası kodlar örnek dosyada çalıştığı, esas projede çalışmadığı için basit bir hata yapıyorum düşüncesi ve hızlıca çözüme ulaşmak için kodları direk kopyalıyım masaj attım. Bu nedenle biraz özensiz oldu ise kusura bakmayın.

Sorun şu ki, örnek dosyada Excel sayfasında yer alan butona tıklayınca Access veri tabanından veriler geliyordu. Bunu esas projede Excel açıldığında veriler gelecek şekilde yapmaya çalıştığımda hata verdi. Sonrasında örnek dosyada da aynı kodu Excel açılınca çalışacak şekilde kurguladığımda da hata verdiğini fark ettim. Yani örnek dosyadaki kodu aşağıdaki şekilde Excel açılınca çalışacak şekilde düzenleyince hata veriyor. Ne kadar uğraştıysam da sorunu çözemedim. Yardımlarınızı bekliyorum.


Kod:
Private Sub Workbook_Open()

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("A4") = ADO_RS.Fields("Ad")




ADO_RS.Close
ADO_CN.Close
Set ADO_RS = Nothing
Set ADO_CN = Nothing



SQL = "SELECT Ad FROM Sorgu2"


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

Range("A6").CopyFromRecordset ADO_RS


ADO_RS.Close
ADO_CN.Close
Set ADO_RS = Nothing
Set ADO_CN = Nothing



SQL = "SELECT Soyad FROM Sorgu2"


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

Range("C6").CopyFromRecordset ADO_RS



son:
ADO_RS.Close
ADO_CN.Close
Set ADO_RS = Nothing
Set ADO_CN = Nothing


End Sub

Cevapla
#9
yukardaki kodu ilk mesajınızdaki Excel dosyasının açıldığında olayına yazdım
açıldığında sorunsuz şekilde verileri aldı
sorun sizin dosya adresinde, adında yada tablolarınızda olabilir
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task