Microsoft Access Club >VBAのTips解説 >このページ >次頁 < 前項  サイト内検索
 

SQL内でワイルドカードを用いて文字列を検索する方法 : VBAのTips解説



LIKE演算子

LIKE演算子とは、ワイルドカードを使って文字列を検索するための演算子です。Like演算子とワイルドカードを用いた検索は「あいまい検索」とも呼ばれ、幅広い対応が可能になります。

  • 主なワイルドカード
  1. アスタリスク (*)   →   0文字以上の任意の文字列を現す。
    例 . 名前 LIKE "鈴木*"
    (鈴木以下の文字は何でも検索する。鈴木美恵子、鈴木幸平などが該当する。)
  2. 疑問符(?)   →   任意の一文字を現す。
    名前 LIKE "鈴木*"
    (鈴木以下の1文字は何でも検索する。鈴木仁、鈴木元などが該当する。)
  • 書式
fieldname LIKE [*,?] value [*,?]
  • 引数
引数 意味 指定
fieldname フィールド名を指定します 省略不可
value 検索する値を指定します。ワイルドカード利用の場合は、前後、または文中に記述できます 省略不可

関連項目

  1. CurrentDb(DAO)
  2. Deleteメソッド(DAO)
  3. OpenQueryメソッド

事例 ) オプショングループを用いて、(株)または(有)の文字を持つレコードを抽出する

オプショングループを用いて、(株)または(有)の文字を持つレコードを抽出します。

  1. 取引先、取引開始日フィールドを持つ取引先台帳テーブルを作成します。
  2. 非連結フォームを作成します。
  3. オプションボタンを作成します。
  4. 実行するコマンドボタンを作成します。

コマンドボタンクリック時イベントプロシージャの作成

コマンドボタンクリック時イベントプロシージャを以下のように作成します。
Private Sub 実行_Click()

   On Error GoTo エラー

   Dim db As DAO.Database
   Dim rs As DAO.Recordset
   Dim mySQL As String
   Dim strMsg As String
   Dim strOption As String

   Set db = CurrentDb

   If Me.オプション = 1 Then
      strOption = "*(株)*" '--- A
   Else
      strOption = "*(有)*"
   End If

   mySQL = "SELECT * FROM 取引先台帳 "
   mySQL = mySQL & "Where 取引先名 Like '" & strOption & "'" & ""
   Set rs = db.OpenRecordset(mySQL)

   Do Until rs.EOF
      strMsg = strMsg & vbNewLine & rs!取引先名 & " : " & rs!取引開始日
      rs.MoveNext
   Loop

   MsgBox "社名に(株)のある取引先一覧" & vbNewLine & strMsg

   rs.Close: Set rs = Nothing
db.Close: Set db = Nothing Exit Sub エラー: MsgBox Err.Number & " : " & Err.Description End Sub
解説
  1. アスタリスク(*)を(株)の前後に配置すると、文字列中に(株)を含めば該当するようになります。

動作確認

  1. フォームをビューモードで開きます。
  2. オプショングループで「社名に(株)]を選択し、[実行]ボタンをクリックします。

  1. 検索に一致したレコードがメッセージボックスに表示されます。

ページの先頭へ 前ページへ戻る

 


SQL内でワイルドカードを用いて文字列を検索する方法 : VBAのTips解説


 

-Microsoft Access Club-

動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。データセンター設置場所はアメリカ合衆国です。: 動画サーバードットコム
動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。
データセンター設置場所はアメリカ合衆国です。
100Mbps〜1Gbpsまで対応できます。