Access VBA質問箱 IV

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

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


185 / 2272 ツリー ←次へ | 前へ→

【12619】2つのテーブルに同時にレコードを追加したい。 ポインセチア 14/10/10(金) 9:11 質問[未読]
【12621】Re:2つのテーブルに同時にレコードを追加... かるびの 14/10/15(水) 21:59 回答[未読]
【12638】Re:2つのテーブルに同時にレコードを追加... ポインセチア 14/11/12(水) 18:29 お礼[未読]

【12619】2つのテーブルに同時にレコードを追加し...
質問  ポインセチア  - 14/10/10(金) 9:11 -

引用なし
パスワード
   初めて質問します。
例えば、[学級名簿]というテーブル(親テーブル)と、[算数成績]というテーブル(子テーブル)があるとします。
[算数成績]のテーブルを補完するために、2つのテーブルのリレーショナルをしたクエリーを作りました。[学級名簿]テーブルからの全レコードと[算数成績]の同じ結合フィールドのレコードだけを含めた親子クエリーとします。
このクエリーを元に[算数テストの結果]フォームを作成したとします。フォーム上には[学級名簿]テーブルから参照されている児童の名前がテキストボックスに表示され、テスト結果の履歴は[算数成績]テーブルから参照されているレコードがテキストボックスに表示されているとします。
ある日、新入生の算数の成績を入力しなければならなくなり、[算数テストの結果]フォーム上にレコードを追加しなければならないとします。
そこで、このフォームの児童の名前が表示されているテキストボックスの更新後処理のプロシージャから[学級名簿]テーブルと[算数成績]テーブルの2つにレコードを追加したいのですがどのようなスクリプトで行えばいいでしょうか。
条件もあり、ADODBをつかわず、DAOで行いたいこと。
どうかよろしくご教授をお願いします。

【12621】Re:2つのテーブルに同時にレコードを追...
回答  かるびの  - 14/10/15(水) 21:59 -

引用なし
パスワード
   >新入生の算数の成績を入力しなければならなくなり、[算数テストの結果]フォーム上にレ
>コードを追加しなければならないとします。

>[学級名簿]テーブルと[算数成績]テーブルの2つにレコードを追加したいのですがどのよ
>うなスクリプトで行えばいいでしょうか。

 「学級名簿」テーブルからの全レコードと
「算数成績」の同じ結合フィールドのレコードだけを含めた選択クエリを「Q01」とすると、
コードの概要は、
   「学級名簿」テーブルへの追加クエリ
   「算数成績」テーブルへの追加クエリ
   「Q01」の再クエリ
となります。
 しかし、「算数テストの結果」フォームは連結フォームなので、
上記コードを実行すると、
新規に登録しようとしたレコードが、
フォームによっても登録されようとし、
追加クエリによっても登録されようとして、
レコードの新規登録が競合してしまうというエラーになってしまいます。
 そのため、上記コードによるのは、やめた方がいいと思います。

 では、どうするかですが、第1案としては、
データベースでは、レコードを表示するフォームと
レコードを新規入力するフォームとは、別のフォームにするという構成をしばしばとるので、
レコード表示用フォームと新規登録用フォームとに分けるという方法が考えられます。

 第2案としては、
「学級名簿」テーブルと「算数成績」テーブルとは一対多の関係に立つと思うので、
「算数テストの結果」フォームを、サブフォームを利用したフォームにする
という方法が考えられます。
 この場合、メインフォームには「学級名簿」テーブルのデータを表示し、
サブフォームには「算数成績」テーブルのデータを表示することになります。

【12638】Re:2つのテーブルに同時にレコードを追...
お礼  ポインセチア  - 14/11/12(水) 18:29 -

引用なし
パスワード
   返信が遅れて申し訳ありません。先に解決しなければならないことがあって、
そちらを優先に対処していた関係で遅れてしまいました。
とても丁寧でわかりやすい回答を有難うございました。
サブフォームを使ったフォームを作成して対応してみようかと
考えています。ただ、サブフォームを使った入力フォームを
つくるのは初めてなので、思い描いていたようなフォームが
できるかどうか未知数ですけど、頑張ってみます。
かるびの様、ありがとうございました。

185 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078188
(SS)C-BOARD v3.8 is Free