• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

ComboBox Bağlama

Katılım
11 Mayıs 2012
Mesajlar
2
Excel Vers. ve Dili
2007 , vba
İyi günler,
Ekte gönderdiğim dosyada 4 sütunlu bir yapım var. Bunun için bir form içerisinde bağlantılı 3 combobox kullanmak istiyorum. İlki v değerini seçebileceğim, ikinci combobox seçtiğim v değerine bağlı olarak sadece bu değerle ilişkili olan d değerlerini combobox'da göstersin. En sonuncu Combobox ise seçilen v ve d değerinin aynı satrda bulunduğu t değerlerini seçmeme olanak sağlasın. En sonunda da bu 3 combonun yanı satırda sağlandığı yard değerini versin. Çok uğraştım ama vba bilgim yeterli gelmedi. Yardımcı olursanız çok sevinirim.
 

Ekli dosyalar

Dosyanıza UserForm ekleyin ve üzerine de 4 adet ComboBox ilave edin...

UserForm'un kod kısmına da şu kodları ilave edin;
Kod:
Dim con As Object

Private Sub UserForm_Activate()
    Set con = CreateObject("adodb.connection")
    con.Open "provider=microsoft.jet.oledb.4.0;data source=" & ThisWorkbook.FullName & ";extended properties=""excel 8.0;hdr=yes"""
    ComboBox1.Column = con.Execute("select distinct yard from [Sayfa1$]").getrows
End Sub

Private Sub ComboBox1_Change()
    ComboBox2.Clear
    ComboBox2.Column = con.Execute("select distinct v from [sayfa1$] where yard =" & ComboBox1.Text & "").getrows
End Sub

Private Sub ComboBox2_Change()
    If ComboBox2.Value = "" Then Exit Sub
    ComboBox3.Column = con.Execute("select d from [sayfa1$] where yard =" & ComboBox1.Value & " and v= " & ComboBox2.Value).getrows
    ComboBox3.Text = ComboBox3.List(0, 0)
End Sub

Private Sub ComboBox3_Change()
    If ComboBox3.Value = "" Then Exit Sub
    ComboBox4.Column = con.Execute("select t from [sayfa1$] where yard =" & ComboBox1.Value & " and v= " & ComboBox2.Value & " and d= " & ComboBox3.Value).getrows
    ComboBox4.Text = ComboBox4.List(0, 0)
End Sub

Private Sub UserForm_Terminate()
    Set con = Nothing
End Sub
■ Dosyanızı da 97-2003 formatında kaydedin...
 
Süpersiniz=) benim istediğim yard ı kendi bulsundu ama onu kendim hallettim kodunuzu kullanarak size nasıl teşekkür edeceğimi bilemiyorum şu an=) Yardımınız için çok teşekkür ederim
 
Ben D sütununu (t) bulmanız için hazırlamıştım...
Sorunuza pek dikkat etmedim açıkcası ama aynı şekilde yard ile t yi yer değiştirdiğinizde çözülmüş olması gerek...

Yardımcı olabildiğime sevindim.. :)

İyi günler...
 
Yeni konu açmak istemedim

Kod:
dim con As Object
Private Sub ComboBox1_Change()
ComboBox2.Clear
ComboBox3.Clear
ComboBox2.Column = con.Execute("select distinct REFERANS from [sayfa2$] where MAKINA ='" & ComboBox1.Text & "'").getrows
End Sub

Private Sub ComboBox2_Change()
If ComboBox2.Value = "" Then Exit Sub
ComboBox3.Column = con.Execute("select OPERASYON from [sayfa2$] where MAKINA =" & ComboBox1.Value & " and REFERANS= " & ComboBox2.Value).getrows
End Sub

Private Sub UserForm_Activate()
Set con = CreateObject("adodb.connection")
con.Open "provider=microsoft.jet.oledb.4.0;data source=" & ThisWorkbook.FullName & ";extended properties=""excel 8.0;hdr=yes;IMEX=1"";"
ComboBox1.Column = con.Execute("select distinct MAKINA from [Sayfa2$]").getrows
ComboBox2.Column = con.Execute("select distinct REFERANS from [Sayfa2$]").getrows
End Sub

Private Sub UserForm_Terminate()
Set con = Nothing
End Sub

3'lü birbiri ile ilişkili combobox yapmaya çalışıyorum. ama hata veriyor. nerede yanlış yapıyorum.
 

Ekli dosyalar

Yaptım, problemi buldum

Kod:
ComboBox3.Column = con.Execute("select OPERASYON from [sayfa2$] where MAKINA ='" & ComboBox1.Value & "' and REFERANS= '" & ComboBox2.Value & "'").getrows
 
Sayfa ismini Sayfa1$ olarak değiştirdim.
Ayrıca Where ifadesindeki şartı sağlayacak olan alan türü metin ise; eşittir işaretinden sonra sırasıyla '"& (tek tırnak - çift tırnak - &) karakterlerini kullanmalısınız.
Metin değil de Değer (rakam/sayısal) ise; "& (çift tırnak - &) karakterlerini kullanmalısınız.

Şu şekilde bir deneyin;
Kod:
Private Sub ComboBox1_Change()
ComboBox2.Clear : ComboBox3.Clear
ComboBox2.Column = con.Execute("select distinct REFERANS from [Sayfa1$] where MAKINA ='" & ComboBox1.Text & "'").getrows
End Sub

Private Sub ComboBox2_Change()
If ComboBox2.Value = "" Then Exit Sub
ComboBox3.Column = con.Execute("select OPERASYON from [Sayfa1$] where MAKINA='" & ComboBox1.Value & "' and REFERANS= " & ComboBox2.Value & "").getrows
End Sub
 
Geri
Üst