• ベストアンサー
  • 暇なときにでも

[Access2000]リレーションが設定されたレコードが必要

ACCESS2000 1対1でリレーションを設定しています。 T_マスター T_内容 ID→ID 参照整合性ON 連鎖OFF 結合の種類「2」 新しいレコードをT_マスターに追加しようと すると、 「リレーションが設定されたレコードが必要」 とエラーメッセージが出ます。 T_マスターにはレコードが追加されるようなんですが、T_内容にはレコードが追加されないようで そのためエラーが発生するようです。 このエラーを解消するためにはどのような リレーションの設定をすればよろしいでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数155
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • O_cyan
  • ベストアンサー率59% (745/1260)

>新しいレコードをT_マスターに追加しようとすると「リレーションが設定されたレコードが必要」とエラーメッセージが出ます。 1対1でリレーションでこのメッセージがでるのはテーブルにリレーションの結合する同じキーが無いレコードをリレーションテーブルに保存しようとした場合にでます。 「T_マスターに追加しようとすると・・」でるということはT_マスターはテーブル側ではなくリレーションテーブルになっている可能性があります。 しかし「T_マスターにはレコードが追加されるよう・・」というのは矛盾があります。「T_マスターに追加しようとすると」ではなくT_内容に保存しようとした際にでるのではないでしょうか? T_マスターにキーがなければT_内容に入力できません。(T_マスターがテーブルでT_内容がリレーションテーブルの場合) まず結合の種類を確認してください。 T_マスターがテーブルでT_内容がリレーションテーブル

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございました。 違う方法でやってみました。クエリーでフォームに連結し、リレーションシップを削除したらうまく行きました。リレーションシップを削除していいものかわかりませんが、一応自己解決したので記しておきます。

