Minggu, 29 Januari 2012

Mencari Data Menggunakan TextBox

Kali ini penulis akan share tentang bagaimana caranya kita mencari data dalam table menggunakan Sebuah TextBox dalam Form. Mungkin anda pernah mengalami dalam suatu aplikasi anda ingin mencari satu data tetapi anda lupa namanya, yang anda ingat hanya sebagian katanya saja, lalu anda mengetikkan kata yang anda ingat kedalam sebuah TextBox, lalu menekan tombol pencarian, dan aplikasi tersebut menampilkan seluruh data yang mengandung kata yang anda ketikkan sebelumnya. Misalnya anda ingin mencari data karyawan dengan nama (yang anda ingat hanya) Nugie, lalu anda ketikkan kata Nugie kedalam TextBox tersebut, dan aplikasi akan menampilkan semua nama karyawan yang ada kata Nugie-nya misalnya hasil yang didapatkan adalah :
Abadi Nugie, Anugielah, Denugie, Nugierah, Nugie Abadi dan lain sebagainya.

Agar anda bisa memberikan fitur tersebut dalam aplikasi yang sedang anda buat, silahkan anda ikuti artikel berikut ini.
Untuk mencari data menggunakan TextBox, kita bisa menggunakan karakter WildCard (*) dalam bahasa SQL menggunakan event procedure. Namun perlu diperhatikan (diartikel ini) adalah hasil outputnya akan ditampilkan dalam bentuk subform atau listbox/combobox.
Jika outputnya menggunakan subform, berikut adalah contohnya :
Private Sub cmdSearch_Click()
On Error Resume Next
Dim strPencarian As String
strPencarian = "SELECT * FROM Input_Data WHERE Input_Data.NamaPelanggan LIKE '*" & Me.txtPencarian & "*' ORDER BY Input_Data.NamaPelanggan;"
Me.Nama SubForm.Form.RecordSource = strPencarian
Me.Nama SubForm.Requery
End Sub

Jika outputnya menggunakan ListBox/ComboBox, kita harus mengetahui RowSource dari ListBox/ComboBox yang telah kita buat. berikut adalah contohnya :
Misalnya RowSource ListBox/ComboBox adalah :
SELECT Input_Data.NamaPelanggan, Input_Data.TanggalDaftar, Input_Data.HariDaftar, Input_Data.JumlahBarang, Input_Data.Keterangan FROM Input_Data ORDER BY [NamaPelanggan];
Maka codenya adalah :
Private Sub cmdSearch_Click()
On Error Resume Next
Dim strPencarian As String
strPencarian = "SELECT Input_Data.NamaPelanggan, Input_Data.TanggalDaftar, Input_Data.HariDaftar, Input_Data.JumlahBarang, Input_Data.Keterangan FROM Input_Data WHERE Input_Data.NamaPelanggan LIKE '*" & Me.txtPencarian & "*' ORDER BY Input_Data.NamaPelanggan;"
Me.Nama ListBox/ComboBox.RowSource = strPencarian
Me.Nama ListBox/ComboBox.Requery
End Sub

Code diatas menggunakan karakter wildcard (*), dimana penjelasan mengenai karakter wildcard ini adalah sebagai berikut (dalam contoh), misalnya kriteria diatas menjadi *AB*, maka hasil yang akan ditampilkan adalah semua kata yang mengandung kata AB seperti Aku Abdi, Bab Satu, Babeh Dia tetapi tidak akan menampilkan kata jika kata AB berada pada awal kata.

Semoga Bermanfaat...

Kamis, 26 Januari 2012

Upper Dan Lower Case

Karakter Huruf Besar Atau Kecil Ketika Mengetik

