Dinamik Açılır Liste

BYSERTTAS

Altın Üye
Katılım
9 Ekim 2012
Mesajlar
142
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2021 TR 32 Bit
Altın Üyelik Bitiş Tarihi
22-01-2026
selamlar.
ekli dosyada açıklamaya çalıştım. yapmak istediğim userForm üzerinden ilgili combobox lara veri girildikçe ilgili İlçe Semt Mahhalle (belki daha sonra sokak )isimlerini comboboxlara aktarmaktır.
İl isimlerini aktardım. Yapmak istediğim İl girildiğinde o ile ait ilçeler;ilçe girildiğinde Semt ve Semt girildiğinde Mahalle_köy İsmleri ilgili combobox a aktarılsın.
 

Ekli dosyalar

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
881
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Veri deseniniz (tablo yapınız) biraz karmaşık olsa da dosyanız ekte.Kolay gelisin.
 

Ekli dosyalar

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Option Explicit
Dim adoCon As Object, rsIl As Object, rsIlce As Object, rsMahalle As Object, rsSemt As Object, strSQL$

Private Sub UserForm_Initialize()
    CBIL.BoundColumn = 2: CBILCE.BoundColumn = 2: CBSEMT.BoundColumn = 2: CBMAHALLE.BoundColumn = 2

    Set adoCon = CreateObject("ADODB.Connection")

    strSQL = "SELECT IL_ADI, PLAKA FROM [İL$] WHERE NOT PLAKA IS NULL"
    If adoCon.State = 0 Then
        adoCon.Open "Provider=Microsoft.Ace.Oledb.12.0;Extended Properties='Excel 12.0;HDR=Yes';" & _
                    "Data Source=" & ThisWorkbook.FullName
    End If

    Set rsIl = adoCon.Execute(strSQL)
    CBIL.Column = rsIl.getrows
    rsIl.Close

    strSQL = "SELECT ILCE_ADI,ILCE_ID,IL_ID FROM [İLCE$] WHERE NOT ILCE_ID IS NULL ORDER BY ILCE_ADI"
    Set rsIlce = adoCon.Execute(strSQL)

    strSQL = "SELECT SEMT_ADI, SEMT_ID,ILCE_ID FROM [SEMT$] WHERE NOT SEMT_ID IS NULL ORDER BY SEMT_ADI"
    Set rsSemt = adoCon.Execute(strSQL)

    strSQL = "SELECT  MAHALLE_ADI, MAH_ID,SEMT_ID FROM [MAHALLE$] WHERE NOT MAH_ID IS NULL ORDER BY MAHALLE_ADI"
    Set rsMahalle = adoCon.Execute(strSQL)

End Sub

Private Sub CBIL_Change()
    CBILCE.Clear
    CBSEMT.Clear
    CBMAHALLE.Clear
    If CBIL.Text <> "" Then
        rsIlce.Filter = "IL_ID='" & Format(CBIL.Value, "00") & "'"
        If Not rsIlce.EOF Then CBILCE.Column = rsIlce.getrows
    End If
End Sub

Private Sub CBILCE_Change()
    CBSEMT.Clear
    CBMAHALLE.Clear
    If CBILCE.Text <> "" Then
        rsSemt.Filter = "ILCE_ID=" & CBILCE.Value
        If Not rsSemt.EOF Then CBSEMT.Column = rsSemt.getrows
    End If
End Sub

Private Sub CBSEMT_Change()
    CBMAHALLE.Clear
    If CBSEMT.Text <> "" Then
        rsMahalle.Filter = "SEMT_ID=" & CBSEMT.Value
        If Not rsMahalle.EOF Then CBMAHALLE.Column = rsMahalle.getrows
    End If
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If rsMahalle.State <> 0 Then
        rsMahalle.Close: Set rsMahalle = Nothing
    End If
    If rsSemt.State <> 0 Then
        rsSemt.Close: Set rsSemt = Nothing
    End If
    If rsIlce.State <> 0 Then
        rsIlce.Close: Set rsIlce = Nothing
    End If
    If rsIl.State <> 0 Then
        rsIl.Close: Set rsIl = Nothing
    End If
    If adoCon.State <> 0 Then
        adoCon.Close: Set adoCon = Nothing
    End If
End Sub
 
Son düzenleme:
Üst