こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Access2003 リレーションされたサブフォームの抽出

Access顧客情報のデータベースを正規化(VBA)している初心者です。リレーションされているテーブルを元にクエリ(3つのテーブルをつなげただけ)を作成しメインフォームにサブフォームを作りました。3つのテーブルは、1対多でリレーションされています。テーブルAのGR_IDやグループ名で検索しそれに紐づいているCOmpanyは抽出できるのですが、サブフォームのテーブルBのCOmpany nameから抽出することができません。メインフォームからオプションボタンを使用してメインとサブの両方のテーブルを検索したいので、子・親リンクの設定をはずせませんよね?以前の類似質問で「サブフォームのフィルターに入力し、フィルター実行でうまくいきました」とありましたが、具体的にどのように設定(マクロやVBA、再クエリ?)すればいいのかわからず悩んでいます。どうぞ初心者向きのアドバイスをよろしくお願いいたします。

テーブルA
GR_ID
グループ名
※テーブルA(1):テーブルB(多)

テーブルB
GR_ID
Company_ID
Company name
※テーブルB(1):テーブルC(多)

テーブルC
Company_ID
salesman

投稿日時 - 2007-04-14 08:56:39

QNo.2919709

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

要するにメインとサブはリンクしていないのですね

そうすると単に4つのフォームをVBAで連動させるだけのことでは

>サブF1はメインFで選んだグループ内の1:多の多側のデータですが、
メインとサブはリンクしていないし、
抽出条件は非連結のテキストボックスに入れるんですよね
レイアウトはメイン・サブでもリンクしていないのですから何の関係もありません

>メインFの1側(:多)の違うグループも混ざっての抽出となりますので、
>そのようなことができるのでしょうか。
一覧からひとつ選んだもののグループを表示させればいいのでしょ
もちろん可能です

抽出条件入力

F1-1表示

F1-1で1レコード選択

F1-2、F2、メイン表示

投稿日時 - 2007-04-15 14:14:44

補足

子リンク/親リンクのことでしょうか? メインとサブはリンクしています。メインFのGR_IDとサブF1、サブF1のCompany_IDとサブF2です。リンクしているので、無理でしょうか?リンクさせないで、4つのフォームをVBAで連動させる方法だとできるようですが、LINK以外の「連動」?とはどのようにすればよいのでしょうか?何回もすみませんが、よろしくお願いいたします。

投稿日時 - 2007-04-16 14:43:13

お礼

連動の意味がわかりました!
その方法でもう少しがんばってみます。
また、よろしくお願いいたします。

投稿日時 - 2007-04-16 14:58:43

ANo.1

メイン・サブにするのにテーブルを3つつなげたクエリは要らないと思うのですが
メインのソース、サブのソースはどのようなものでしょう?

投稿日時 - 2007-04-14 13:23:33

補足

説明不足ですみませんでした。
■メインF:テーブルAは単票で表示
■サブF1:テーブルBは表形式と単票(表形はテーブルBのCompany neme程度で、単票で詳細情報が見られるようにしています) 
■サブF2:テーブルC&D(クエリ)はデータシート
※クエリは3つのテーブルをつなげただけと書きましたが、事実を忘れていました・・。[訂正]テーブルCのsalesman→salesman_IDで、テーブルDにsalesmanの名前があるので、ここでsalesman_IDをクエリでつなげ表示させてました。
今できていることは、メインFでtxt_検索(opt_検索キー有)からGR_IDかグループ名で検索をするとサブF1に紐付いているテーブルBのCompanynameの一覧が表示され、その一覧から目的のレコードをクリックすると同じサブF1上の単票に詳細が表示され、サブF2にCompanyについているテーブルC(&D)のsalesmanが表示されます(解決)。問題は同じメインF上のtxt_検索(opt_検索キー)を使ってテーブルBのCompanynameからあいまい検索しサブF2に一覧を抽出し、同じようにCompanynameをクリックすると、単票に詳細が表示され、そのGR情報がメインFに、salesman情報がサブF2でがみられるようにしたいのです。解決済みの方では、サブF1はメインFで選んだグループ内の1:多の多側のデータですが、問題の方は、メインFの1側(:多)の違うグループも混ざっての抽出となりますので、そのようなことができるのでしょうか。他のやり方をしたほうがいいのでしょうか。どうか良きアドバイスをよろしくお願いいたします。

投稿日時 - 2007-04-15 09:48:49

あなたにオススメの質問