レコードある限り検索する

こんにちは。伊川(@naonaoke)です。

今回は、ACCESSの検索フォームについて解説します。

テーブルに同じ値がある場合です。

今までは、最初に見つかった値のみ表示しました。

今回は、レコードある限り検索を実行するコードを紹介します。

問題提起

 

((株)IKAWAの阿久 世子男(アク セスオ)は上司から下記の依頼を受けました。

検索フォームで同じ値がときは、

すべて検索できるようにして欲しい。

どのようなコードを記載すればいいだろうか?

解決策

 

回答
sesuo2.jpg
Findnext Nomatchを使って、次の値を検索する。

 

Findnext Nomatch

レコードを検索する場合によく利用される方法です。

メゾット

検索内容

FindFirst 検索条件の一番最初のレコードに移動
FindNext 検索条件の次のレコードに移動
FindPrevious 検索条件に一致する前のレコードを検索
FindLast 検索条件に一致する最後のレコードを検索

条件に一致するレコードの判定は、Recordsetオブジェクトの「NoMatch」プロパティで判定します。

難しいように思うかも知れませんが、今回の方法は、何度か動画で紹介しています。

Findnext Nomatch 作成手順その1 データベース確認

上の図のようなデータベースがあります。

名前のフィールドに同じ値があります。

例えば、仮面ライダーは、2つあります。

仮面ライダーある限り検索を実行します。

Findnext Nomatch 作成手順その2 検索フォームを作成する

検索フォームの作成については、上の記事を確認してください。

また、今回は、レコードの検索ボタンは、2つにしています。

最初は、「レコードの検索」をクリックして、次に「次を検索」をクリックします。

Findnext Nomatch 作成手順その3 コードを仕込む

コードの説明は上の図の通りです。

Findnext Nomatch 作成手順その4 コードを実行する




これで検索終了です。

ここがポイント

 

ここがポイント
Function8.png
このFindメゾットは、Excelでも良く使います。NoMatchはACCESSでよく使います。Findメゾットと聴いて、Excelの場合、ACCESSの場合と、連想できれば、VBAに慣れてきた証拠です。

 

スポンサーリンク

まとめ

今回のまとめ
sesuo6.jpg
思うようにレコードを抽出できるようになり、また少し、ACCESSが好きになった、阿久 世子男(アク セスオ)なのでした。

今回のサンプルファイルは、No69です。

サンプルファイルの購入
ブログが動画で紹介した内容のサンプルファイルを
購入できます。月額3,000円です。
練習用ファイルもダウンロードできます。
PayPal経由でお支払いでます。
ダウンロード回数に制限はありません。
スポンサーリンク

Twitterでフォローしよう

おすすめの記事