HOME > 即効テクニック > AccessVBA > クエリ・SQL > SQLでワイルドカード検索を行う(LIKE検索)

即効テクニック

クエリ・SQL

SQLでワイルドカード検索を行う(LIKE検索)

(Access 97)
SQLのLIKE句を用いて指定したワイルドカード検索を行います。
LIKE句は以下のような構文になっています。

 WHERE 属性名 LIKE '*<文字列>'
 WHERE 属性名 LIKE '<文字列>*'
 WHERE 属性名 LIKE '*<文字列>*'

ここではNorthWIND.MDBの「社員」テーブルにおいて社員の氏名の中に「川」が付く人のレコードを抽出してその結果をビュー「新規クエリ」に書き出しています。
●サンプルコード●
Private Sub SQL_Like()
  Dim cn As New ADODB.Connection
 Dim cmd As ADODB.Command
 Dim cat As New ADOX.Catalog
 Dim strSQL As String
 
 Set cn = New ADODB.Connection
 cn.ConnectionString = _
        "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=D:\NorthWIND.MDB"
 cn.Open
 cat.ActiveConnection = cn
  
 '氏名の途中に「川」がある社員
   strSQL = "SELECT * FROM 社員 WHERE 氏名 LIKE '*川*'"
  
 Set cmd = New ADODB.Command
 cmd.ActiveConnection = cn
 cmd.CommandText = strSQL
 cat.Views.Append "新規クエリ", cmd
 cn.Close

 Set cmd = Nothing
 Set cn = Nothing
 Set cat = Nothing
End Sub
●動作確認●
作成されたビュー「新規クエリ」に「川」が付く氏名の社員のレコードが作成されていることを確認してください。

●補足●
プロバイダによっては「*」が使えない場合があります。