アクセスのクエリでLikeはテキストモードの比較になってしまうのでアルファベットの大文字小文字、全角半角が同じ文字として処理されます。思わぬ処理結果になる場合がありますので、バイナリーモードで比較できるようにしたいと思います。
マイクロソフトの解説
Microsoft Docs だと以下の2つの説明があります。
文字列の合致を探して開始位置を得る
InStr関数を使って合致する文字列の開始位置を求めることができます。=0で不一致、>0で合致になります。
構文:InStr([ start ], string1, string2, [ compare ])
検索する列名=列1、検索する文字を”検索文字”とすると、
クエリは、式1:InStr(1,[列1],”検索文字”,0) となります。
抽出条件を>0とすると部分一致での検索が実行できます。
バイナリーモードで比較する関数を作ってしまう
前出の Like 演算子(VBA) を読んでみると割と簡単に使えそうです。
Binary_Like() と言う関数を作ってみましょう。
Option Compare Binary ‘←バイナリモードで文字列を比較する宣言
Option Explicit
Public Function Binary_Like(STR_TEXT1, STR_TEXT2) As Boolean
If IsNull(STR_TEXT1 + STR_TEXT2) Then Exit Function
Binary_Like = STR_TEXT1 Like STR_TEXT2
End Function
かなり簡単ですよね。使う時もクエリの中で関数として使って下さい。
STR_TEXT2(第2引数)ではワイルドカード(アスタリスク *、アンダーバー _)も使えて簡単です。
この記事へのコメントはありません。