プロが教える店舗&オフィスのセキュリティ対策術

教えて下さい
ACCESSで得意先情報と納品書を作成しています

得意先情報は
得意先コード
得意先名
郵便番号
住所
TEL
FAX
担当者
の7項目です
ただ、担当者は1つの会社に7人程います
得意先は80社ぐらいです

このデータを元に納品書を作成します
この時に得意先コードを選ぶもしくは入力すると
得意先名が自動で入り、尚且つその会社の担当者の7人を
コンボで選べるようにするにはどうしたらいいですか?

超初心者です
よろしくお願いします

A 回答 (2件)

> 得意先情報は



これは、テーブル名?テーブル名の前提で・・・
クエリに、

Qry_得意先情報

SELECT 得意先コード, 得意先名, 郵便番号, 住所, TEL, FAX
FROM 得意先情報
GROUP BY 得意先コード, 得意先名, 郵便番号, 住所, TEL, FAX;

と、

Qry_担当者

SELECT 得意先コード, 担当者
FROM 得意先情報
GROUP BY 得意先コード, 担当者;

を作成
上記の文章はSQL文と言うもので、クエリ作成でSQLビューで、文章を単純にコピー&ペーストで、貼り付けてください

で、納品書のテーブルの話が無いので・・・クエリ上での話はしませんが、納品書のテーブルの「得意先コード」と、Qry_得意先情報の「得意先コード」を接続して、フォーム上に、Qry_得意先情報の「得意先名」等を表示してくるのが一般です

ここで、違う方法で・・・

> この時に得意先コードを選ぶもしくは入力すると得意先名が自動で入り、

を、得意先名が表示する、テキストボックスのコントロールソースを
得意先コードが文字の場合
=DLookUp("得意先名","Qry_得意先情報","得意先コード = '" & [得意先コードのコントロール名(コンボボックス?)] & "'")
得意先コードが数値の場合
=DLookUp("得意先名","Qry_得意先情報","得意先コード = " & [得意先コードのコントロール名(コンボボックス?)] )
と、します

実現可能ですが、通常は、DLookUp関数ではなく、前述のようにクエリ側で処理します

> 尚且つその会社の担当者の7人をコンボで選べる

は、コンボボックスの「値集合ソース」を

SELECT 担当者
FROM Qry_担当者
WHERE 得意先コード = [Forms]![フォーム名]![得意先コードのコントロール名(コンボボックス?)]));

と、設定し、イベントの「フォーカス取得時」のVBAマクロに

Me.[担当者のコンボボックス名].Requery

と、設定すれば、実現可能です

> 超初心者です

と、書かれて、上記の説明で理解可能かは、判りかねますが・・・大体、こんな感じです
    • good
    • 0

このテーブルではだめですね


>担当者は1つの会社に7人程います
ということだと、担当者は別のテーブルに分けます

[得意先情報](得意先コード、得意先名、郵便番号、住所、TEL、FAX)
[担当者](得意先コード、担当者)
納品書テーブルが
[納品書](納品書ID、年月日、得意先コード、担当者、・・・)
というようなものだとして

>得意先コードを選ぶもしくは入力すると
>得意先名が自動で入り、尚且つその会社の担当者の7人を
>コンボで選べるようにするには
納品書の担当者コンボのソースを担当者テーブルから作ったクエリにし
得意先コードの抽出条件欄に
=Forms!納品書!得意先コード
のように書きます

これで得意先コードの更新後イベントで担当者コンボを再クエリしてやればいいです
    • good
    • 0

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