レコードの検索と該当なしの表示


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
vol267

これならわかるマイクロソフトアクセス活用法
            -->レコードの検索と該当なしの表示
              
発行者:高内 章治 2016年9月 7日
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏ 今日の内容 ━━━━━━━━━━━━━━━━━━━━━━━━┓

┃【01 - ご挨拶    】
┃【02 - トピックス  】レコードの検索と該当なしの表示

┃【03 - 編集後記    】

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

─────────────────────────────────
【01 - ご挨拶    】          
─────────────────────────────────

こんにちは、高内(こうない)です。

今回は、

「レコードの検索と該当なしの表示」

についてお話したいと思います。




─────────────────────────────────

【02 - トピックス】: レコードの検索と該当なしの表示

─────────────────────────────────

お客様から質問がありました。

「在庫管理システムをアクセスで作ってみよう」という教材の中には、サブフォームのデータを検索する機能があります。

  • 最初の検索には、

    DoCmd.FindRecord

  • 次の検索には、

    DoCmd.FindNext


を使っています。

検索して、該当レコードが見つかったときには、そのレコードにカーソルが移動します。
でも、該当のレコードが見つからないときには、何もしません。
レコードがありませんという表示もありません。

そこで、該当レコードが無い時には、「該当レコードはありません」
などと表示したいということでした。


  1. 該当レコードを検索する

    まず、該当レコードを検索するやり方について説明します。
    サブフォームを探すコードは以下のようになります。

    DoCmd.GoToControl "F_製品マスタ_サブA"
    DoCmd.GoToControl "製品コード"
    DoCmd.FindRecord TEXT_SEL, acAnywhere, False, , False, acCurrent, True

    ・まず、TEXT_SELに検索するデータを入れます。
    ・次に、サブフォームの「F_製品マスタ_サブA」に移動します。
    ・次に「製品コード」のテキストボックスに移動します。
    ・TEXT_SELの検索データで、「製品コード」の項目の中を検索します。
    見つかれば、そのレコードにカーソルが移動します。
    見つからないときは、何もしません。

    上のケースの検索は、あいまい検索です。部分一致での検索になります。
    もし「完全一致」で検索したい場合は、「acAnywhere」を「acEntire」にすれば、良いです。


  2. 該当レコードが無い場合の表示

    FindRecordは、該当レコードが見つからないときは、何もしません。

    ですので、見つからないときの処理をいれます。

    上のコードの下に、以下のコードを入れます。
    FindRecordで、レコードに移動した後に、そのレコードのデータと検索データを比較して、異なればメッセージを表示します。

    If InStr(Me![F_製品マスタ_サブA].Form![製品コード], TEXT_SEL) = 0 Or Null Then
    MsgBox "該当レコードはありません。"
    End If

    ・まず、曖昧検索ですので、InStr関数で、サブフォームの製品コードの データに、TEXT_SELの検索データが含まれているかチェックしています。
    見つからない場合の「ゼロ」や、製品コードがNullの場合の「Null」のときは、「該当レコードはありません」と表示します。

    上のケースは、曖昧検索のチェックですが、「完全一致」のときは、

    If TEXT_SEL <> Me![F_製品マスタ_サブA].Form![製品コード] Then

    で良いと思います。
    関数は、必要ないです。


DoCmd.FindNext
のときも、やり方は同じです。

確かに、検索で、「該当レコードなし」で表示があった方がユーザーにとっては親切ですね。


参考にしてください。



─────────────────────────────────
【03 - 編集後記    】       
─────────────────────────────────

台風がまた、来ています。

台風10号のときは、東北や北海道で大きな被害がありました。

多くの雨が降ったそうです。
河川の冠水が多くの場所で起こり被害が大きかったですね。
まだ、避難している方もいるそうです。

今回の、13号も同じルートを通りそうです。

十分に気をつける必要がありますね。


◆私がアクセスをマスターできたのは!!
http://www.sk-access.com/kyozai/zaiko1.html  

テーブル作成からVBAまでマスターできます。 
「在庫管理システムをアクセスで作ってみよう」教材です。
http://www.sk-access.com/kyozai/zaiko2.html  


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
●ご意見・ご感想・ご質問
 
『メルマガでもっとお役にたてる情報を配信したいと思いますので、日ごろから疑問に思っていることを教えてください。
宛先はこちらへです』

  •  kohnai★vega.ocn.ne.jp
      (高内:こうない:)
    (メールするときは、★を@に変えてください)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


◎「これならわかるマイクロソフトアクセス活用法」 のバックナンバー・配信停止はこちら

archive.mag2.com/0000222659/index.html

◎以下のホームページからでもバックナンバーを見ることができます。

http://www.sk-access.com/mailmaga/index.html

登録・解除につきましてはご自身でお願いいたします。

※このメールマガジンの転送はOKですが、掲載された記事の内容を許可無く転載することをを禁止させて頂きます。
必ず事前にご相談ください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


1週間でアクセス(Access)のシステム開発ができる〜
「在庫管理システムをアクセスで作ってみよう」教材

「アクセスのプログラム/システムを短期間で開発したい方」、
「アクセスのフォーム/VBAを完全にマスターしたい方」のための
アクセス(Access)を使って1週間でシステム開発する究極の方法とは?

「アクセス(Access)のシステムを無料のSQL Server 2016 Expressへ
移行してみよう」教材

あなたの会社のアクセス(Access)のデータベースやシステムに不安を感じていませんか?
アクセスのデータ量が多くなり処理スピードが遅くなった。
アクセスのデータを共有したい。
セキュリティに不安がある。などと、感じている方は!!
(SQL Server 2016 Expressバージョンです。)


「アクセス(Access)プログラムの仕様書の作り方」教材
マイクロソフトアクセスを使用して、プログラムの作成/システム開発をおこないたい方の為に、
アクセス(Access)のプログラム開発に成功するために絶対に必要な「仕様書」とは?



[↑一番上へ]
[マイクロソフトアクセス活用法(メールマガジン)(ホームへ)]
12:330603

アクセス全体

VBA

SQL Server