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
|
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
Anda bisa mendownload source codenya disini
dan untuk passwordnya disini
Sekian dari saya
Semoga bermanfaat, terima kasih atas kunjungannya