PENGGUNAAN EVENT NOT IN LIST COMBO BOX
Sebelum masuk ke bahasan event Not In List, tidak ada salahnya untuk penulis sampaikan terlebih dahulu mengenai Combo box, ComboBox adalah perpaduan antara TextBox dan ListBox, jika TextBox kita bisa menambah data, namun kita tidak bisa memilih data yang telah ada dalam table atau query, ListBox adalah sebuah daftar yang bisa berasal dari table atau query, ataupun berisi daftar nilai/value tersendiri, anda tidak bisa menambahkan data baru kedalam ListBox, karena ListBox hanya berisi nilai/value tanpa bisa untuk menambah data (keculai dengan trik-trik khusus). Sedangkan ComboBox adalh perpaduan keduanya, dimana dengan Combo Box, kita bisa mendapatkan fitur-fitur dalam TextBox dan ListBox, kita bisa menambahkan data baru kedalam table menggunakan Combo Box (seperti TextBox), dan juga bisa menampilkan sebagian atau seluruh data yang telah ada dalam table. Untuk menambahkan data baru kedalam table menggunakan ComboBox, salah satu caranya adalah dengan menggunakan Event Not In List, seperti yang akan penulis sampaikan dibawah ini.
Pada event Not In List kita bisa menentukan apa yang harus dilakukan jika seorang user memasukkan data yang tidak terdaftar dalam Combo Box. Untuk menggunakan event ini, property dari Combo box Limit To List harus diset menjadi Yes.
Pada event Not In List kita bisa menentukan apa yang harus dilakukan jika seorang user memasukkan data yang tidak terdaftar dalam Combo Box. Untuk menggunakan event ini, property dari Combo box Limit To List harus diset menjadi Yes.
Kita bisa memberikan sebuah pertanyaan kepada user untuk memasukkan data yang diinputnya kedalam daftar Combo Box atau kita bisa "memaksa" user untuk hanya memilih data berdasarkan daftar dalam Combo Box.
Jika kita mengijinkan user untuk menambah data yang tidak terdaftar dalam Combo Box, maka Code yang kita butuhkan adalah statement Insert Into dan Response acDataErrAdded.
Jika kita ingin "memaksa" user untuk hanya memilih data yang terdaftar dalam Combo Box maka kita tidak memerlukan statement-statement VBA yang lumayan ngejelimet, karena yang kita butuhkan hanyalah Response acDataErrContinue
Contohnya :
Jika kita mengijinkan untuk menambah data :
Private Sub ComboBox1_NotInList(NewData As String, Response As Integer)
Dim strSql As String
Dim strMsg As String
strMsg = "\" & NewData & "/ tidak ada dalam daftar." & vbCr & vbCr
strMsg = strMsg & "Apakah anda yakin ingin menambah data '" & NewData & "' ?"
If MsgBox(strMsg, vbQuestion + vbYesNo) = vbYes Then
Dim strSql As String
Dim strMsg As String
strMsg = "\" & NewData & "/ tidak ada dalam daftar." & vbCr & vbCr
strMsg = strMsg & "Apakah anda yakin ingin menambah data '" & NewData & "' ?"
If MsgBox(strMsg, vbQuestion + vbYesNo) = vbYes Then
strSql = "Insert Into Nama_Tabel ([Field Dalam Tabel]) " & "values ('" & NewData & "');"
CurrentDb.Execute strSQL, dbFailOnError
Response = acDataErrAdded
Else
Response = acDataErrContinue
End If
End Sub
CurrentDb.Execute strSQL, dbFailOnError
Response = acDataErrAdded
Else
Response = acDataErrContinue
End If
End Sub
Jika kita "memaksa" user untuk memilih data dalam daftar :
Private Sub ComboBox1_NotInList(NewData As String, Response As Integer)
Dim strMsg As String
strMsg = "\" & NewData & "/ tidak ada dalam daftar." & vbCr & vbCr
strMsg = strMsg & "Silahkan pilih yang telah terdaftar."
MsgBox strMsg
Response = acDataErrContinue
End Sub
Dim strMsg As String
strMsg = "\" & NewData & "/ tidak ada dalam daftar." & vbCr & vbCr
strMsg = strMsg & "Silahkan pilih yang telah terdaftar."
MsgBox strMsg
Response = acDataErrContinue
End Sub
Yang perlu diingat event Not In List akan mengabaikan Null value, jadi untuk mencegah Null maka kita bisa menggunakan event After Update.
Untuk file contoh penggunaan event Not In List Combo Box bisa didownload dari 4shared
Semoga Bermanfaat....


21.42
Gie Satria
Posted in: 
0 comments:
Posting Komentar
No Sara, Violence, Porn, And Spamming Allowed