I have a program that has been working for a year or so, it imports records form a text file created by a web site. Someone has entered a hex("1A", "A8" in a name field. It is shutting my program down. I tried a alphanumeric check to replace it and a length check to try and skip the record but the program thinks it is at the end of the file and quits reading records. Is there a way to get rid of characters like this in vba?
"5407 MUYF3I23 GIS¨LE "
Here is what I have tried
"5407 MUYF3I23 GIS¨LE "
Here is what I have tried
Code:
If Len(strread) <> 591 Then
MsgBox "Invalid Record Read " & strread
GoTo Skip_Loop
End If
If AlphaNumeric(CStr(Trim(Mid(strread, 32, 11)))) Then
!HT_FName = CStr(Trim(Mid(strread, 32, 11)))
Else
MsgBox "Invalid name"
End If
Function AlphaNumeric(pValue) As Boolean
Dim LPos As Integer
Dim LChar As String
Dim LValid_Values As String
'Start at first character in pValue
LPos = 1
'Set up values that are considered to be alphanumeric
LValid_Values = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+-.0123456789"
'Test each character in pValue
While LPos <= Len(pValue)
'Single character in pValue
LChar = Mid(pValue, LPos, 1)
'If character is not alphanumeric, return FALSE
If InStr(LValid_Values, LChar) = 0 Then
AlphaNumeric = False
Exit Function
End If
'Increment counter
LPos = LPos + 1
Wend
'Value is alphanumeric, return TRUE
AlphaNumeric = True
End Function