Rabu, 04 Desember 2013

VB – Validasi TextBox

Jika dalam satu form ada banyak text box yang harus diisi, maka melakukan validasi untuk satu persatu text box tersebut dapat menjadi sangat membosankan. Apakah validasi harus dilakukan satu-persatu? Tidak juga, kita dapat membuat sebuah fungsi validasi yang dapat digunakan untuk semua textbox yang ada dalam sebuah form.


Validasi yang dilakukan adalah melakukan pengujian apakah text box tersebut masih kosong atau sudah terisi. Jika sudah terisi maka validasi berhasil. Jika belum terisi, kedipkan text box tersebut (untuk “menarik” perhatian dari user) dan setfocus ke text box tersebut.


  1. Langkah pertama buat sebuah form dengan banyak text box. Lihat gambar.




  2. Untuk form tersebut, nama untuk masing-masing textbox adalah text1, text2, text3, text4, text5 dan text6. Sedangkan nama untuk button simpan adalah command1.

  3. Sebelum membuat proses validasinya, kita akan terlebih membuat modul untuk mengedipkan (blink) suatu objek. Proses blinking suatu objek dapat dengan mengubah properti backcolor. Lama untuk blinking dapat diatur pada perintah For.


  4. Public Sub Blink(ByVal c As Object)
     Dim OldColor As Double
     Dim Delay As Double
     Dim x As Integer
     
     On Error Resume Next
     OldColor = c.BackColor
     
     For x = 1 To 3 'tiga kali berkedip
     c.BackColor = QBColor(12)
     Delay = Timer
     While Timer - Delay < 0.2
     DoEvents
     Wend
     c.BackColor = OldColor
     Delay = Timer
     While Timer - Delay < 0.2
     DoEvents
     Wend
     Next x
    
     If c.Enabled Then
     c.SetFocus
     End If
    End Sub


    Sub blink ini dapat diletakkan pada sebuah modul baru atau pada form utama.

  5. Langkah ke tiga adalah membuat sub untuk melakukan validasi. Sub ini mempunyai parameter berupa objek. Nantinya, sub ini dipanggil dengan parameter sebuah array yang berisi semua nama text box yang hendak divalidasi.


  6. Public Function ValidateTextBox(obj As Variant) As Boolean
    Dim i As Long
     ValidateTextBox = True
     For i = 0 To UBound(obj)
     If obj(i).Text = "" Then
     If obj(i).Enabled Then
     obj(i).SetFocus
     End If
     FlashControl obj(i)
     ValidateTextBox = False
     Exit Function
     End If
     Next i
    End Function


  7. Function Validatetextbox, dapat dipanggil ketika event penekanan button Simpan. Di sinilah proses validasi dilakukan.


  8. Private Sub Command1_Click()
     If Not ValidateTextBox(Array(Text1, Text2, Text3, Text4, Text5, Text6)) Then
     Else
     MsgBox "Data sudah lengkap!"
     'lakukan proses penyimpanan
     End If
    End Sub


  9. Simpan Form di atas dengan nama FrmValidate. Jalankan program dengan menekan tombol F5. Jika form masih kosong, dan tombol simpan di-klik, maka text box yang kosong akan berkedip dan kursor akan diarahkan pada textbox yang kosong tersebut.

Tidak ada komentar:

Posting Komentar