Access 2000でデータベースを作成し、正規化ウィザードで4つのテーブルに分割しました。その結果、多対一の多側のテーブルが1つと、一側のテーブルが3つでき、4つのテーブルを結合した選択クエリが作成されました。


レコードを追加する際、4テーブルを結合した選択クエリに対してVBAでINSERTすると、それぞれのテーブルに新規レコードが追加されます。しかし、多対一の一側の各テーブルに既存の同一データがある場合でも、レコードが追加されてしまいます。これでは正規化した意味がありません。

希望としては、一側のテーブルには同一データがない場合にのみレコードを追加して、もし同一データがあればそのデータの主キーを多側のテーブルに入れてほしいのです。このようなことは可能でしょうか。可能な場合、どうすればよいでしょうか。不可能な場合には、その理由と対処法をご教示いただけないでしょうか。試しに一側のテーブルに複合インデックスを作成して重複を許さないようにすると、レコードが全く追加されなくなりました。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2009/02/21 14:40:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答0件)

回答はまだありません

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • Accessによる収蔵資料データベース 先日、収蔵資料データベースをThe CardからAccessに移行したいという話を書いたが、試行錯誤しながら移行を進めている。データ自体は全く問題なく移すこ
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません