Microsoft Access 掲示板

お歳暮用の定形外宛名ラベルを作成したい / 1

8 コメント
views
4 フォロー
1

下記のような感じのテーブル設計になると思います。(一例です)

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

以上が入力フォームです。

通報 ...
  • 2

    レポートの設定は下記のようになります。

    まず、レコードソース用のクエリを作成します。
    クエリで、T_受注、T_発注者、T_発注者の顧客 を追加して、
    T_受注の外部キーと他のテーブルの主キーとを結合します。
    レポートに必要なフィールドを追加します。
    これをレポートのレコードソースにします。

    レポート上の差出人欄の氏名テキストボックスのコントロールソースを下記のように設定します。

    =IIf([歳暮用]=True,[発注者氏名],"当店の名前")

    住所テキストボックスは、

    =IIf([歳暮用]=True,[発注者住所],"当店の住所")

    差出人欄の氏名テキストボックスのコントロールソースを

    =IIf([歳暮用]=True,[発注者の顧客氏名],[発注者氏名])

    住所テキストボックスは、

    =IIf([歳暮用]=True,[[発注者の顧客住所],[発注者住所])

    以上です。