• 締切済み
  • 困ってます

一対一の追加が出来ません。

今回つまづいたのは、一対一のリレーションのテーブルの中で新規にレコードが追加できないことです。 テーブルをA,B,Cとします。メインとなるのがAです。B,Cは機密上テーブルを分けてあります。 新しくAのレコードを追加してそのレコードのBもしくはCにレコードを追加しようとすると下記のようにエラーになります。 「テーブル '<テーブル名>' にリレーションシップが設定されたレコードが必要なので、レコードの追加や変更を行うことはできません。」 リレーションシップが問題のようなので全てのリレーションを一旦切断して(各クエリの接合も)、A,B,Cをつなげるクエリのみで行ってもこのようなエラーになります。 また、もともとあったAのレコードに対してのB,Cの入力はエラーが出ません。新しく作ったAレコードに対してエラーが出ます。 試験的にレコードを減らしており、Aには100件、B,Cには何も入れておりません。 クエリのリレーションは外部接合で行っています。 フィールドは以下のようになっています。 A:注文ID(主)、受付日、名前、金額 B:注文ID(主)、送付日、・・・ C:注文ID(主)、・・・ 助言宜しくお願いします

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

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

みんなの回答

  • 回答No.1

一対一のリレーションシップは可能ですか? テーブルABC を一つのテーブルとして フォームをABCに分けると何か不都合ありますか ただし ・フォームAは追加、更新、削除可能 ・フォームB、Cは更新のみ可能で追加、削除は禁止にします

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

質問者からの補足

>一対一のリレーションシップは可能ですか?  はい。A,BとA,Cを一対一で結んでいます。 >テーブルABC を一つのテーブルとして >フォームをABCに分けると何か不都合ありますか > >ただし >・フォームAは追加、更新、削除可能 >・フォームB、Cは更新のみ可能で追加、削除は禁止にします  不都合はありませんし、現在もクエリABC(A,B,Cの全てのフィールドで外部接合してます)からフォームA,B,Cを作成しています。 しかし、やはりエラーが同じように出ます。テーブルAの所のみ入力、保存は出来ますが テーブルB,Cのフィールドに入力するとエラーになります。 既にある100件はエラーが出ないで新しく入力したレコードだけエラーが出るのが謎です。 何か解決策ございませんでしょうか?

