Excel ile Access in iki tablosundan veri almak

mnz

Katılım
5 Eylül 2005
Mesajlar
282
Excel Vers. ve Dili
Excel 2002 (Tr)
Bir buton komutu ile Excel den Accessin iki tablosundan veri almak istediğimizde iki kayıt kümesi olamayacağı ile ilgili hata alıyorum. Elinde küçük bir örnek olan varmı?
 

mnz

Katılım
5 Eylül 2005
Mesajlar
282
Excel Vers. ve Dili
Excel 2002 (Tr)
Sayın red_lion72 ilginize teşekkürler.
Vermiş olduğunuz linkteki örneğe göre konuşursak,
vt1.mdb dosyasındaki Tablo1 den tüm kayıtlar alınabilir ancak birde Tablo2 içinde veriler olduğunu düşünelim. Excelden userform a her iki tablodan veri çağırmak istiyorum.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,306
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

Şöyle bir şeyler yapılabilir ....

- Access dosyamızın bilgisayardaki konumu aşağıdaki gibi olsun:

C:\TestDB\MyDB.mdb

- Bu "mdb" dosyasında 2 adet tablomuz ve bazı alanlar olsun,

- MyTable1 tablosunda; isim - soyad - tel alanları olsun,

- MyTable2 tablosunda; meslek - adres- TCKimlikNo alanları olsun,

- UserForm üzerinde 2 adet ListBox olsun,

- UserForm modülüne aşağıdaki kodları girin ve UserForm'u çalıştırın. UserForm üzerinde aynı "mdb" dosyasındaki 2 adet tablodaki ilgili veriler UserForm üzerindeki 2 adet ListBox' da ayrı ayrı listelenecektir.

Kod:
Private Sub UserForm_Initialize()
    Dim DatabasePath As String
    Dim adoCN As Object
    Dim RS As Object
    Dim X As Long
    Dim Y As Long
    
    ListBox1.ColumnCount = 3
    ListBox2.ColumnCount = 3
    
    DatabasePath = "C:\TestDB\MyDB.mdb"
    If Dir(DatabasePath) = "" Then
        MsgBox DatabasePath & " bulunamadı, programdan çıkılacak !", vbCritical, "TestMDB"
        Unload Me
        Exit Sub
    End If
    
    Set adoCN = CreateObject("ADODB.Connection")
    adoCN.Provider = "Microsoft.Jet.OLEDB.4.0"
    adoCN.ConnectionString = DatabasePath
    adoCN.Open
    Set RS = CreateObject("ADODB.recordset")
    
    strSQL = "SELECT * FROM [MyTable1]"
    RS.Open strSQL, adoCN, 1, 3
    RS.MoveFirst
    Do While Not RS.EOF
        ListBox1.AddItem
               ListBox1.Column(0, X) = RS("isim")
               ListBox1.Column(1, X) = RS("soyad")
               ListBox1.Column(2, X) = RS("tel")
        RS.MoveNext
        X = X + 1
    Loop
    RS.Close
    
    strSQL = "SELECT * FROM [MyTable2]"
    RS.Open strSQL, adoCN, 1, 3
    RS.MoveFirst
    Do While Not RS.EOF
        ListBox2.AddItem
               ListBox2.Column(0, Y) = RS("meslek")
               ListBox2.Column(1, Y) = RS("adres")
               ListBox2.Column(2, Y) = RS("TCKimlikNo")
        RS.MoveNext
        Y = Y + 1
    Loop
    
    RS.Close
    adoCN.Close
    Set RS = Nothing
    Set adoCN = Nothing
End Sub
 

mnz

Katılım
5 Eylül 2005
Mesajlar
282
Excel Vers. ve Dili
Excel 2002 (Tr)
Teşekkürler.. hemen denicem.
 
Üst