V
ViViC via OfficeKB.com
I received help previously on this problem which was brilliant but I missed a
problem that occurs. When entering the numbers from right side of text box
you can continue to enter numbers as you like with no stop. When the person
enters the 5th number it must stop the entry and show message cannot
procedure further and then move to next textbox. The code to date is below.
Any assistance would be greatly appreciated.
Private Sub txtInvClaim_Change()
Dim i As Long
Dim s As String
Dim ba() As Byte ' byte-array
Static bExit As Boolean
If Not bExit Then
s = UCase(Me.txtInvClaim.Text)
ba = s
s = ""
For i = 0 To UBound(ba) Step 2
If ba(i + 1) = 0 Then
Select Case ba(i)
Case 48 To 57
' digits 0-9
s = s & Chr(ba(i))
Case 65 To 90
'letters only in 1st 2 characters
If i <= 3 Then
s = s & Chr(ba(i))
End If
End Select
End If
Next
If Len(s) > 1 Then
s = Left$(s, 2) & "/" & Right$("00000" & Mid$(s, 3, Len(s) - 2), 5)
End If
If txtInvClaim.Text <> s Then
bExit = True
txtInvClaim.Text = s
End If
End If
bExit = False
End Sub
problem that occurs. When entering the numbers from right side of text box
you can continue to enter numbers as you like with no stop. When the person
enters the 5th number it must stop the entry and show message cannot
procedure further and then move to next textbox. The code to date is below.
Any assistance would be greatly appreciated.
Private Sub txtInvClaim_Change()
Dim i As Long
Dim s As String
Dim ba() As Byte ' byte-array
Static bExit As Boolean
If Not bExit Then
s = UCase(Me.txtInvClaim.Text)
ba = s
s = ""
For i = 0 To UBound(ba) Step 2
If ba(i + 1) = 0 Then
Select Case ba(i)
Case 48 To 57
' digits 0-9
s = s & Chr(ba(i))
Case 65 To 90
'letters only in 1st 2 characters
If i <= 3 Then
s = s & Chr(ba(i))
End If
End Select
End If
Next
If Len(s) > 1 Then
s = Left$(s, 2) & "/" & Right$("00000" & Mid$(s, 3, Len(s) - 2), 5)
End If
If txtInvClaim.Text <> s Then
bExit = True
txtInvClaim.Text = s
End If
End If
bExit = False
End Sub