hatena
hatena
2020/07/04 (土) 13:36:50
下記のような感じのテーブル設計になると思います。(一例です)
T_発注者
発注者ID 主キー
発注者氏名
発注者住所
T_発注者の顧客
発注者の顧客ID 主キー
発注者ID
発注者の顧客
発注者の顧客氏名
発注者の顧客
発注者の顧客住所
T_受注
受注ID 主キー オートナンバー型
受注日
発注者ID (T_発注者 の外部キー)
歳暮用 Yes/No型
受取人欄ID (T_発注者の顧客 の外部キー)
入力フォームは T_受注 をレコードソースとして作成します。
発注者選択用のコンボボックスを下記のように設定します。
名前 cb発注者ID
コントロールソース 発注者ID
値集合ソース T_発注者
列数 2
列幅 0
これで 氏名 で選択できます。
ちなみに下記の方法を使えば、ID でも 氏名 でも選択できるようにできます。
コードでも名称でも入力できるコンボボックス - hatena chips
「歳暮用」フィールドを配置すると自動でチェックボックスになります。
歳暮用の場合は、「歳暮用」にチェックをいれて、受取人選択用のコンボボックスで受取人を選択します。
受取人選択用のコンボボックスの設定は下記のようにします。
名前 cb受取人ID
コントロールソース 受取人ID
値集合ソース SELECT * FROM T_発注者の顧客 WHERE 発注者ID=cb発注者ID;
列数 2
列幅 0
これも氏名での選択でので、IDでも入力したい場合は上記のリンクを参考にしてください。
cb受取人ID のフォーカス取得時のイベントプロシージャを下記のように記述します。
Private Sub cb受取人ID_Enter()
Me.cb受取人ID.Requery
End Sub
以上が入力フォームです。
通報 ...
レポートの設定は下記のようになります。
まず、レコードソース用のクエリを作成します。
クエリで、T_受注、T_発注者、T_発注者の顧客 を追加して、
T_受注の外部キーと他のテーブルの主キーとを結合します。
レポートに必要なフィールドを追加します。
これをレポートのレコードソースにします。
レポート上の差出人欄の氏名テキストボックスのコントロールソースを下記のように設定します。
=IIf([歳暮用]=True,[発注者氏名],"当店の名前")
住所テキストボックスは、
=IIf([歳暮用]=True,[発注者住所],"当店の住所")
差出人欄の氏名テキストボックスのコントロールソースを
=IIf([歳暮用]=True,[発注者の顧客氏名],[発注者氏名])
住所テキストボックスは、
=IIf([歳暮用]=True,[[発注者の顧客住所],[発注者住所])
以上です。