Setelah beberapa hari yang lalu saya memposting tentang Menampilkan Data Ke Combobox Di VB.NET
kali ini saya akan memposting tentang Membuat Chained Combobox Dengan VB.NET atau bisa juga disebut dengan Combobox Bertingkat, jadi kita akan membuat beberapa combobox yang saling berhubungan
misal ada 4 buah combobox yaitu provinsi, kabupaten, kecamtan, kelurahan ketika kita memilih salah 1 provinsi maka combobox kabupaten akan terisi sesuai dengan data kabupaten yang berada di provinsi yang kita pilih tersebut

Langkah - langkah Membuat Chained Combobox Dengan VB.NET

1. Persiapkan sebuah database dengan nama lokasi, anda bisa mendownload database yang sudah saya siapkan disini, untuk cara Attach database sql server klik disini

2. Design sebuah form seperti gambar dibawah ini
Object
Properties
Value
Combobox1
Name
Cbo_provinsi

DropDownStyle
DropDownList
Combobox2
Name
Cbo_kabupaten

DropDownStyle
DropDownList
Combobox3
Name
Cbo_kelurahan

DropDownStyle
DropDownList
Combobox4
Name
Cbo_kecamatan

DropDownStyle
DropDownList

Membuat Chained Combobox Dengan VB.NET

3. Imports namespace System.Data.SqlClient dan ketikan script dibawah ini

    'Membuat String koneksi ke database
    Private strconn As String = "Data Source=.;Initial Catalog=dblokasi;Persist Security Info=True;User ID=sa; Password=root123"
    'Mendeklarasikan variable
    Private conn As SqlConnection
    Private cmd As SqlCommand
    Private adapter As SqlDataAdapter
    Private dt As DataTable

4. Pada event Form_load ketikan script dibawah ini

'Mengisi data provinsi
        'Menyiapkan sqlconnection
        Using conn As New SqlConnection(strconn)
            'Menyiapkan query untuk mendapatkan lokasi_nama dan lokasi_provinsi
            cmd = New SqlCommand("select lokasi_nama,lokasi_provinsi from lokasi where lokasi_kabupatenkota=0 and lokasi_kecamatan=0 and lokasi_kelurahan=0 order by lokasi_nama asc", conn)
            'Menyiapkan adapter
            adapter = New SqlDataAdapter(cmd)
            'Menyiapkan sebuah datatable untuk menampung data dari sqldataadapter
            dt = New DataTable
            'Membinding data dari adapter ke datatable
            adapter.Fill(dt)
            'Mengisi combobox provinsi
            cbo_provinsi.DisplayMember = "lokasi_nama"
            cbo_provinsi.ValueMember = "lokasi_provinsi"
            cbo_provinsi.DataSource = dt
        End Using
5. Klik 2 kali pada combobbox provinsi dan ketikan script dibawah ini

If Not IsNothing(cbo_provinsi.SelectedValue) Then
            'menyiapkan id dari combobox provinsi
            Dim id As Integer = cbo_provinsi.SelectedValue
            'Menyiapkan sqlconnection
            Using conn As New SqlConnection(strconn)
                'Menyiapkan query untuk mendapatkan lokasi_nama dan lokasi_kabupatenkota
                cmd = New SqlCommand("select lokasi_nama,lokasi_kabupatenkota from lokasi where lokasi_provinsi='" & id & "' and lokasi_kabupatenkota <> 0 and lokasi_kecamatan=0 and lokasi_kelurahan=0 order by lokasi_nama asc", conn)
                'Menyiapkan adapter
                adapter = New SqlDataAdapter(cmd)
                'Menyiapkan sebuah datatable untuk menampung data dari sqldataadapter
                dt = New DataTable
                'Membinding data dari adapter ke datatable
                adapter.Fill(dt)

                'Mengisi combobox kabupaten
                cbo_kabupaten.DisplayMember = "lokasi_nama"
                cbo_kabupaten.ValueMember = "lokasi_kabupatenkota"
                cbo_kabupaten.DataSource = dt
            End Using
        End If

