Excel ile Access in iki tablosundan veri almak [Archive] - Excel Forum

PDA

Tüm Versiyonu Göster : Excel ile Access in iki tablosundan veri almak


mnz
13-01-2007, 12:13
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ı?

red_lion_72
13-01-2007, 13:47
selam,

http://www.excel.web.tr/showthread.php?t=23558

linkte bir örnek var bi bakın isterseniz.

Kolay gelsin.

mnz
13-01-2007, 17:47
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
13-01-2007, 21:20
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.

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
13-01-2007, 22:44
Teşekkürler.. hemen denicem.


Özel Arama