How to control what type of alphanumeric character is entered into a text box at a particular postion in the text box.
Posted on January 4, 2009
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | 'Controls - How to control what type of alphanumeric character is entered into a text box at a particular postion in the text box. Option Explicit '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. 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 ... 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 |