Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


656 / 9994 ←次へ | 前へ→

【12648】Re:2つのテーブルに同じデータを入力したい
回答  かるびの  - 14/11/25(火) 23:18 -

引用なし
パスワード
   >以前はマクロで値の代入があったと思うのですが、Access2010では無くなってしまったのでしょう
>か?
 2010は持っていませんし、マクロは全くわからないのですが、こんなページがありました。
ht tp://answers.microsoft.com/ja-jp/office/forum/office_2010-access
/%E3%83%9E%E3%82%AF%E3%83%AD%E5%80%A4%E3%81%AE
/170e06e9-aacd-40bd-bb5d-36e741ca9459?auth=1


>1対1で結合しています。
 余計なお世話ですが、本当に一対一結合でいいんでしょうか。
 一対一結合だと、1人の顧客について1回の発送しかデータを格納できない
ことになってしまいます。
 テーブル名から見ると、T顧客名とT発送テーブルとは一対多ではないかと
思うんですが。


>両方のテーブルを基にF顧客名とF発送フォームを作成し、同時に両方のフォームを開いてF顧客
>名フォーム内にある顧客番号テキストに値を代入すると、F発送フォーム内の顧客番号テキストボ
>ックスに同じ値を代入したいのですがうまくいきません。
 第一の方法です。
 フォームを1つだけにしてしまう方法です。2つのフォームを同時に
開くよりも、フォームは1つだけにした方が入力しやすいと思います。

 まず、T顧客名とT発送テーブルとを、顧客番号フィールドで結合するクエリを作ります。
 次に、フォームのレコードソースに、上記のクエリを設定します。
 次に、このフォームに各種コントロールを配置していきますが、
顧客番号のテキストボックスは1個だけ設けます。
 そして、顧客番号テキストボックスのコントロールソースに、
T発送テーブルの顧客番号フィールドを設定します。

 こうしておけば、「顧客番号」テキストボックスに入力すると、
両テーブルの顧客番号フィールドに入力されます。


 第二の方法です。
 F顧客名とF発送フォームと同時に開いて入力する場合です。
 F顧客名の顧客番号テキストボックスのAfterUpdateイベントで、
F発送フォームの顧客番号テキストボックスに
F顧客名の顧客番号テキストボックスの値を代入します。

Private Sub 顧客番号_AfterUpdate()
  If SysCmd(acSysCmdGetObjectState, acForm, "F発送フォーム") <> 0 Then
    Forms!F発送フォーム!顧客番号.Value = Me!顧客番号.Value
  End If
End Sub

 なお、上記のSysCmdメソッドですが、
上記コード実行時にF発送フォームが開いていないと、エラーになるため、
F発送フォームが開いているかをチェックします。

243 hits

【12647】2つのテーブルに同じデータを入力したい kok 14/11/25(火) 15:44 質問[未読]
【12648】Re:2つのテーブルに同じデータを入力したい かるびの 14/11/25(火) 23:18 回答[未読]
【12651】Re:2つのテーブルに同じデータを入力したい kok 14/11/27(木) 11:37 お礼[未読]
【12652】Re:2つのテーブルに同じデータを入力したい かるびの 14/11/28(金) 0:24 発言[未読]
【12653】Re:2つのテーブルに同じデータを入力したい kok 14/11/28(金) 17:31 お礼[未読]

656 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078190
(SS)C-BOARD v3.8 is Free