You can use one of the following two methods to work around this behavior.
Method 1
If the incorrect behavior is due to Cause 1 in the "Cause" section, place
the
Option Compare Binary statement at the top of your module.
Method 2
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.
If the incorrect behavior occurs because you are searching for characters
that are not affected by the
Option Compare setting, follow these steps to create a user-defined function to search for the special characters listed in Cause 2 in the "Cause" section:
- Start Microsoft Access.
- Open an existing database, or create a new database.
- Create a new module.
- If they are not already there, type the following lines in the
Declarations section:
Option Explicit
Option Compare Database
- Type the following function:
Function NewInstr (strSearch As String, strWhat As String) As _
Integer
'
' This function searches for the character strWhat in the string
' strSearch. It uses the ASCII value of strWhat, and therefore is
' not subject to Microsoft Access translation of special characters
' and ligatures. It returns the integer position of the strWhat in
' strSearch. It returns 0 if either strSearch or strWhat is empty,
' or if strWhat cannot be found.
'
' Note: If strWhat contains more than one character, only the first
' character is searched for.
Dim iLen As Integer, i As Integer
Dim iRetVal As Integer
If IsNull(strSearch) Or IsNull(strWhat) Or _
IsEmpty(strSearch) Or IsEmpty(strWhat) Then
iRetVal = 0
Else
iRetVal = 0
iLen = Len(strSearch)
i = 1
Do
If Asc(Mid(strSearch, i, 1)) = Asc(strWhat) Then
iRetVal = I
End If
i = i + 1
Loop While iRetVal = 0 And i <= iLen
End If
NewInstr = iRetVal
End Function
- Open the Immediate window, type the following line, and then press
ENTER:
? NewInstr(Chr(223),Chr(223))
Note that the result, 1, appears on the next line.
NOTE: You can generate the special characters directly by holding down the ALT key on your keyboard, typing the number 0 (zero) on the numeric keypad, followed by the ASCII code, and then releasing the ALT key.
Make sure that NumLock is on before typing this. For example, to
generate the ess-szet character, hold down the ALT key and type 0223 on
the numeric keypad.
- Type the following line in the Immediate window, and then press ENTER:
The result, 0, appears on the next line.