AccessのVBAでSQLのSELECT文を実行する|フォーム実行例

LIKE演算子を使いあいまい抽出を行います、「SELECT FROM WHERE LIKE」のように記述します。

BackHome BackSQL Tips

ここでは郵便番号テーブルの住所から、「中央」が2回含まれるレコードを抽出します。
あいまい抽出の構文は「SELECT * FROM T郵便番号 WHERE 住所 LIKE '*中央*中央*';」としています。
LIKE部分の「*(アスタリスク)」は、0文字以上の任意の文字列を表す、ワイルドカードです。
これで、「中央」が2個含まれる住所が抽出できます。
SQLの実行は、レコードセットを使い「CurrentDb.OpenRecordset(SQL文)」としています。




サンプルソフト

■実行画面
下の郵便番号テーブルの住所から、SELECT文を使い抽出します。
住所からSELECT文を使い抽出する

フォームに配置した[SELECT]ボタンをクリックすると、抽出データをSQL実行結果のテキストボックスに表示します。
[SELECT]ボタンをクリックするとSQLを実行する

VBEのコマンドボタンのクリックイベント内に、SQLを実行するVBAを入力します。
ここでは住所に「中央」が2回含まれる、あいまい抽出を行います。
SQL分であいまい抽出を行うには、LIKE演算子を使います。
コマンドボタンのクリックイベント

■コード
Option Compare Database

Private Sub コマンド0_Click()
    Dim SQL As String
    Dim rs As Recordset
    
    Me!テキスト1 = Null
    
    SQL = "SELECT * FROM T郵便番号 WHERE 住所 LIKE '*中央*中央*';"
    
    Set rs = CurrentDb.OpenRecordset(SQL)
    Do Until rs.EOF
        Me!テキスト1 = Me!テキスト1 & rs![住所] & vbCrLf
        rs.MoveNext
    Loop
    Set rs = Nothing
End Sub

■実行結果
「中央」が2個含まれる住所が抽出されています。
SQL実行結果


BackHome BackSQL Tips

Copyright(C) FeedSoft