関連するQ&A

  • 一対一のテーブル分割(ACCESS2003)

    ACCESS2003にて、フィールド数が上限の255、レコード数がおよそ1万件の商品マスタテーブルを作ったとします。入力必須フィールドは主キーである商品ID、あと商品名ぐらいで、あとは商品によって入力したりしなかったりするフィールドで、テーブルを開くと空欄が非常に多く目立ついわゆるスカスカの状態になっているとします。そこで商品マスタテーブルを数個に分割(商品の価格情報、商品の品質情報等々)し、商品IDを主キーにもたせ一対一の外部結合でつなげて、密度の濃い(?)テーブルを複数作ったほうが、ファイルサイズの縮小やクエリ等のパフォーマンス向上にメリットがあるのでしょうか?(一対一の結合はあまり使用しないのが一般的なようですが、このような場合使用すべきでしょうか?)教えて頂きたくお願いいたします。

  • Access 一対一リレーションの編集

    こんにちは 現在、Accessと他のソフトとの連携をするために奮闘しています。。。知恵をお貸下さい。 Accessには元々受注テーブルがあります。 主キーID:オートナンバー 受注日:日付型 納期:日付型 図番:テキスト型 数量:数値 単価:数値 とあり、データがすでに存在しています。他のソフトへエクスポートを継続的に行うにあたって 新規にテーブルを作成し、一対一リレーションをしようとしています。 新規テーブルは 主キーID:オートナンバー 取引先コード:テキスト型 担当者コート:テキスト型 区分コード:テキスト型 実出荷日:日付型 エクスポート状況:数値 そして、受注テーブルと新規テーブルのIDを一対一でリレーションしクエリを作成し、エクスポートしようと思っています。 その際、新規テーブルの方はデータが空なのでクエリ結果が得られないと思うのですが。。。 どうやって既存の受注テーブルと一つ一つのレコードを繋げる事が出来ますか&#10067; 編集方法をどなたか教えて下さい。 素人ですみません。

  • Accessのリレーションシップ

    Access初心者です。 Access2010でデータベースを作っていて、行き詰ってしまいました。 テーブル1にフィールドABCDEFがあって、Aに主キーが付いています。(Aはテキスト型でフィールドサイズ10です。) テーブル2にはフィールドAGHがあり、Aに主キーが付いてます。(Aはテーブル1と同じです。) テーブル3にも同じくフィールドAIJがあり、Aに主キーが付いています。(Aはテーブル1と同じです。) テーブル1のフィールドAを主テーブルとし、テーブル2・3のフィールドAにリレーションを組んでいます。 この時のリレーションシップで参照整合性と連鎖更新と連鎖削除にチェックを入れ、種類が一対一になりました。 その後、テーブル1でレコードを追加しようとすると、「テーブル'2'にリレーションシップが設定されたレコードが必要なので、レコードの追加や変更を行うことができません。」と出ます。 これを解決する方法はどうするのか、お教えお願いします。 分かりにくい説明ですいません。

  • Microsoft Access クエリからテーブルに書き込めません。

    アクセスで質問があります。クエリからテーブルに書き込めません。リレーションは一対一です。考えられる原因はなんでしょうか? ネットで調べると編集ロックを解除するなどと書いてありますが、何のことか分かりません。どなたか詳しい方教えて下さい。よろしくお願いします。

  • 「主テーブル」ってどっちの事?

    テーブル/クエリ(T) と リレーションテーブル/クエリ(R) のどちらが主テーブルになるのでしょうか? リレーションシップを作成しようと思ったら 「このリレーションシップを作成して、参照整合性を設定 できません」 となるので確認したいのですが、主テーブルはどちらの事ですか?

  • アクセスの追加クエリについて

    二つのテーブル間(AとB)を追加クエリを使い AからレコードをBに追加することは出来たんですが、 逆にBからAにレコードを追加しようと選択クエリを追加クエリに変更しようとしたんですが、ウィザードの追加先テーブル名にAのテーブル名が表れないですがその理由が全く分からないので分かる方教えていただけませんか? AとBのレコード内のフィールドは同じです。 AからBにレコードを移行する処理としてマクロを使いアクションとして ・クエリを開く(これは追加クエリです) ・SQLの実行(上と同じクエリを削除クエリに変更し、そのSQL文をSOLステートメントに貼り付けました) 上の処理は問題なく出来たので逆のBからAへレコード移行処理のマクロを作ろうとしたのですが、追加クエリの追加先テーブルにテーブルAの名前が出てこないので困っています。こういったAからB。BからAという処理は追加クエリで出来ないのでしょうか?

  • Access 分割したテーブルを一対一で結合。新規レコードが作れなくなりました

    過去に同様の質問が無かったようなので質問します。 Access2002です。 これまで顧客名簿を一つのテーブルで管理していたのですが、フィールド数が増えてきたので、 テーブルを5分割しました。 主テーブルに対し副テーブル4つを、主テーブルのID(主キー、オートナンバー型)と副テーブルそれぞれのID(数値型)で一対一結合しています。 下記のようなイメージです。 テーブルA-テーブルB テーブルA-テーブルC テーブルA-テーブルD テーブルA-テーブルE すると、 新規レコードの登録が出来なくなってしまいました。 全部のテーブルを結合させたクエリを作って、そのクエリを基にフォームを作ったり、 主テーブルのフォームに副テーブルのサブフォームを4つ設置したり、 幾つか方法を試みたのですが、どれも同じエラーメッセージが出ます。 ↓ 「インデックス、主キー、またはリレーションシップで値が重複しているので、テーブルを変更できませんでした。重複する値のあるフィールドの値を変更するか、インデックスを削除してください。または重複する値を使用できるように再定義してください。」 非常に基本的な質問なのかも知れませんが、お手上げです。 どなたかご教授くだされば幸いです・・・。

  • Access操作について

    クエリにレコードの追加をしたいのですが、テーブルと1対多のリレーションの設定がされているため、クエリにレコードを追加できません。 そこでお聞きしたいのですが、(1)クエリにレコードを追加する方法を教えて下さい。(2)そもそも、クエリからデータを追加する必要性は、一般的にあるのか。(最近、勉強をはじめたからなのですが、)レコードを追加することは通常テーブルからのみすることなのですか。それとも、テーブルとクエリ双方からレコード(データ)を追加できるようにした方がいいのですか? 別の質問ですが、クエリ等を開いて、それを閉じるときには、やっぱり右上にある、×印をクリックするほかに方法は無いのですか。やや、エクセルなどと比べると、マウスポインタを右上まで持っていくことが面倒なのですが。しょうがないのでしょうか? 宜しくお願いします。

  • Access #エラーについて

    Access初心者です。 よろしくお願いいたします。 [前提]  テーブルA のIDに紐づけてクエリBの数値をクエリCで反映させたい。  〈詳細データ〉   ・テーブルA    [ID] [名称]       1   あ     2   い     3   う     4   え     5   お   ・クエリB    [ID] [数値]     2   10     3   20     5   40   ・クエリC    [ID]  [名称] [数値]     1    あ  #エラー     2    い   10     3    う    20     4    え  #エラー     5    お   40   ・”テーブルAの[ID]”の全レコードと”クエリBの[ID]”の同じ結合フィールドだけを含めてリレーションを行っている。    ・クエリCの算式: IIf(IsError([クエリB].[数値]),0,[クエリB].[数値])  [質問]    ・クエリCの『#エラー』部分を0にしたいのですが、何か良い方法はございませんでしょうか。   ・そもそも上記のロジックは無理がありますでしょうか。    アクセスはあまりいじったことがございません。ご回答いただけますと幸いです。   よろしくお願いいたします。

  • アクセスでの追加クエリでのエラー表示について。

    連続番号の振り直しをするため、連番でないテーブルAがありこれのコピーでテーブルBを作り、追加クエリを実行しようとした際に下記のエラーが表示されました。 「追加クエリですべてのレコードを追加できません。型変換エラーのため13件のレコードでキー違反がありました。」 このキー違反とはどこを見て修正したらよいのか教えてください。 よろしくお願いいたします。