Wew, bagus bangedd respon nya nie thread. Asyeeek... Btw aku punya cara laen
nih, mungkin bisa dipertimbangkan :
1. bikin prosedur public (taroh di modul)
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long)
As Long
Private Const ES_NUMBER = &H2000&
Private Const GWL_STYLE = (-16)
Public Function SetHanyaBolehNginputAngka(NamaControl As Control, _
Optional Flag As Boolean = True) as
Long
Dim curstyle As Long
If TypeOf NamaControl Is VB.TextBox Then
curstyle = GetWindowLong(NamaControl.hWnd, GWL_STYLE)
If Flag Then
curstyle = curstyle Or ES_NUMBER
Else
curstyle = curstyle And (Not ES_NUMBER)
End If
SetHanyaBolehNginputAngka = SetWindowLong(NamaControl.hWnd, GWL_STYLE,
curstyle)
NamaControl.Refresh
End If
End Function
2. di form yg textboxnya mo di set cuman numerik doank, panggil tu function
dalam event form load
Private Sub Form_Load()
SetHanyaBolehNginputAngka Text1
End Sub
That's it! cuman itu doank... ntar ketika user mo ngetikin isi textbox Text1
yg bisa diisi cuman angka thox...
*hanya saja, ada kelemahannya jg klo make API Calls seperti itu, user
*BENER-BENER* hanya boleh input angka doank. Tanda titik, koma nggak bisa
(padahal mestinya decimal separator kan juga termasuk elemen pembentuk
karakter numerik). Tapi cukup simpel lah tu cara utk nyediain fitur ngunci
textbox yg sekiranya akan dipasang value non desimal (seperti umur, tanggal,
berat badan, tinggi badan, IQ, de-el-el).
btw thanx beradd utk 'inspirasi' yg datang dari potongan code om Sodhik
Ihwan... layak dicoba... ^_^
--
regards,
Rizky Prihanto
~~~~~~~~~~~~~~~~~~~
Office : C4 Computer Communities Club (http://www.cee-papat.com)
Personal : http://www.software-arsitek.web.id
On Dec 28, 2007 10:14 AM, Lai Min Feng <[EMAIL PROTECTED]> wrote:
> nambahin jg..
> If Not IsNumeric(Text1) Then
> MsgBox "Bukan Data Numeric"
> Else
> MsgBox "Data Numeric"
> End If
>
> Note:
> Text1 --> Textbox
>
> jika text1 = textbox.. maka sebaiknya dijadiin text1.text jangan text1
> doang... memang umumnya bisa.. karena vb otomatis melakukan typecasting...
> dari tipe textbox diambil textnya..
> tapi pada kasus2 tertentu coding seperti ini bisa menyebabkan error yang
> akan membingungkan anda... karena bisa jadi di computer laen jalan... tapi
> di beberapa komp laen error...
> jadi sebaiknya jadi seperti ini :
>
> If Not IsNumeric(Text1.text) Then
> MsgBox "Bukan Data Numeric"
> Else
> MsgBox "Data Numeric"
> End If
>
> Note:
> Text1 --> Textbox
>
> =======================
> http://www.fire888.com
>
> -----Original Message-----
> *From:* [email protected] [mailto:
> [EMAIL PROTECTED] Behalf Of *Stefanus Agus Setiawan
> *Sent:* Friday, December 28, 2007 9:33 AM
> *To:* [email protected]
> *Subject:* Re: [Programmer-VB] Tips n Triks membatasi input pada TextBox
>
> ikutan nambahin juga yach, kalau untuk validasi input tipe angka saya
> biasanya pakai code dibawah ini.
>
> If Not IsNumeric(Text1) Then
> MsgBox "Bukan Data Numeric"
> Else
> MsgBox "Data Numeric"
> End If
>
> Note:
> Text1 --> Textbox
>
> salam
>
> Agus Setiawan
>
> ----- Original Message ----
> From: Sodik Ihwan <[EMAIL PROTECTED]>
> To: [email protected]
> Sent: Friday, December 28, 2007 8:45:13 AM
> Subject: Re: [Programmer-VB] Tips n Triks membatasi input pada TextBox
>
> menambahkan saja Bu, kalo saya biasanya pake ini:
>
> Private Sub TxtNama_KeyPress(KeyAscii As Integer)
> ValidIsi 7, KeyAscii
> If KeyAscii = vbKeyReturn Then
> If Trim(Me.ActiveControl.Text) = "" Then Exit Sub
> ObjekBerikutnya TxtAlamat
> End If
> End Sub
>
>
> Public Sub ValidIsi(ModeNa As Byte, AsciNa As Integer, _
> Optional JadiHurufBesar As Boolean = False, _
> Optional JadiHurufKecil As Boolean = False)
> Dim KarakterSah As String, i As Integer
> If ModeNa = 1 Then KarakterSah = "0123456789"
> If ModeNa = 2 Then KarakterSah = "0123456789-"
> If ModeNa = 3 Then KarakterSah = "0123456789."
> If ModeNa = 4 Then KarakterSah = "0123456789.-"
> If ModeNa = 5 Then KarakterSah = "0123456789,."
> If ModeNa = 6 Then KarakterSah = "0123456789,.-"
> If ModeNa = 7 Then KarakterSah = "0123456789,.-" & _
> "ABCDEFGHIJKLMNOPQRSTUVWXYZ" & _
> " abcdefghijklmnopqrstuvwxyz" & _
> "[EMAIL
> PROTECTED]&*()_+-=[]\{}|;:/<>?€" &
> Chr(34)
> If ModeNa = 8 Then
> KarakterSah = ""
> For i = 0 To 255
> KarakterSah = KarakterSah + Chr(i)
> Next i
> End If
> If ModeNa = 11 Then KarakterSah = "PWpw" 'Pria/Wanita
> If ModeNa = 12 Then KarakterSah = "LPlp" 'Laki-laki/Perempuan
> If ModeNa = 13 Then KarakterSah = "YTyt" 'Ya/Tidak
> If ModeNa = 14 Then KarakterSah = "YNyn" 'Yes/No
> If ModeNa = 15 Then KarakterSah = "SIsi" 'Suami/Istri
> If AsciNa > 26 Then
> If InStr(KarakterSah, Chr(AsciNa)) = 0 Then AsciNa = 0
> End If
> If JadiHurufBesar = True Then AsciNa = Asc(UCase(Chr(AsciNa)))
> If JadiHurufKecil = True Then AsciNa = Asc(LCase(Chr(AsciNa)))
> End Sub
>
> salam,
> sodik
>
> On Thu, 27 Dec 2007 14:24:43 +0700, Lilis <[EMAIL PROTECTED]>
> wrote:
>
> > hallo programmer
> >
> > sedikit trik nih utk membuat validasi inputan, contoh ini biasanya
> dibuat
> > spy user ga salah menginput.
> >
> > ketik kodingnya spt dibawah ini pada event keypress
> >
> > Private Sub Text1_KeyPress(KeyAscii As Integer)
> > If (Not KeyAscii >= Asc("A") Or Not KeyAscii <= Asc("Z")) _
> > And (Not KeyAscii >= Asc("0") Or Not KeyAscii <= Asc("9")) _
> > And KeyAscii <> Asc(vbBack) Then
> >
> > MsgBox "Hanya huruf dan Angka aja"
> >
> > End If
> > End Sub
> >
> > kode diatas hnya membatasi user utk menginput huruf atau angka dan
> > backspace
> > utk menghapus kalo ada kesalahan
> > dan hurufnya nya pun cuma bisa huruf besar aja jadi perlu ditambah spy
> > bisa
> > juga utk huruf kecil dan juga mungkin
> > perlu ditambah spasi ( itu PR yg hrs diselesaikan ) dan kalo
> > diperhatikan,
> > aku menggunakan sintak Asc daripada Chr, kenapa?
> > karena kalo memakai chr kombinasinya kan dgn angka sehingga bacanya agak
> > susah bagi orang awam spt aku.
> > tapi kalo menggunakan asc spt diatas, kodenya jadi jelas dan maksudnya
> > dapat
> > dimengerti.
> >
> > ok semoga bermanfaat, sampe ketemu di trik berikutnya :-)
> >
> > salam
> > lilis
> >
>
>