Cara Membuat Listview Berfungsi Layaknya Combobox - Hai, apa kabar anda hari ini?terima kasih anda masih setia mengunjungi blog ini. Kali ini saya bermaksud berbagi sedikit tentang kegunaan dari Listvisew.
Listview adalah komponen dari visual basic yang memiliki lebih dari satu kolom, dan artinya bisa menampilkan banyak data di kolomnya.
Bagaiamana dengan Combobox?
Combobox adalah komponen yang membantu programmer memilih satu dari sekian banyak data yang terpampang.
Begitu diklik akan muncul daftar menurun ke bawah. Cuma hanya bisa menampilkan satu data disatu kolom saja.
Tapi apabila ingin menampilkan data yang lumayan banyak agak kesulitan apabila menggunakan combobox.
Jadi dengan menggunakan Listview kita bisa menggantikan peran combobox.
Memanggil Komponen Listview di Visual Basic
Di gambar terlihat Listview berwarna kuning bernama LvDepo, apabila LVDepo diklik, akan otomatis data – data yang di LvDepo tampil di textbox yang sudah disediakan, berikut petikannya kodenya :
Public Sub BukaIdDepo()
On Error Resume Next
Dim Id As New ADODB.Recordset
Dim IDItem As ListItem
Dim mlindex
mlindex = 1
LvDepo.ListItems.Clear
If Id.State = 1 Then Id.Close
Id.Open "SELECT KdDepo, NmDepo FROM Depo", CON, adOpenDynamic, adLockOptimistic
If Not Id.EOF Then
Do Until Id.EOF
With LvDepo
.ListItems.Add , , Id.Fields(0)
.ListItems(.ListItems.Count).SubItems(1) = Id.Fields(1)
IDItem.Tag = Id!KdDepo
Id.MoveNext
End With
Loop
If LvDepo.ListItems.Count > 0 Then
If mlindex > LvDepo.ListItems.Count Then mlindex = 1
PloadDepo (LvDepo.ListItems(mlindex).Tag)
LvDepo.ListItems(mlindex).Selected = True
End If
End If
End Sub
Public Sub OpenIDDepo()
Dim rsDepo As New ADODB.Recordset
On Error Resume Next
Dim Tampil As New ADODB.Recordset
Call Koneksi
Dim Data As ListItem
Dim i As Integer
Set rsDepo = New ADODB.Recordset
If rsDepo.State = 1 Then rsDepo.Close
rsDepo.CursorLocation = adUseClient
If rsDepo.State = 1 Then rsDepo.Close
Tampil.Open "SELECT * FROM Depo WHERE KdDepo ='" & LvDepo.SelectedItem & "'", CON, adOpenDynamic, adLockOptimistic
If Not Tampil.EOF Then
xDepo.Text = Tampil.Fields(1)
xKdDepo.Text = Tampil.Fields(0)
End If
End Sub
Public Sub PloadDepo(Id As String)
On Error Resume Next
Dim fc As New ADODB.Recordset
If fc.State = 1 Then
fc.Close
fc.Open "SELECT NmDepo FROM Depo WHERE KdDepo = '" & LvDepo.SelectedItem & "'", CON, adOpenDynamic, adLockOptimistic
If Not fc.EOF Then
LvDepo.ToolTipText = fc!NmDepo
End If
End If
End Sub
Public Sub lvDEPO_Click()
Dim z
OpenIDDepo
LvDepo.Visible = False
z = 0
End Sub
Public Sub xKdDepo_Click()
Dim z
If z = 0 Then
LvDepo.Visible = True
z = 1
ElseIf z = 1 Then
LvDepo.Visible = False
z = 0
End If
End Sub
Public Sub LvDepo_ItemClick(ByVal Item As MSComctlLib.ListItem)
Dim mlindex
mlindex = Item.Index
PloadDepo (Item.Tag)
End Sub
Public Sub LvDepo_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
OpenIDDepo
LvDepo.Visible = False
End If
End Sub
Function BukaDepo(Kunci As String) As String
Dim cb As New ADODB.Recordset
If cb.State = 1 Then cb.Close
cb.Open "SELECT * FROM Depo WHERE NmDepo ='" & Kunci & "'", CON, adOpenDynamic, adLockOptimistic
If Not cb.EOF Then
BukaDepo = cb!KdDepo
Else
BukaDepo = "-"
End If
End Function
Berikut kode untuk menampilkan data dari Listview ke textboxnya :
Public Sub OpenIDDepo()
Dim rsDepo As New ADODB.Recordset
On Error Resume Next
Dim Tampil As New ADODB.Recordset
Call Koneksi
Dim Data As ListItem
Dim i As Integer
Set rsDepo = New ADODB.Recordset
If rsDepo.State = 1 Then rsDepo.Close
rsDepo.CursorLocation = adUseClient
If rsDepo.State = 1 Then rsDepo.Close
Tampil.Open "SELECT * FROM Depo WHERE KdDepo ='" &
LvDepo.SelectedItem & "'", CON, adOpenDynamic, adLockOptimistic
If Not Tampil.EOF Then
xDepo.Text = Tampil.Fields(1)
xKdDepo.Text = Tampil.Fields(0)
End If
End Sub
Private Sub Form_Load()
Me.Height = 7590
Me.Left = 4000
Me.Top = 200
Me.Width = 10290
Set CON = New ADODB.Connection
CON.Open "DSN=gs"
CON.CursorLocation = adUseClient
BukaIdDepo
'Call NonAktiv
'Tampil ("SELECT * FROM SHIPPER")
End Sub
Semoga bermanfaat, apabila ada kesulitan mohon tinggalkan komentar anda di kolom komentar yang sudah disediakan.
Terima kasih atas perhatiannya.
Listview adalah komponen dari visual basic yang memiliki lebih dari satu kolom, dan artinya bisa menampilkan banyak data di kolomnya.
Bagaiamana dengan Combobox?
Combobox adalah komponen yang membantu programmer memilih satu dari sekian banyak data yang terpampang.
Begitu diklik akan muncul daftar menurun ke bawah. Cuma hanya bisa menampilkan satu data disatu kolom saja.
Tapi apabila ingin menampilkan data yang lumayan banyak agak kesulitan apabila menggunakan combobox.
Jadi dengan menggunakan Listview kita bisa menggantikan peran combobox.
Memanggil Komponen Listview di Visual Basic
- Untuk Menambahkan component agar objek Listview muncul di dalam Toolbox VB6. Klik Menu Project lalu klik Components atau juga bisa tekan Control + T.
- Kemudian akan muncul dialog box Components. Lalu cari controls Microsoft Windows Common Controls 6.0 (SP6).
Di gambar terlihat Listview berwarna kuning bernama LvDepo, apabila LVDepo diklik, akan otomatis data – data yang di LvDepo tampil di textbox yang sudah disediakan, berikut petikannya kodenya :
Public Sub BukaIdDepo()
On Error Resume Next
Dim Id As New ADODB.Recordset
Dim IDItem As ListItem
Dim mlindex
mlindex = 1
LvDepo.ListItems.Clear
If Id.State = 1 Then Id.Close
Id.Open "SELECT KdDepo, NmDepo FROM Depo", CON, adOpenDynamic, adLockOptimistic
If Not Id.EOF Then
Do Until Id.EOF
With LvDepo
.ListItems.Add , , Id.Fields(0)
.ListItems(.ListItems.Count).SubItems(1) = Id.Fields(1)
IDItem.Tag = Id!KdDepo
Id.MoveNext
End With
Loop
If LvDepo.ListItems.Count > 0 Then
If mlindex > LvDepo.ListItems.Count Then mlindex = 1
PloadDepo (LvDepo.ListItems(mlindex).Tag)
LvDepo.ListItems(mlindex).Selected = True
End If
End If
End Sub
Public Sub OpenIDDepo()
Dim rsDepo As New ADODB.Recordset
On Error Resume Next
Dim Tampil As New ADODB.Recordset
Call Koneksi
Dim Data As ListItem
Dim i As Integer
Set rsDepo = New ADODB.Recordset
If rsDepo.State = 1 Then rsDepo.Close
rsDepo.CursorLocation = adUseClient
If rsDepo.State = 1 Then rsDepo.Close
Tampil.Open "SELECT * FROM Depo WHERE KdDepo ='" & LvDepo.SelectedItem & "'", CON, adOpenDynamic, adLockOptimistic
If Not Tampil.EOF Then
xDepo.Text = Tampil.Fields(1)
xKdDepo.Text = Tampil.Fields(0)
End If
End Sub
Public Sub PloadDepo(Id As String)
On Error Resume Next
Dim fc As New ADODB.Recordset
If fc.State = 1 Then
fc.Close
fc.Open "SELECT NmDepo FROM Depo WHERE KdDepo = '" & LvDepo.SelectedItem & "'", CON, adOpenDynamic, adLockOptimistic
If Not fc.EOF Then
LvDepo.ToolTipText = fc!NmDepo
End If
End If
End Sub
Public Sub lvDEPO_Click()
Dim z
OpenIDDepo
LvDepo.Visible = False
z = 0
End Sub
Public Sub xKdDepo_Click()
Dim z
If z = 0 Then
LvDepo.Visible = True
z = 1
ElseIf z = 1 Then
LvDepo.Visible = False
z = 0
End If
End Sub
Public Sub LvDepo_ItemClick(ByVal Item As MSComctlLib.ListItem)
Dim mlindex
mlindex = Item.Index
PloadDepo (Item.Tag)
End Sub
Public Sub LvDepo_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
OpenIDDepo
LvDepo.Visible = False
End If
End Sub
Function BukaDepo(Kunci As String) As String
Dim cb As New ADODB.Recordset
If cb.State = 1 Then cb.Close
cb.Open "SELECT * FROM Depo WHERE NmDepo ='" & Kunci & "'", CON, adOpenDynamic, adLockOptimistic
If Not cb.EOF Then
BukaDepo = cb!KdDepo
Else
BukaDepo = "-"
End If
End Function
Berikut kode untuk menampilkan data dari Listview ke textboxnya :
Public Sub OpenIDDepo()
Dim rsDepo As New ADODB.Recordset
On Error Resume Next
Dim Tampil As New ADODB.Recordset
Call Koneksi
Dim Data As ListItem
Dim i As Integer
Set rsDepo = New ADODB.Recordset
If rsDepo.State = 1 Then rsDepo.Close
rsDepo.CursorLocation = adUseClient
If rsDepo.State = 1 Then rsDepo.Close
Tampil.Open "SELECT * FROM Depo WHERE KdDepo ='" &
LvDepo.SelectedItem & "'", CON, adOpenDynamic, adLockOptimistic
If Not Tampil.EOF Then
xDepo.Text = Tampil.Fields(1)
xKdDepo.Text = Tampil.Fields(0)
End If
End Sub
Selanjutnya adalah Prosedur yang bernama BukaIDDepo harus diletakan di Kepala Program, yakni di Form_Load. Anda bisa melihatnya seperti pada contoh berikut ini :
Private Sub Form_Load()
Me.Height = 7590
Me.Left = 4000
Me.Top = 200
Me.Width = 10290
Set CON = New ADODB.Connection
CON.Open "DSN=gs"
CON.CursorLocation = adUseClient
BukaIdDepo
'Call NonAktiv
'Tampil ("SELECT * FROM SHIPPER")
End Sub
Databasenya menggunakan Access, untuk lebih lengkapnya, silahkan donlut Source Kode Listview Ala Combobox di saya rasa sudah cukup lengkap source kode untuk membuat Listview Berfungsi Layaknya Combobox kita kali ini.
Semoga bermanfaat, apabila ada kesulitan mohon tinggalkan komentar anda di kolom komentar yang sudah disediakan.
Terima kasih atas perhatiannya.