Você está na página 1de 4

ADO ile oklu Tablodan Veri Almak (Inner JOIN Yntemi) Masastnde veya herhangi bir klasr iinde

Kitap1.xls adnda bir alma sayfas oluturarak Sayfa1 sayfasnda a1 hcresine idno, b1 hcresine ad , c1 hcresine soyad yazn. Sonra altna denemek iin birka veri ekleyin. Mesela idno ksmna ; a-70 b-80 c-90 ad ksmna; ahmet ali aye soyad ksmna; mehmet veli fatma Sayfa2 sayfasnda a1 hcresine yine idno, b1 hcresine gorevi yazn. Sonra altna yine birka veri ekleyin. idno ksm sayfa1' deki idno ksmnda ekledikleriniz ile ayn olmal.Farz misal gorevi yazan ksmn altna memur emekli ev hanm yazn ve kaydedip bu alma dosyanz kapatn.Yeni bir alma sayfas aar ak vba kod penceresinden bir UserForm izin. zerine 4 adet TextBox ve bir adet CommandButton izin.Bu dosyanzn adn da kitap2.xls olarak kaydedin. Kaydettiiniz yer kitap1.xls ile ayn klasrde olsun. Masastnde ise bunu da masastne atn. Aadaki kodlar kitap2.xls 'de oluturduunuz formunuzun kod sayfasna ekleyip formunuzu altrn. Kod: Tmn se Private Sub CommandButton1_Click() Dim conn As ADODB.Connection, rs As ADODB.Recordset, sorgu As String Set conn = New ADODB.Connection Set rs = CreateObject("ADODB.Recordset") conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.ThisWorkbook.Path & "\kitap1.xls;" & _ "Extended Properties=""Excel 8.0;HDR=Yes"""

sorgu = "select * FROM [sayfa1$] INNER JOIN [sayfa2$] ON [sayfa1$].idno = [sayfa2$].idno where [sayfa1$].idno= '" & TextBox1 & "'" rs.Open sorgu, conn, 1, 3 Do While Not rs.EOF TextBox2 = rs("ad") TextBox3 = rs("soyad") TextBox4 = rs("gorevi") rs.MoveNext Loop rs.Close: conn.Close Set rs = Nothing Set conn = Nothing sorgu$ = Empty End Sub

Alan formda ilk yazdnz textbox1 olan kutucua dosyanzdaki herhangi bir idno yazarak butonu tklayn. Dierleri iin de aynsn deneyerek verilerinizin iki tablodan da alnp kutucuklara doldurulduunu greceksiniz.Eer derseniz ki; ben elle idno girmek istemiyorum o halde u yolu izleyin:Form zerine izdiiniz textbox1 silip yerine combobox1 izin ve commandbutton'u da silerek iptal edin.Sonra form sayfanzdaki kodlar aadaki biimde deitirin: Kod: Tmn se Dim conn As ADODB.Connection, rs As ADODB.Recordset, sorgu1, sorgu2 As String Private Sub UserForm_Initialize() baglan sorgu1 = "select * FROM [sayfa1$]" rs.Open sorgu1, conn, 1, 3 Do While Not rs.EOF ComboBox1.AddItem rs("idno") rs.MoveNext Loop rs.Close: conn.Close Set rs = Nothing

Set conn = Nothing End Sub

Kod: Tmn se Private Sub ComboBox1_Change() baglan sorgu2 = "select * FROM [sayfa1$] INNER JOIN [sayfa2$] ON [sayfa1$].idno = [sayfa2$].idno where [sayfa1$].idno= '" & ComboBox1 & "'" rs.Open sorgu2, conn, 1, 3 Do While Not rs.EOF TextBox2 = rs("ad") TextBox3 = rs("soyad") TextBox4 = rs("gorevi") rs.MoveNext Loop rs.Close: conn.Close Set rs = Nothing Set conn = Nothing End Sub Kod: Tmn se Private Sub baglan() Set conn = New ADODB.Connection Set rs = CreateObject("ADODB.Recordset") conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.ThisWorkbook.Path & "\kitap1.xls;" & _ "Extended Properties=""Excel 8.0;HDR=Yes""" End Sub -Ve bu konu ile ilgili bir sorum olacak rs.Open sorgu, conn, 1, 3 Satrinda var olan 1 ve 3 degerlerin ne anlama geliyor ? Baska ado baglantilarinda Genelikle 1,1 seklinde goruyorum --------------------------------------------------------------------------------

Yazl ders notlar eklemitim. Bu notlarda aklamalar var. ExcelVBA.NET' e katkda bulunmak ister misiniz ? O halde BAI butonunu tklayn... -----------------------------------------------------------------------Kitap3.xls adnda bir alma sayfas daha olutursak buradada idno'ya bal baka bilgiler tanmlasak kodu nasl yazmamz gerekir? Biraz daha kark olur. ki veritabann ayr ayr aarak hafzada birletirmek gerek. Hayrl sahurlar sn. Tarkan hocam , arkadalar; Konu ile alakal bir rnek alma yaptm.Ancak bu alma bir kitap ierisinde farkl sayfadaki verileri birletiriyor.Bunu rnekten esinlenerek uyarladm biraz zor oldu inner join in mantn anlamak.Neyse ki oldu.htiya duyan herkese faydal olmas dileiyle hayrl Ramazanlar ALLAH ' a emanet olunuz.Sayglarmla ... SQL NNER JON 3 TABLO BALANTILI.rar (16.79 KiB) 80 defa indirildi Belki yeri deil ama birey sormak istiyorum. deiiklii nedeni ile uzun sre sizlerle gremedim ve soramadmda avatar resimlerimiz neden grnmyor.Bi sorun yada deiiklik mi sz konusu , bu konuda bilgi verir iseniz ok memnun olurum. Osman AKYZ -------------------------------------------------------------------------------almanz inceleyeceim, imdiden elinize salk.

Geen ay avatarlar ile ilgili bir almamz oldu. Avatar resmi olmayanlarda u an sizde grnen resim ksn eklinde ayar yapyorduk ve maalesef bu arada kaytl avatarlarn balantlar da kesildi. Yeniden ykleyebilirseniz seviniriz. Baka herhangi bir sorun yok. Anlaynz iin teekkr ediyoruz. -------------------------------------------------------------------------------Ellerinize salk Tarkan Bey, yerli yabanc onca kaynaa gz atyorum ama (sadece bu konu iin deil), benim sorunumu sizin rnekleriniz kadar iyi zmleyen bir baka konu bulamyorum. Size ve dier ynetici -kullanc tm excelvba.net yelerine sonsuz teekkrler.

Você também pode gostar