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.
- Langkah pertama buat sebuah form dengan banyak text box. Lihat gambar.
- 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.
- 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.
- Function Validatetextbox, dapat dipanggil ketika event penekanan button Simpan. Di sinilah proses validasi dilakukan.
- 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.

Untuk form tersebut, nama untuk masing-masing textbox adalah text1, text2, text3, text4, text5 dan text6. Sedangkan nama untuk button simpan adalah command1.
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.
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
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
Tidak ada komentar:
Posting Komentar