dポイントプレゼントキャンペーン実施中!

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

A 回答 (2件)

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



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

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

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

抽出条件入力

F1-1表示

F1-1で1レコード選択

F1-2、F2、メイン表示

この回答への補足

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

補足日時:2007/04/16 14:43
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/04/16 14:58

メイン・サブにするのにテーブルを3つつなげたクエリは要らないと思うのですが


メインのソース、サブのソースはどのようなものでしょう?

この回答への補足

説明不足ですみませんでした。
■メイン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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!