CodeItBetter Programming Another VB Programming Blog

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
Filed under: Controls Leave a comment
Comments (0) Trackbacks (0)

No comments yet.


Leave a comment


 

No trackbacks yet.