pickup
【ACCESS VBA】非連結の入力フォームで検索値を表示

ACCESSと言えば検索フォームですね。

テキストボックスが連結の場合は、カンタンに検索できます。

しかし、非連結のテキストボックスの場合は、少し難しいです。

目次

スポンサーリンク

非連結の入力フォームで検索値を表示

 

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

前回紹介した非連結のテキストボックスを利用した入力フォームを紹介しました。

では、入力した情報が間違っていた場合、修正が必要です。

その修正を、どのように修正するのか?

そこが問題になります。

テーブルで、直接編集もいいでしょうけど、やめたほうがいいです。

Naosuke
テーブルは神棚のような存在で、人間が、直に触れていいものではありません。

やはり、入力フォームから、修正をするのが一番安全です。

そもそも、ACCESSにバグは発生しないために、非連結のテキストボックスで入力フォームを作成したのです。

では、非連結のテキストボックスで、検索フォームを作成します。

Naosuke
最強の検索フォームです。
参考になれば幸いです。

 

スポンサーリンク

このブログはこんな人にお勧め

今回のテーマ
  • ACCESSで検索フォームを作成している人
  • ACCESSでDAOを勉強している人
  • ACCESSの作動を少しでも軽くしたい人
スポンサーリンク

このブログを、読み終わるころには・・・・

DAOを利用した検索コードを理解することができます。
そもそも検索方法は、2つあります。
その2つの方法を紹介します。
主キーで検索する場合と、主キー以外で検索する場合ですが、
基本は、そう、主キーで検索です。
スポンサーリンク

Findメゾットと、Seekメゾット

今回は、FindとSeekを利用した検索方法を紹介します。

基本は、Seekを利用します。

Seekが主キーに対応した検索方法です。

Seekが利用できないときは、Findを利用します。

 

Seekメゾット

Seekメゾットは、対象とするインデックスを指定します。

主キーも、インデックスの1つなので、検索対象にできます。

検索値が対象のフィールドを検査して、一番初めに見つかったレコードを返します。

見つかった場合は、NomatchプロパティをFalseに設定します。

見つからなかった場合は、Nomatchプロパティが、Trueに設定されます。

但し、原則ですが、リンクテーブルでは、Seekは利用できません。

Seekメゾットで検索 作業手順 その1 インデックスが設定されているか確認

スポンサーリンク
社員IDが、PrimaryKeyに設定されていることを確認してください。

今回は、主キーで検索しますので、ここが設定されていないと検索されません。

また、インデックスが設定されていれば、主キーでなくても検索できます。

しかし、主キーで検索しないなら、Seekを使わなくてもいいとおもいます。

 

Seekメゾットで検索 作業手順 その2 SeeKメゾットのコード

インデックスを利用して、検索するので、Findメゾットよりは、高速で検索が可能です。

しかし、少し書き方が難しいというのが、デメリットです。

Findメゾットで検索 作業手順 その1 Findメゾットのコード

Naosuke

検索キーの型を間違えるとハマります。

文字型なのか、数値型なのかをまちがえないようにしましょう。

これもまた、ハマる原因となります。

 

 

サンプルファイルでは、上のように検索ボタンで、Findメゾットで検索か、Seekで検索かを、分けています。

また、サンプルファイル内には、もう1つのコードを掲載しています。

紹介していないコードのほうが長いのですが、多分、その長いコードのほうが、SE好みではないかと思います。

 

ここがポイント

 

ここがポイント
Function8.png
検索の場合は、Seekを利用して、どうしても、Seekが利用できない場合には、Findメゾットで検索するということを覚えましょう。
Seekに関しては、まだ、面白い利用方法がありますので、機会があれば紹介します。
このSeekは、なかなか、基本書にも記載がないメゾットです。
ACCESSには、まだまだ、知らないことがたくさんありますね。
動画とブログでわかりやすくExcelとACCESSを紹介しています

まとめ

非連結のテキストボックスで入力フォームを作成して、今回は、テーブルに格納されている値を表示させることしました。

逆引き辞典等もそうですが、最初は、連結の内容から記載され、後のほうには、DAO、ADOの記載があります。

最初は、検索方法も多数あるのは理解していましたが、今になって思います。

Naosuke

あー、そういうことだったのか

VBAをスラスラ記載できるようになるには、何度、あーそういうことだったのか をつぶやくのでしょうか?

しかし、挫けません。

VBAとういうか、プログラムに惚れ込んでますから。

今回も最後まで読んでいただき、ありがとうございました。

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

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

 

スポンサーリンク

Twitterでフォローしよう

おすすめの記事