ADO ile veri bulma

Katılım
17 Haziran 2006
Mesajlar
245
Excel Vers. ve Dili
Office 2010
English
[vb:1:02b0258aea]Private Sub CommandButton1_Click()
Set CON = New ADODB.Connection
yol = ThisWorkbook.Path & "\"
CON.Open "Driver={Microsoft Excel Driver (*.xls)}; DBQ=" & yol & "Veri.xls;Readonly=True"

Set rec = New ADODB.Recordset
rec.Open "SELECT * FROM [Yakinlar$] WHERE Personel ='" & ComboBox1 & "'", CON, 1, 3

rec.MoveFirst 'Diğerinden (Listele)

ListBox1.Clear
While Not rec.EOF
ListBox1.AddItem rec!Yakini
rec.MoveNext
Wend 'Diğerinden (Listele)

rec.Close

Set CON = Nothing
Set rec = Nothing
[/vb:1:02b0258aea]

Üstte excel veritabanı olarak kullandığım bir çalışmamda, bir üstad tarafından yazılmış bir kod var. Buradaki amaç şu. A sütununda yeralan Sütunları Combobox1 de listelemek. Ve butona tıkladığımızda, Listbox a Sütunların bir yanında yer alan bilgiyi getirmek.. Excel de bu kod çalışıyor. Ama Access e uyarlayamadım. Yardım ederseniz minnettar olurum. Saygılar..

Dosya Adı: Veri
Dosya Yolu: E:\
Tablo Adı: Bolumler
Sütun Adı: BK (burada kodlar var)
Sütun Adı: BA (burada kodların isimleri)

Kod numarasını seçince KOd adı otomatik gelsin.
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın gene

Basit bir örnek yaparak Access bölümünde sorunuzu sorarsanız cevap alabilirsiniz.

İyi çalışmalar :(
 
Katılım
17 Haziran 2006
Mesajlar
245
Excel Vers. ve Dili
Office 2010
English
Access i veritabanı olarak kullanıyorum sadece..
Form excel üzerinde..
Örneği ekleyim hemen :)
Teşekkürler..
 
Katılım
17 Haziran 2006
Mesajlar
245
Excel Vers. ve Dili
Office 2010
English
Dosya Ektedir.
Açıklama:
Access veritabanının ilk sütununda bulduğu verinin yanında olan değeri Combobox2 ye Alacak.

Teşekkür..
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
*.zip olarak yollarmısınız ?
 
Katılım
17 Haziran 2006
Mesajlar
245
Excel Vers. ve Dili
Office 2010
English
Dosya ektedir. İlginize teşekkür ederim Haluk Bey..
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Bu şekilde bir deneyin ...

Kod:
    Dim adoCN As Object
    Dim RS As Object
    Dim strSQL As String
    Dim DatabasePath As String
'
Private Sub ComboBox1_Change()
    ComboBox2.Clear
    Set RS = CreateObject("ADODB.recordset")
    strSQL = "SELECT * FROM [Bolumler] where BK= '" & ComboBox1.Text & "'"
    RS.Open strSQL, adoCN, 1, 3
    RS.MoveFirst
    Do While Not RS.EOF
        ComboBox2.AddItem RS("BA")
        RS.MoveNext
    Loop
    RS.Close
    Set RS = Nothing
End Sub
'
Private Sub UserForm_Initialize()
    Set adoCN = CreateObject("ADODB.Connection")
    DatabasePath = "E:\Veri.mdb"
    If Dir(DatabasePath) = "" Then
        MsgBox DatabasePath & " bulunamadı, programdan çıkılacak !", vbCritical, "TestMDB"
        Unload Me
        Exit Sub
    End If
    adoCN.Provider = "Microsoft.Jet.OLEDB.4.0"
    adoCN.ConnectionString = DatabasePath
    adoCN.Open
    Call GetData
End Sub
'
Sub GetData()
  Set RS = CreateObject("ADODB.recordset")
  strSQL = "SELECT * FROM [Bolumler] ORDER BY BK"
  RS.Open strSQL, adoCN, 1, 3
  RS.MoveFirst
  Do While Not RS.EOF
     ComboBox1.AddItem RS("BK")
     RS.MoveNext
  Loop
    RS.Close
    Set RS = Nothing
End Sub
'
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If adoCN.State = 1 Then
        adoCN.Close
    Else
        End
    End If
End Sub
 
Katılım
17 Haziran 2006
Mesajlar
245
Excel Vers. ve Dili
Office 2010
English
Haluk Bey, elleriniz dert görmesin. Bu benim için çok büyük bir bilgi.. Allah razı olsun sizden. Saygılar sunarım.. Sağlıcakla kalınız. :dua:
 
Katılım
17 Haziran 2006
Mesajlar
245
Excel Vers. ve Dili
Office 2010
English
Haluk Bey,
kendi örneğime uyarlayınca,
Kod:
Private Sub Txt3_Change()
    Txt4.Clear
    Set RS = CreateObject("ADODB.recordset")
    strSQL = "SELECT * FROM [Bolumler] where BK= '" & Txt3.Text & "'"
    RS.Open strSQL, adoCN, 1, 3
    RS.MoveFirst
    Txt4.Clear
    Do While Not RS.EOF
        Txt4.AddItem RS("BA")
        RS.MoveNext
    Loop
    RS.Close
    Set RS = Nothing
End Sub
kodunun
RS.Open strSQL, adoCN, 1, 3
satrında
"Ölçüt ifadesinde veri türü uyuşmazlığı" hatası verdi. Bir fikriniz var mı? Teşekkürler.. :oops:
 
Katılım
17 Haziran 2006
Mesajlar
245
Excel Vers. ve Dili
Office 2010
English
Problemi çözdüm. Database örnekte gönderdiğim ile birebir aynı olmasına karşın. Silip tekrar yazınca işlem gerçekleşti. :oops:
 
Üst