小さい会社の1人SEの開発記というか奮戦記

  1. Access
  2. 393 view

クエリのLikeをバイナリーモードで処理したい【Access】

アクセスのクエリで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引数)ではワイルドカード(アスタリスク *、アンダーバー _)も使えて簡単です。

Accessの最近記事

  1. Accessの数値型ではまる・・・。

  2. クエリで日付から曜日を算出する。【Access】

  3. クエリのLikeをバイナリーモードで処理したい【Access】

  4. アクセスのマクロ機能を初心者に解説【Access】

  5. NZ関数でNullを上手く使う【Access】

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


お薦め書籍

最近の記事

  1. Access

    Accessの数値型ではまる・・・。
  2. Excel

    日本語をエンコードする【Excel VBA】
  3. Access

    クエリで日付から曜日を算出する。【Access】
  4. PCパーツ

    ASUS AMD Ryzen 4000 シリーズ搭載小型ベア…
  5. Microsoft365

    コンデジをTeamsのWebカメラに使う
  6. SQL Server

    SQL文で今日から7日前までを指定する