hatena
hatena
2020/11/26 (木) 21:49:39
不足している情報は勝手に推測して、テーブルは下記と仮定します。
T送付履歴
送付ID、発送日、会社ID、送付資料1、送付資料2、・・・
T会社情報
会社ID、会社名、部署名、郵便番号、住所1、住所2、・・・
先頭のフィールドが主キー
T送付履歴 に下記のフィールドを追加します。
仮(Yes/No型)、仮会社名、仮部署名、仮郵便番号、仮住所1、仮住所2
上記のテーブルからクエリを作成してフォームのレコードソースとします。
フォームは単票フォームとします。
会社名、部署名、郵便番号、住所1、住所2 のフィールドはテキストボックスとしてフォーム上に配置します。
「編集ロック」は「はい」にしておきます。(マスターが不用意に更新されないようにするため)
また、フィールドの追加やウィザードで配置したテキストボックスの名前はフィールド名と同じになっているので、それぞれの名前を、
txt会社名、txt部署名、txt郵便番号、txt住所1、txt住所2 というように変更しておきます。
あと「仮」フィールドもフォーム上に配置します。Yes/No型なので、チェックボックスになります。
フォームのモジュールに下記のイベントプロシージャを作成します。
'レコード移動時
Private Sub Form_Current()
Call 仮_AfterUpdate
End Sub
'仮チェックボックス更新後処理
Private Sub 仮_AfterUpdate()
If Me.仮 = True Then
Me.txt会社名.ControlSource = "仮会社名"
Me.txt会社名.Locked = False
Me.txt部署名.ControlSource = "仮部署名"
Me.txt部署名.Locked = False
Me.txt郵便番号.ControlSource = "仮郵便番号"
Me.txt郵便番号.Locked = False
Me.txt住所1.ControlSource = "仮住所1"
Me.txt住所1.Locked = False
Me.txt住所2.ControlSource = "仮住所2"
Me.txt住所2.Locked = False
Else
Me.txt会社名.ControlSource = "会社名"
Me.txt会社名.Locked = True
Me.txt部署名.ControlSource = "部署名"
Me.txt部署名.Locked = True
Me.txt郵便番号.ControlSource = "郵便番号"
Me.txt郵便番号.Locked = True
Me.txt住所1.ControlSource = "住所1"
Me.txt住所1.Locked = True
Me.txt住所2.ControlSource = "住所2"
Me.txt住所2.Locked = True
End If
End Sub
これで、仮チェックボックスにチェックを入れると、会社名、住所等を入力できるようになり、
仮会社名、仮住所1 ・・・に格納されます。
レポートでは、例えば会社名のテキストボックスのコントロールソースは、下記のように設定します。
=IIf([仮]=True,[仮会社名],[会社名])
以上、一例です。
通報 ...