質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

672閲覧

【ACCESS2016】フォームで参照しているレコードと、サブフォームが参照しているレコードを、ボタンで同時に検索・表示したい

MKVB

総合スコア10

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2019/08/29 10:47

前提・実現したいこと

ACCESS2016で、会員管理のDBを作成しています。
各会員への会員IDの割り振りと補足事項の入力フォームを作成しようとしていますが、
それぞれが別テーブルでの管理となっています。

テーブルA:会員IDを入力(フォームAで入力予定)
テーブルB:会員ID補足事項入力(フォームBで入力予定)

テーブルAとテーブルBを繋ぐフィールドは、登録ID(メールアドレスのようなもの)
を使用していますが、テーブルAでは登録IDの重複があるため、クエリを作成すると
フィールドデータの更新ができません。

そこで、フォームA内にフォームBをサブフォームとして配置し、
検索条件(会員ID)と一致するデータを、ボタンクリック時に両フォームに表示したいのですが、
そういったことは可能でしょうか。

また、可能であればどのようにVBAを作成すればよいか、アドバイスいただけますと幸いです。
よろしくお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatena19

2019/08/29 11:50

会員IDと登録IDの違い、テーブルAとテーブルBのデータの関係(一対多のなのか一対一なのか)、 各テーブルの主キー設定がわかないとアドバイスは難しいです。 具体的にデータ例を出して状況を詳細に説明してもらえますか。 とりあえずクエリでつなぐ場合、少なくともどちらか一方のフィールドは主キーでないと更新できないクエリになることは理解しておいてください。
MKVB

2019/08/30 00:53

hatena19 様 ご返信ありがとうございます。 言葉足らずで申し訳ございません。 改めて内容を整理してご質問させていただきます。 情報を整理して、改めて以下に記載させていただきます。 昨日の内容と一見違うように見えるかもしれません。 申し訳ございません。 <やりたいこと>  ・テーブルAへ[会員ID]入力  ・テーブルBへ[会員登録補足事項]入力   → 入力ミスを無くすために、ひとつのフォーム上で入力したい     [会員ID]で検索 <テーブルの情報管理> ■テーブルA  フィールド:メールアドレス,登録ID,申込番号(主キー設定中),氏名,住所,電話番号,生年月日,申込年月日,会員ID   ※上記情報をWEBからEXCELをダウンロードし、ACCESSにインポート   ※メールアドレス:登録ID=1:1   ※登録IDは申込順に10001から順番にふられていく(自動採番)   ※同じユーザーの複数回申込が可能性なため、登録IDは重複する    (同じメールアドレスで申し込まれた場合)   ※会員IDはブランク ■テーブルB  フィールド:登録ID(主キー設定中),受付日,受付担当者名,会員ID登録補足事項   ※登録IDは一意(UNIQUE)で、あらかじめ入力済 <補足事項>  ・テーブルAの検索対象レコード数は複数(1以上)  ・テーブルBの検索対象レコードレコード数は1 会員IDが テーブルA:テーブルB=n:1 のため、クエリでつなぐと更新ができないと思っています。 まだ言葉たらずかもしれませんが、ご教授いただけますと 幸いです。 何卒、よろしくお願い申し上げます。
guest

回答1

0

ベストアンサー

サブフォームコントロールのリンク親フィールド、リンク子フィールドのプロパティを
利用すればフォームA側でレコード移動さえできれば期待の動作になる気がします。

会員IDについては不明点が多いのでスルーします。テーブルAの主キーでしょうか。
テーブルAが会員、テーブルBが会員補足事項であるならば会員IDで繋ぐというのが
一般的であると思います。

投稿2019/08/30 00:18

sousuke

総合スコア3828

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MKVB

2019/08/30 01:13

sousuke 様 ご返信ありがとうございます。 以下VBAを書いていたのですが、アドバイスのとおり設定したら 一発解決しました!! 本当にありがとうございました。 ------------------------- Option Compare Database Private Sub btn検索_Click() DoCmd.OpenForm "フォームA", , , "登録ID like '" & Me!登録ID検索 & "'" End Sub
sousuke

2019/08/30 02:09

質問とは直接関係ないのでアレですがテーブル全体、特に登録IDのくだりが ものすごくごちゃごちゃしている印象を受けます。データのまとまり、分割に関しては もっと良い方法を模索してみてもよろしいかと思います
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問