AccessのVBAでSQLのINSTR関数を使い指定した文字列を検索し見つかった位置を返す|フォーム実行例

製品名から「レンジ」を検索し、見つかればその位置を取得 INSTR関数

例: SQL = " SELECT INSTR(検索開始位置 , フィールド名 , 検索する文字列) FROM テーブル名 "
例: SQL = " SELECT INSTR(検索開始位置 , フィールド名 , 検索する文字列) AS 名前 FROM テーブル名 "
Set rs = CurrentDb.OpenRecordset(SQL)

フィールドデータの検索開始位置から、検索する文字列を検索し、見つかればその位置を、見つからなければ0が返ります。



BackHome BackSQL Tips

サンプルソフト
[実行時の画面]
「製品名から「レンジ」を検索し、見つかればその位置を取得 INSTR関数」ボタンをクリックすると、
在庫管理データベーステーブルの製品名の1文字目から「レンジ」を検索します。

■実行画面
「ナショナルレンジ700W」 結果 「6」
「液晶32V型」 結果 「0」
「50HZ専用レンジ」 結果 「7」(半角文字が含まれていても7文字目になっています)
文字列の検索

[在庫管理テーブル]
在庫ID 製品名 型番 在庫数
1 ナショナルレンジ700W R-4545 150
2 液晶32V型 DD-32 220
3 50HZ専用レンジ NNE-5656 30
製品在庫管理

[コード]
Option Compare Database

Private Sub コマンド8_Click()
    Dim SQL As String
    Dim rs As Recordset
    Me!テキスト1 = Null
    SQL = "SELECT 製品名,INSTR(1,製品名,'レンジ') FROM T_在庫管理"
    Set rs = CurrentDb.OpenRecordset(SQL)
    Do Until rs.EOF
        Me!テキスト1 = Me!テキスト1 & "「" & rs(0) & "」  結果  「" & rs(1) & "」" & vbCrLf
        rs.MoveNext
    Loop
    Set rs = Nothing
End Sub

サンプルソフトのダウンロード

BackHome BackSQL Tips

Copyright(C) FeedSoft