関連するQ&A

  • リレーション?参照整合性の謎?

    Ac2000です。 「T_メンバー一覧」(テーブル) ・ID ・名前 ・所属 「T_マスタ」(テーブル) ・ID ・名前 ・所属 ・備考 とします。 それぞれからフォームを作成し、「F_マスタ」のフォーム上で IDはコンボボックスとし、ここでIDを指定すれば 名前と所属が入るようになっています。 「T_メンバー一覧」に変更があった場合(所属が変わるなど)に、 「T_マスタ」も自動で変更されるようにしたいのです。 T_マスタにデータが入っている場合です。(1件のみ) リレーションをはり、ID同士で設定しました。 「参照整合性」にチェックをし作成しようとすると、 「T_マスタ」テーブルのデータが参照整合性の規則に違反しています。 たとえば、ある社員に関連するレコードがリレーションテーブルにあるときに、 この社員に関連するレコードが主テーブルにありません。 ・・・・ となってしまうのです。 T_マスタにデータが入っておらず、上のリレーションが成功したあとに、 入力をしようと、F_マスタを開き、IDを選択して、 フォームを閉じようとすると、 「テーブル 'T_メンバー一覧'にリレーションシップが設定されたレコードが必要なので、 レコードの追加や変更は行うことはできません。 となります。 この2点を解決する回避策を教えてください。

  • Access2000フォームにリレーションしたテーブル内容を入れたい

    Access2000フォームにリレーションしたテーブル内容を入れたい Access2000を利用していますが、フォームにリレーションしたテーブル内容を表示したいです。 具体的には 顧客情報テーブルのフォームに履歴テーブルの情報や、入金テーブルなどを表示したいです。 サブシートでは見づらく入力ミスとかが発生してしまうので・・ よろしくお願いします。

  • Access2000 レコードコピー

    Access2000について質問です。 クエリを使用して、 あるテーブルのレコードをコピーして、 同じテーブルに追加するにはどうしたらいいですか。 別のテーブルへ追加する方法はわかったのですが、 同じテーブルに追加する方法がわかりません。 すっごく単純な質問ですが、 よろしくお願いします。

  • Accessの参照整合性について

    アクセスでリレーションシップをはると参照整合性にチェックするボックスがありますよね。 以下の選択の組み合わせが考えられると思うのですが、 1.参照整合性にチェックしない場合 2.参照整合性のみチェックした場合 3.参照整合性と連鎖更新にチェックした場合 4.参照整合性と連鎖更新と連鎖削除にチェックした場合 一(マスタ)対多のリレーションを張ったとき、以下のように理解しています。 2.のとき マスタにあるものしか登録できない。また、マスタは他のテーブルにリレーションを張っている場合、削除も編集もできない。 3.のとき マスタにあるものしか登録できない。またマスタで更新をかけると、他のテーブルのレコードも更新がかかる。また、マスタは他のテーブルにリレーションを張っている場合、削除はできない。 4.のとき マスタにあるものしか登録できない。またマスタで更新、削除を行なうと他のテーブルのレコードも更新、削除がかかる。 では1.のときってリレーションシップは張れるのですが、何の意味があるのでしょうか?

  • Access2000 / 「レコードを追加できません」

    こんにちは Access2000で困っております。 簡単にいいますと、フォーム上から日付/時刻型のデータを入力しようとしても 「レコードを追加できません、テーブル’T外部集計警備’の結合キーがレコードセットにありません。」と表示されうまく入りません。 テーブルの構成ですが、 ★が主キー (1)T現場台帳 ★NO(オートナンバー型) 現場記号(テキスト型) ・ ・ 省略 (2)T外部集計警備 ★NO(オートナンバー型) 現場記号(テキスト型) 警備依頼日付(日付/時刻型) 警備会社ID(数値型) 集計人数(数値型) (3)T警備会社 ★警備会社ID 警備会社名(テキスト型) ・ ・ 省略 上記テーブルはリレーションがかかっており、 (1)T現場台帳.現場記号(テキスト型)----(2)T外部集計警備.現場記号(テキスト型) (2)T外部集計警備.警備会社ID(数値型)---(3)T警備会社.★警備会社ID それぞれ、参照整合性のついたリレーションです。 更にこれらをまとめるために、Q警備会社集計クエリ(選択クエリ)をつくりフォームに利用しています。 Q警備会社集計クエリの構成 T現場台帳.担当者ID T外部集計警備.警備依頼日付 T外部集計経緯日.警備会社ID T警備会社.警備会社名 T外部集計警備.集計人数 (並べ替えや絞込みは、なし) この「Q警備会社集計クエリ」を使って フォームからウイザードを使用してフォームを作成し、警備依頼日付を入力しようとすると「レコードを追加できません、テーブル’T外部集計警備’の結合キーがレコードセットにありません。」と表示されます。 どなたか、Accessの痒いところまで手の届く方、お助けください。

  • ACCESS2000。その年の何番目のレコードか

     ACCESS2000、ウィンドウズ98です。  データ-ベースで新しいレコードを入力する時、それがその年の何番目のレコードなのかを知りたいのですが・・・新規にフィールドを足す事は可能です。  よろしくお願いします。

  • Access2000のリレーションシップのエラーについて

    どのくらい説明すればいいのかわからないのですが、アクセス2000でリレーションシップの設定をするときに、 「主テーブルで参照されているフィールド用の固有インデックスがありません。」 というエラーメッセージが出てきてリレーションを作る事が出来ません。 問題なのは3つのテーブルのリレーションなのですが、それぞれのインデックスをチェックすればいいのだとは思いますが、対象となったフィールドは主キーではないので、重複は許可していますが、一応どちらもインデックスは作成しています。 どのようなリレーションシップかというと、業者テーブルと商品テーブルと販売履歴テーブルのリレーションで、 商品テーブルの業者IDと業者テーブルのIDのリレーション→左内部結合(商品テーブルの全フィールドに入れる) 業者テーブルの業者IDと販売履歴の業者IDのリレーション→右内部結合 は出来るのですが、商品テーブルの商品名と値段フィールドと、販売履歴の対応する部分についてのリレーションについてもたせようとするとエラーが出てしまいます。このようなリレーションはいらないのでしょうか? どちらも固有の値でない量のリレーションだからなのでしょうか? この二つのフィールドの参照整合性をどう保てばいいのか教えて下さい。

  • Access2000のレコード削除について

    Access2000のVBAにより、フォームに配置したコマンドボタンを押すことで、テーブルの全レコードを一度に削除したいのですが、どの様にすればよいのですか? 構文で教えて頂けると助かります。とても困っています。よろしくお願いします。

  • Access2002 参照整合性について

    テーブル間にリレーションシップを設定する場合、リレーションテーブル側に主テーブルにないレコードがあると参照整合性を設定できないにも関わらず、「結合の種類」で「3」(リレーションテーブル側の全レコードと主テーブル側の同じ結合フィールドのレコードだけを含める)を選べるのは何故でしょうか。 参照整合性を設定できた時点で、リレーションテーブル側には主テーブルにないレコードは無いということだと思うのですが・・・。 よくわからなくなってしまいました。 お答え、よろしくお願いいたします。

  • Access2000でフォーム上で最終レコードかどうかの判断は?

    Windows2000 Access2000という環境で Access内にレコード追加不可のフォーム中で、 フォーカス(カーソル)のあるレコードが 最終レコードかどうか?を判断したいです。 レコード追加を可能にすればオートナンバーのフィールドがNullかどうかで判断できるのですが、 レコード追加は不可にしたいです。 困っております。どうぞ回答お願いいたします。