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

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
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...
 
Katılım
11 Mayıs 2012
Mesajlar
2
Excel Vers. ve Dili
2007 , vba
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
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
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...
 
Katılım
24 Kasım 2007
Mesajlar
769
Excel Vers. ve Dili
Office 365 - Türkçe
Altın Üyelik Bitiş Tarihi
30-01-2024
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

Katılım
24 Kasım 2007
Mesajlar
769
Excel Vers. ve Dili
Office 365 - Türkçe
Altın Üyelik Bitiş Tarihi
30-01-2024
Yaptım, problemi buldum

Kod:
ComboBox3.Column = con.Execute("select OPERASYON from [sayfa2$] where MAKINA ='" & ComboBox1.Value & "' and REFERANS= '" & ComboBox2.Value & "'").getrows
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
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
 
Üst