SQLを使って指定したテーブル内の指定した任意の値に対し、あいまい検索を行う方法 書式:
特定のレコードを抽出する記述
全てのフィールドを検索対象とする場合
※なるべく必要なフィールドのみにしぼったほうが処理スピードが速い
SELECT * FROM テーブル名 WHERE 抽出条件;
SELECT フィールドA, フィールドB, ..... FROM テーブル名 WHERE 抽出条件;
抽出条件の設定
上述の書式内の「抽出条件」にて、さらに特定のパターンを持つ特定のレコードの抽出ができる
書式:
特定のフィールドを検索対象とする場合
**SELECT フィールドA, フィールドB, ..... FROM テーブル名 WHERE フィールドA Like "検索したい文字列"
パターンの指定
任意の数の文字 「Like "青*"」(ANSI-92の場合「Like "青%"」)
任意の1文字 「Like "青?"」(ANSI-92の場合「Like "青_"」)
任意の1つの数字 「Like "#番"」
リストの中の1文字 「Like "o[AB]o"」
リストの中にあるもの以外の1文字 「Like "o[!AB]o"」(ANSI-92の場合「Like "o[^AB]o"」)
リストで設定した範囲のうちの1文字 「Like "a[b-e]d" 」
リストで設定した範囲のうちの1文字 「Like "a[!b-e]d" 」(ANSI-92の場合「Like "a[^b-e]d" 」)
【実践】指定した文字列であいまい検索する例
▼記述例▼
SubSearch_test() Dim SearchSQL As String SearchSQL = "SELECT テーブルA.郵便番号,都道府県,市区町村"& _ "FROM テーブルA LEFT JOIN テーブルB" & _ "ON テーブルA.郵便番号=テーブルB.郵便番号" & _ "WHERE テーブルA.郵便番号 Like '20[!0]-*';" 'ここで抽出条件を指定 CurrentDb.QueryDefs("POSTCODEクエリ").SQL = SearchSQL 'クエリ名をセット DoCmd.OpenQuery"POSTCODEクエリ" '実行 End Sub