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

記事
IT・テクノロジー

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






主キーが設定されていて、主キーから、何かを検索するのは、カンタンです。
しかし、重複しているキーから、一意の値を探すには、どうするのでしょうか?
こんな疑問を解決します。
主キーなんて関係ねぇ!DAOを利用する

こんにちは。伊川です。
散々、主キーは、大切と言っておきながら、主キーなんで関係ないと言っていいものかと思っています。
すべて、クライアントの無茶から始まっています。
もう少し、要領がいい方法はなのかと思いながら、作成しました。
悲しいサラリーマンの性ですね。
では、紹介していきます。



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

DAOを、勉強している人
ACCESSでFor~Nextのループを利用したことがない人
クライアントの無茶振りに困っている人



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

DAOは、ACCESSで利用できる技で、ざっくり言うなら、データベースを操作する技です。
ACCESSを操作するには、必要な知識です。
ループも含めましたので、是非参考にしてください。



DAOで検索する

ACCESSは、行に対しては、検索、抽出は、割とカンタンにでます。
しかし、列に対して、何らかのアクションをするには、結構、難しいと思います。
その列に対してのアクションを可能にするのが、DAOだと思っています。
今回紹介するコードに関しては、逆引辞典を参考にしました。
しかし、逆引辞典も、いきなり、利用できるわけではないので、ある程度、VBAを理解していないと利用できませんね。
なので、わかりやすく紹介したいと思います。


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

1.png

今回、図のようなデータベースがあり、親IDが、A001と、B001です。
A001に紐づく値をすべて、フォーム上に表示するという内容です。


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

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

親IDは、txtテキスト_1~txtテキスト_5
子IDは、txt子テキスト_1~txt子テキスト_5
商品名は、txt商品名_1~txt商品名_5
このように名前を、付けました。


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

3.png

A001の親IDで検索して、カウントアップで書き出します。
紹介しているコードと、逆引辞典のコードは、似ていませんが、この理屈だと思いました。
なので、上記のコードで作動しました。


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

フォームに表示した内容を、メールで送ってほしいとのことです。
Excelで添付したほうがいいのではと思いましたが、メールのテンプレートなどもすでに用意されています。
なんということか?
なので、テキストボックスの内容を書き出しました。

4.png

これも、考えてもわからなかったので、教えてもらいました。
自分でよく利用しているコードなのですが、理屈がわかりました。
ここの理屈を紹介すると長くなるので、割愛します。

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

5.png

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

6.png

めでたく終わりました。


ここがポイント

ACCESSで、逆引辞典を利用したのは、初めてでした。
このような内容は、ネットで、調べても、なかなかHITしないので、参考にしていただければと思います。
今回のポイントは、手動で操作をしていないということです。
つまり、親IDの入力以外は、すべて、クリックのみで完結しています。
これが、ヒューマンエラーを出さない秘訣です。

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

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す