Selasa, 27 Desember 2011

Pilihan -SEMUA- ComboBox

MENAMBAHKAN PILIHAN <SEMUA> DALAM COMBO BOX

Pilihan <SEMUA> yang penulis maksud disini adalah, dalam combobox akan terdapat pilihan <SEMUA> untuk record-record yang menjadi row source dari combobox tersebut, dengan pilihan <SEMUA> maka kita bisa menggunakannya untuk keperluan-keperluan, misalnya untuk report semua data, ataupun yang lainnya.
Untuk menambahkan pilihan <SEMUA> dalam sebuah Combo Box untuk memfilter data dalam Form/Query yang sumber datanya dari sebuah Tabel kita bisa menggunakan statement "UNION SELECT".
Yang perlu diperhatikan adalah jumlah kolom dalam Combo Box yang ingin kita tambahkan pilihan <SEMUA> dan penempatan statement "UNION SELECT" tersebut.
Untuk melakukan hal ini, Klik Kanan di Field Row Source dari comboboxnya dan pilih Zoom, lalu kita tinggal menambahkan statement "UNION SELECT" setelah statement From <Nama Tabel>, dan sebelum ORDER BY (Jika Combo Boxnya disort Ascending/Descending).
Contohnya :

Misalnya kita telah membuat sebuah Combo Box menggunakan Wizard dan memilih sebuah Tabel sebagai Row Source-nya dan hanya 1 Field yang kita masukkan, maka Field Row Source Combo Box tersebut akan menjadi seperti ini :
SELECT NamaTabel.NamaField FROM NamaTabel ORDER BY [NamaField];
Untuk Menambahkan Pilihan <SEMUA>, kita edit Field Row Source hingga menjadi seperti ini :
SELECT NamaTabel.NamaField FROM NamaTabel UNION SELECT "<SEMUA>" FROM NamaTabel ORDER BY [NamaField];

Jika Field yang kita masukkan kedalam Rowsource lebih dari 1, misalnya ada 2 Field yang kita masukkan dan Kolom pertama kita sembunyikan, maka Row Sourcenya akan menjadi seperti ini :
SELECT NamaTabel.NamaField, NamaTabel.NamaField2 FROM NamaTabel ORDER BY [NamaTabel.NamaField2];
Untuk menambahkan pilihan <SEMUA> pada kolom kedua, kita edit Row Sourcenya menjadi seperti ini :
SELECT NamaTabel.NamaField, NamaTabel.NamaField2 FROM NamaTabel UNION SELECT "*", "<SEMUA>" FROM NamaTabel ORDER BY [NamaTabel.NamaField2];

Perhatikan penempatan "*", "<SEMUA>",  hal ini berarti pilihan <SEMUA> berada pada kolom kedua, jika anda ingin kolom pertama yang memiliki pilihan <SEMUA>, maka anda harus merubah penempatannya menjadi seperti ini : "<SEMUA>", "*".

Jika Combo Box tersebut anda gunakan untuk memfilter data, anda tinggal menambahkan code :
If NamaComboBox = "<SEMUA>" then
<Code untuk memfilter semua data>
Else
<Code Untuk Memfilter Data Berdasarkan Pilihan Pada ComboBox>
End If

Semoga Bermanfaat...

Selasa, 20 Desember 2011

Filter ComboBox Dan ListBox

MEMFILTER COMBO BOX BERDASARKAN COMBO BOX LAINNYA

Ada berbagai macam cara untuk memfilter Row Source sebuah ComboBox atau ListBox, dari yang ngejelimetin (Hard Coding) sampai yang simpel sesimpel-simpelnya. Penulis telah menemukan berbagai macam cara untuk memfilter combobox/listbox melalui searching di internet, namun semua cara atau teknik tersebut memilik satu kesamaan, yaitu hasilnya sama saja, hanya bahasa dan tekniknya saja yang berbeda, dari yang menggunakan Module, Macro ataupun yang lainnya. Dan memang penulis akui bahwa ada cara untuk memfilter ComboBox/ListBox yang bisa digunakan secara global, dalam arti kita bisa menggunakan cara tersebut untuk semua ComboBox/ListBox yang terdapat dalam aplikasi kita.
Karena kita masih dalam tahap belajar, maka kita akan gunakan yang simpel-simpel aja, biar gak terlalu pusing sama code-code :). Lagipula dalam tahap belajar sudah tentu dan pasti kita akan diberikan hal-hal yang mudah terlebih dahulu bukan ?, masa baru tahap awal belajar sudah dikasih yang sulit, kan bisa bikin pusing tujuh keliling.
Untuk memfilter ComboBox/ListBox berdasarkan ComboBox/ListBox Lainnya, yang harus dipenuhi adalah ComboBox/ListBox yang akan difilter datanya harus memiliki Field yang value/nilainya adalah value/nilai dari ComboBox/Listbox yang menjadi acuan filternya.
Misalnya jika kita ingin memfilter ComboBox/ListBox yang memiliki Rowsource dari Tabel tblUser dengan ComboBox/listBox yang RowSource-nya berdasarkan tblLevelUser, maka dalam tblUser harus ada Field yang datanya berisi data Field dari tblLevelUser. Karena (khususnya dalam artikel ini) ComboBox/Listbox yang akan difilter datanya baru akan bisa difilter jika kriterianya adalah salah satu atau lebih dari field yang ada dalam table yang menjadi Row Sourcenya.
Contohnya :
Private Sub ComboBox1_AfterUpdate()
Dim strNamaUser As String
strNamaUser = "SELECT tblUser.NamaUser, tblUser.Password, tblUser.StatusUser," & _
"tblUser.UserLevel, tblUser.LoginTerakhir FROM tblUser WHERE" & _
"(((tblUser.UserLevel)=[Forms]![Nama Form]![ComboBox1])) & _
" ORDER BY tblUser.NamaUser;"
Me.ComboBox2.RowSource = strNamaUser
Me.ComboBox2.Requery
End Sub

Dari Code diatas, ComboBox2 akan terfilter menjadi hanya Nama User yang field UserLevel-nya adalah value/nilai dari ComboBox1.

Contoh lain cara memfilter List Box berdasarkan Combo Box bisa didownload dari 4shared

Semoga Bermanfaat...

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Laundry Detergent Coupons