|
>新入生の算数の成績を入力しなければならなくなり、[算数テストの結果]フォーム上にレ
>コードを追加しなければならないとします。
>[学級名簿]テーブルと[算数成績]テーブルの2つにレコードを追加したいのですがどのよ
>うなスクリプトで行えばいいでしょうか。
「学級名簿」テーブルからの全レコードと
「算数成績」の同じ結合フィールドのレコードだけを含めた選択クエリを「Q01」とすると、
コードの概要は、
「学級名簿」テーブルへの追加クエリ
「算数成績」テーブルへの追加クエリ
「Q01」の再クエリ
となります。
しかし、「算数テストの結果」フォームは連結フォームなので、
上記コードを実行すると、
新規に登録しようとしたレコードが、
フォームによっても登録されようとし、
追加クエリによっても登録されようとして、
レコードの新規登録が競合してしまうというエラーになってしまいます。
そのため、上記コードによるのは、やめた方がいいと思います。
では、どうするかですが、第1案としては、
データベースでは、レコードを表示するフォームと
レコードを新規入力するフォームとは、別のフォームにするという構成をしばしばとるので、
レコード表示用フォームと新規登録用フォームとに分けるという方法が考えられます。
第2案としては、
「学級名簿」テーブルと「算数成績」テーブルとは一対多の関係に立つと思うので、
「算数テストの結果」フォームを、サブフォームを利用したフォームにする
という方法が考えられます。
この場合、メインフォームには「学級名簿」テーブルのデータを表示し、
サブフォームには「算数成績」テーブルのデータを表示することになります。
|
|