見出し画像

【ACCESS VBA】親IDから、子IDを検索するときはどうする?

YouTubeでも紹介しています。ぜひご覧ください



主キーが設定されていて、主キーから、何かを検索するのは、カンタンです。

しかし、重複しているキーから、一意の値を探すには、どうするのでしょうか?

こんな疑問を解決します。

 

主キーなんて関係ねぇ!DAOを利用する


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

散々、主キーは、大切と言っておきながら、主キーなんで関係ないと言っていいものかと思っています。

すべて、クライアントの無茶から始まっています。

もう少し、要領がいい方法はなのかと思いながら、作成しました。

悲しいサラリーマンの性ですね。

では、紹介していきます。

 

 

 

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


DAOを、勉強している人

ACCESSでFor~Nextのループを利用したことがない人

クライアントの無茶振りに困っている人

 


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


DAOは、ACCESSで利用できる技で、ざっくり言うなら、データベースを操作する技です。

ACCESSを操作するには、必要な知識です。

ループも含めましたので、是非参考にしてください。


DAOで検索する

 

ACCESSは、行に対しては、検索、抽出は、割とカンタンにでます。

しかし、列に対して、何らかのアクションをするには、結構、難しいと思います。

その列に対してのアクションを可能にするのが、DAOだと思っています。

今回紹介するコードに関しては、逆引辞典を参考にしました。

しかし、逆引辞典も、いきなり、利用できるわけではないので、ある程度、VBAを理解していないと利用できませんね。

なので、わかりやすく紹介したいと思います。

 

DAOで検索する 作業手順 その1 データベースを確認する。

 

今回、図のようなデータベースがあり、親IDが、A001と、B001です。

A001に紐づく値をすべて、フォーム上に表示するという内容です。

 

DAOで検索する 作業手順 その2 フォームを作成する。


今回作成するフォームは、すべて、非連結のテキストボックスで構成しています。

親IDは、txtテキスト_1~txtテキスト_5

子IDは、txt子テキスト_1~txt子テキスト_5

商品名は、txt商品名_1~txt商品名_5

このように名前を、付けました。

 

DAOで検索する 作業手順 その3 今回作成したコード



A001の親IDで検索して、カウントアップで書き出します。

紹介しているコードと、逆引辞典のコードは、似ていませんが、この理屈だと思いました。

なので、上記のコードで作動しました。

 

DAOで検索する 作業手順 その4 クライアントが無茶を言ってきた


フォームに表示した内容を、メールで送ってほしいとのことです。

Excelで添付したほうがいいのではと思いましたが、メールのテンプレートなどもすでに用意されています。

なんということか?

なので、テキストボックスの内容を書き出しました。

これも、考えてもわからなかったので、教えてもらいました。

自分でよく利用しているコードなのですが、理屈がわかりました。

ここの理屈を紹介すると長くなるので、割愛します。

 

DAOで検索する 作業手順 その5 まだ終わらない、メール送信

 

ACCESSから、Outlookを操作するには、Microsoft Outlook 16.0 Object Libraryにチェックを入れる必要があります。
 

めでたく終わりました。

ここがポイント

 

ACCESSで、逆引辞典を利用したのは、初めてでした。

このような内容は、ネットで、調べても、なかなかHITしないので、参考にしていただければと思います。

今回のポイントは、手動で操作をしていないということです。

つまり、親IDの入力以外は、すべて、クリックのみで完結しています。

これが、ヒューマンエラーを出さない秘訣です。


まとめ



今回は、DAOの紹介でした。

何度かDAOは、動画ブログで紹介していますので、是日、皆さんのスキルにしてください。

サンプルファイル

私のホームページでも販売しています。このようなファイルは、全部で、300ファイル前後ありますが、総ダウンロード数は、10,000件を、超えました。10,000件超えてから、面倒なので、カウントしていないです。

勉強したい方、会社の実務で利用したい方にお勧めです。

はっきり言いますが、ネットで調べる時間を考えたら、購入したほうが、時間の節約になります。

まして、ネットのコードは、作動するとは限りません。

料金は、200円です。

よろしくお願いします。


ここから先は

75字

¥ 200

よろしければサポートをお願いします。いただいたお金に関しては、書籍の購入に充て、より良い情報を皆様に提供します。