Sebagai programmer selain
dituntut menghasilkan program yang minim bug kita juga dituntut untuk
membuatnya mudah di operasikan. Salah satu seni pada trik ini ialah format pada
saat input data khususnya pada textbox. Formating ini ialah meberitana “.”
Ketika user menginputkan data angka. Tanda titik tersebut memisahkan angka
berkelipatan ribuan. Dengan formatting ini diharapkan meminimalisir kesalahan
user dalam menginputkan data angka yang biasanya sanga riskan khusunya inputan
data keuangan.
Langkah pertama kita pastikan
adanya validasi” hanya angka yang dapat dimasukan serta beberapa tombol
pengecualian seperti backspace, delete dan Esc” pada event keypress di sebuah
textbox kita ambil contoh “TxtNominalsetor”.
Private Sub TxtNominalsetor_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Handles TxtNominalsetor.KeyPress
'If Not ((e.KeyChar >= "0" And e.KeyChar <=
"9") Or e.KeyChar = vbBack) Then e.Handled() = True
Dim KeyAscii As Short = Asc(e.KeyChar)
If (e.KeyChar Like "[0-9]" _
OrElse KeyAscii = Keys.Back
_
OrElse KeyAscii = Keys.Return
_
OrElse KeyAscii = Keys.Delete)
Then
KeyAscii = 0
End If
e.Handled = CBool(KeyAscii)
End Sub
Kemudian pada event
textchanged;
Private Sub
TxtNominalsetor_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles
TxtNominalsetor.TextChanged
If Microsoft.VisualBasic.Len(TxtNominalsetor.Text) = 0 Then
Exit Sub
End If
TxtNominalsetor.Text =
FormatNumber(TxtNominalsetor.Text, 0)
TxtNominalsetor.SelectionStart =
Microsoft.VisualBasic.Len(TxtNominalsetor.Text)
End
Sub
Agar data yang berformat
tadi masuk ke database tanpa masalah, tentu perlu adanya proses formatting
kembali ke format normal. Gunakan perintah berikut :
Dim normalangka As Double
normalangka =
Format(TxtNominalsetor.Text, "General
Number")
Gunakan
variable “normalangka” untuk data yang akan disave
makasih gan nyari2 di google nggak ketemu2... baru ketemunya disini,,,
BalasHapusok deh
BalasHapusoke gan thanks infonya...
BalasHapusDim normalangka As Double
BalasHapusnormalangka = Format(TxtNominalsetor.Text, "General Number")
coding yg in disimpan dimana y..
Kan ada tab design dan tab code.
HapusNah script itu di tulis di tab code gan.
kalau misalkan melakukan penjumlahan dengan format diatas apa kodingnya gan?
BalasHapusaku dah coba pakai val buat jumlahin tapi gak bisa
Gunakan variabel pengubah format angka. Di contohkan di atas nolmaangka.
Hapusmaaf bos,,,ketika saya input misal 10000 (sepuluh ribu)
BalasHapuskenapa munculnya 1.0000 dan bukannya 10.000
salah dimananya ya bos
ada bug "conversion from string to type long is not valid" ktk klik simpan, alhamdulillah solved dgn ini :
BalasHapustxtterbilang.Text = Terbilang(CStr(txtbiaya.Text))
Terimakasihhh
BalasHapusThanks bang nyari" artikel lain blm ada yang work di mari malah work :)
BalasHapus