6. Klik 2 kali pada combobox kabupaten dan ketikan script dibawah ini

'jika nilai dari combobox kabupaten yang terpilih tidak kosong
        If Not IsNothing(cbo_kabupaten.SelectedValue) Then
            'menyiapkan id dari combobox provinsi
            Dim idprovinsi As Integer = cbo_provinsi.SelectedValue
            'menyiapkan id dari combobox kabupaten
            Dim idkabupaten As Integer = cbo_kabupaten.SelectedValue
            'Menyiapkan sqlconnection
            Using conn As New SqlConnection(strconn)
                'Menyiapkan query untuk mendapatkan lokasi_nama dan lokasi_kecamatan
                cmd = New SqlCommand("select lokasi_nama,lokasi_kecamatan from lokasi where lokasi_provinsi='" & idprovinsi & "' and lokasi_kabupatenkota='" & idkabupaten & "' and lokasi_kecamatan <> 0 and lokasi_kelurahan=0 order by lokasi_nama asc", conn)
                'Menyiapkan adapter
                adapter = New SqlDataAdapter(cmd)
                'Menyiapkan sebuah datatable untuk menampung data dari sqldataadapter
                dt = New DataTable
                'Membinding data dari adapter ke datatable
                adapter.Fill(dt)

                'mengisi combobox kecamatan
                cbo_kecamatan.DisplayMember = "lokasi_nama"
                cbo_kecamatan.ValueMember = "lokasi_kecamatan"
                cbo_kecamatan.DataSource = dt
            End Using
        End If

7. Klik 2 kali pada combobox dan ketikan script dibawah ini

 'jika nilai dari combobox kecamatan yang terpilih tidak kosong
        If Not IsNothing(cbo_kecamatan.SelectedValue) Then
            'menyiapkan id dari combobox provinsi
            Dim idprovinsin As Integer = cbo_provinsi.SelectedValue
            'menyiapkan id dari combobox kabupaten
            Dim idkabupaten As Integer = cbo_kabupaten.SelectedValue
            'menyiapkan id dari combobox kecamatan
            Dim idkecamatan As Integer = cbo_kecamatan.SelectedValue
            'Menyiapkan sqlconnection
            Using conn As New SqlConnection(strconn)
                'Menyiapkan query untuk mendapatkan lokasi_nama dan lokasi_kelurahan
                cmd = New SqlCommand("select lokasi_nama,lokasi_kelurahan from lokasi where lokasi_provinsi='" & idprovinsin & "' and lokasi_kabupatenkota='" & idkabupaten & "' and lokasi_kecamatan='" & idkecamatan & "' and lokasi_kelurahan <> 0 order by lokasi_nama asc", conn)
                'Menyiapkan adapter
                adapter = New SqlDataAdapter(cmd)
                'Menyiapkan sebuah datatable untuk menampung data dari sqldataadapter
                dt = New DataTable
                'Membinding data dari adapter ke datatable
                adapter.Fill(dt)

                'mengisi combobox kelurahan
                cbo_kelurahan.DisplayMember = "lokasi_nama"
                cbo_kelurahan.ValueMember = "lokasi_kelurahan"
                cbo_kelurahan.DataSource = dt
            End Using
        End If

8. Jalankan program tersebut dengan menekan F5 

Membuat Chained Combobox Dengan VB.NET

Anda bisa mendownload source codenya disini
dan untuk passwordnya disini

Sekian dari saya
Semoga bermanfaat, terima kasih atas kunjungannya
Author image

About the Author :

Nama Saya Dwi Randy Herdinanto. Saya Tinggal Di Bandar Lampung, Saat Ini SayaKuliah di Salah Satu Perguruan Tinggi di Lampung dan Juga Bekerja di Software House Lampung

Connect with me on :

0 Comments
Comments
 
Top