Pernahkah anda melihat sebuah aplikasi yang ketika anda gunakan, inputan karakternya (misalnya dalam Textbox) selalu karakter huruf kapital atau huruf besar, walaupun kita tidak menekan tombol Shift ataupun menekan tombol Capslock menjadi On. Atau ketika kita mengetikkan huruf besar atau huruf kapital, inputan karakternya selalu menjadi huruf kecil. Hal ini bisa saja kita lakukan dalam ms access dengan cara mengconvertnya menggunakan event after update dari textbox tersebut, namun jika cara ini yang kita lakukan, maka ketika kita mengetik dalam textbox tersebut, karakter yang ditampilkan adalah karakter yang sebenarnya (jika tombol Shift tidak ditekan atau tombol Capslock dalam keadaan Off, maka huruf kecil lah yang akan ditampilkan terlebih dahulu, baru setelah Textbox tersebut diupdate atau control focusnya berpindah, stringnya akan diupdate atau diconvert menjadi seperti yang kita inginkan, bisa berbentuk Uppercase (huruf kapital atau huruf besar), Lowercase (huruf kecil), ataupun Propercase (Awalan huruf dari kata adalah kapital atau huruf besar, karakter selanjutnya sari kata tersebut adalah huruf kecil).
Jika anda ingin langsung mengconvertnya menjadi huruf kapital atau huruf kecil, maka salah satu triknya adalah dengan menggunakan event On Key Press. Namun trik ini tidak bisa digunakan untuk karakter Propercase, walaupun bisa tapi harus menggunakan berbagai macam cara (yang tentunya akan membuat tidak efisien). Dan anda jangan gunakan trik ini untuk Textbox atau control yang nantinya akan digunakan fungsi StrComp (seperti dalam textbox password form login yang memiliki case sensitive).

Berikut ini adalah salah satu cara agar sebuah TextBox berisi karakter huruf Besar/kecil ketika kita mengetik, hal ini agar kita tidak perlu menahan tombol Shift atau menyalakan tombol CapsLock untuk mendapatkan karakter huruf Besar, ataupun sebaliknya. 

Untuk karakter yang diketik agar selalu menjadi huruf Besar :
Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
    Case 97 To 122
    KeyAscii = KeyAscii - 32
    Case Else
End Select
End Sub
Untuk code diatas, semua karakter huruf kecil yang diketik akan langsung dikonvert menjadi huruf besar, karena event on keypress akan "menangkap" KeyAscii dari setiap tombol keyboard yang ditekan, jika karakter yang ditekan adalah karakter dengan KeyAscii 97 sampai 122 (a sampai z) maka akan langsung dikurangi keyascii-nya sebanyak 32, sehingga jika KeyAscii yang didapat adalah 97 (a) maka akan dikurangi 32 menjadi 65 (A), begitu seterusnya, namun jika yang ditekan adalah bukan KeyAscii 97 sampai 122, maka access tidak akan melakukan apa-apa, karena kita hanya ingin mengconvert huruf kecil menjadi huruf kapital atau huruf besar saja.

Untuk Karakter yang diketik agar selalu menjadi huruf kecil :
Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
    Case 65 To 90
    KeyAscii = KeyAscii + 32
    Case Else
End Select
End Sub
Untuk code diatas, semua karakter huruf besar yang diketik akan langsung dikonvert menjadi huruf kecil, penjelasan untuk code ini adalah kebalikan dari penjelasan code diatasnya.

Semoga Bermanfaat...

Case Of Character

CASE SENSITIVE
Adalah case dimana karakter huruf yang diinput oleh user peka terhadap karakter besar dan kecil, dalam case ini, karakter a-z akan dianggap berbeda dengan karakter A-Z. Misalnya nugie abadi berbeda dengan Nugie Abadi berbeda dengan NUGIE ABADI, berbeda dengan Nugie abadi dan seterusnya. Case sensitive ini bisa kita temukan pada website-website yang memerlukan Login untuk dapat mengakses website tersebut, misalnya situs yang termasuk kedalam Social Network, penyedia layanan email dan lain sebagainya. Yang biasanya Case sensitive ini digunakan pada User Id dan Password.

NON CASE SENSITIVE
Adalah case dimana karakter huruf yang dinput oleh user tidak peka terhadap karakter besar dan kecil, dalam case ini, karakter a-z akan dianggap sama dengan karakter A-Z. Misalnya nugie abadi dianggap sama dengan Nugie Abadi dan dianggap sama dengan NUGIE ABADI dan dianggap sama dengan Nugie abadi dan seterusnya.

Secara default metode yang digunakan Access adalah Non Sensitive Case, namun jika anda ingin merubahnya menjadi Case Sensitive untuk sebuah Field (Misalnya untuk Field Password yang memiliki paduan karakter besar dan kecil), maka anda bisa gunakan Fungsi StrComp dengan metode komparasinya menggunakan vbBinaryCompare, yang mana setiap karakter akan dibandingkan kesesuaiannya berdasarkan karakter set (code Ascii) dari masing-masing karakter.
Struktur dari fungsi ini adalah :
StrComp(String Pertama, String Kedua, Metode Komparasi)
Contohnya :
     If StrComp(txtPassword, strPassword, vbBinaryCompare) = 0 Then
     MsgBox "Selamat, Anda Berhasil Login.", vbInformation
     Else
     MsgBox "Password yang anda masukkan salah, perhatikan huruf besar dan kecil", vbCritical
     End If

Untuk contoh penggunaannya (dalam form login) 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