|
-
Dec 2nd, 2006, 07:00 PM
#1
Thread Starter
Giants World Champs!!!!
TextBox Validator Function
A while back I wrote the following function becase I had a need to restrict the way a user is to have entered data into a text box. This function allows the programmer the ability to control what type of alphanumeric character is entered into a text box at a particular postion in the text box.
VB Code:
Private Function ValidateKey(TextBoxName As TextBox, Keyascii As Integer) As Integer
Dim strTagFilter As String
Dim intPosition As Integer
If Keyascii = 8 Then
Exit Function
Else
If TextBoxName.Tag & "" = "" Then
Exit Function
Else intPosition = Len(TextBoxName.Text) + 1 'Sets up the Tag pointer
strTagFilter = Mid(TextBoxName.Tag, intPosition, 1) 'Gets the Validator Code
If intPosition > Len(TextBoxName.Tag) Then 'Only allows the same number of characters
'that are contained in the Tag Property
Keyascii = 0 'If so doesn't allow anymore characters
Else
TextBoxName.SelStart = intPosition 'Positions alphanumeric
'character after previous
'alphanumeric character
Select Case strTagFilter
Case "A", "a" 'Only allows Letters
If (Keyascii >= 65 And Keyascii <= 90) Or _
(Keyascii >= 97 And Keyascii <= 122) Then
Keyascii = Keyascii
If strTagFilter = "A" Then 'Capitalize the letter if "A"
If (Keyascii >= 97 And Keyascii <= 122) Then
Keyascii = Keyascii - 32 ' Capitalize the first charater
End If
End If
Else
Keyascii = 0 'invalid character
End If
Case "0" 'Only allows numbers
If (Keyascii < 48 Or Keyascii > 57) Then
Keyascii = 0 'invalid character
End If
Case Else
If Keyascii <> Asc(strTagFilter) Then 'Only allows the same alphanumeric
'Character (i.e. /-_=+&*()#$@!{}|\)
Keyascii = 0 'invalid character
End If
End Select
End If
End If
End If
End Function
... and you call it like this ...
VB Code:
Private Sub Text1_KeyPress(Keyascii As Integer)
Call ValidateKey(Me.Text1, Keyascii)
End Sub
So to allow the following number to be entered into a text box US35-39234B then enter th following into that textboxes Tag Property: AA00-00000A
Regards,
Mark
Please remember to rate posts! Rate any post you find helpful. Use the link to the left - "Rate this Post". Please use [highlight='vb'] your code goes in here [/highlight] tags when posting code. When a question you asked has been resolved, please go to the top of the original post and click "Thread Tools" then select "Mark Thread Resolved."
-
Dec 6th, 2006, 03:33 PM
#2
Re: TextBox Validator Function
here's a one-liner that does a very similar thing (only supports uppercase though):
VB Code:
' Tag property is set to "AA00-00000A"
Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not KeyAscii = vbKeyDelete Then KeyAscii = -KeyAscii * (Text1.Text & Chr$(KeyAscii) Like Replace(Left$(Text1.Tag, Len(Text1.Text) + 1), "A", "[A-Z]"))
End Sub
i wouldn't seriously suggest that someone actually uses this, it's just another way of approaching the problem.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|