• ベストアンサー

「キー違反」がどういう状態を指しているのか教えてく

アクセス2010です。 更新クエリを実行しようとしたら、 「レコードでキー違反」 と言うのが発生し、実行できないのですが キー違反とは何を指しているのでしょうか? 該当のフィールドは、テキスト型でインデックスを「いいえ」にしています。 更新クエリでやろうとしていることを手作業で行うと、エラーにならずにできます。 ヘルプをクリックしても 「Access ヘルプと使い方」の画面になってしまいます。 「キー違反」がどういう状態を指しているのか教えてください。

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5083/13282)
回答No.2

各レコードを一意に識別するために、フィールドのどれかをキーとして指定しているかと思います。 このキーに指定されたフィールドは他のレコードと重複していたり空欄になっているとエラーに成りますので、更新時にキーになっているフィールドに変な値を入れいたりしませんか。

AHTWVUPNG
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

質問コーナーに質問して、回答を待つのでなく、 「レコードでキー違反」でWEB照会すべき。 沢山関連記事が出る。これらを読んで、疑問点に絞って、ここへ質問するならまだしも。 https://support.office.com/ja-jp/article/%E8%BF%BD%E5%8A%A0%E3%82%AF%E3%82%A8%E3%83%AA%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%81%A8%E3%81%8D%E3%81%AB%E3%82%88%E3%81%8F%E3%81%82%E3%82%8B%E3%82%A8%E3%83%A9%E3%83%BC-26eecd3b-cbea-45c1-80c4-f5bb50a9ccfa ーー http://www.accessclub.jp/bbs3/0332/superbeg440.html ほか。 まず、アクセスなどデータベースで言う「キー」の意味はわかっているのかな?

AHTWVUPNG
質問者

お礼

ありがとうございました。

関連するQ&A

  • 更新クエリのキー違反がどれだかを調べる方法は

    更新クエリのキー違反がどれだかを調べる方法はないですか? 「更新クエリですべてのレコードを更新できません。 0個のフィールド型変換エラー、2件のレコードでキー違反、 0件レコードでロック違反、0件レコードで入力規則違反が発生したためレコードを更新できませんでした」 となるのですが、 「2件のレコードでキー違反」がどれなのかって元テーブルをじっくり眺めて探すしかないのでしょうか? 手作業と目で探してるのですが、見つけられません・・・

  • アクセスでのキー違反とは??

    コマンドボタンをクリックすることで、クエリから登録、修正、削除ができるフォームを作成しました。ただ、処理はできるのですが、型変換エラーのため、0個のフィールドをNull値に設定しました。また2件のレコードでキー違反、0件のレコードで・・・とエラー表示がでます。原因は何なのでしょうか?無視すれば処理ができます・・。 コード→数値型、値要求(いいえ)インデックス(はい(重複なし)) 名称→テキスト型、値要求(いいえ)インデックス(いいえ) 更新日→日付/時刻型、値要求(いいえ)インデックス(いいえ)となっています。コードを主キーにしているので、インデックスの変更ができません。

  • 更新クエリでキー違反

    クエリAのあるレコードからテーブルBのレコードにデータを流そうとします。 テーブルBのレコードにデータがちゃんと入っている と上手くデータが流れて更新されるのですが、IDと 名前しか入っていなかったりするとキー違反になるのです。 とても抽象的ですが、 どうして大丈夫なときとダメなときが発生すると 考えられますか?

  • ACCESS【更新クエリの中断ができない】

    ACCESS初心者です。質問がわかりにくかったらすみません。 ACCESSの更新クエリで、レコードのカンマをスペースに置き換える式を作りました。 クエリを実行すると、 ”更新クエリを実行すると、テーブルのデータが更新されます” と、メッセージが表示され”はい”で次に進むと ”*件のレコードが更新されます。”と正確な件数が表示されます。 ただ、ここでやはり中断したいと思い、”いいえ”を選択しても、 レコードは更新されてしまいます。何故でしょうか?教えてください。 ______________________ フィールド:     型名 テーブル:      データ統合 レコードの更新:  Replace([型名],","," ") 抽出条件:     Like"*,*"

  • ACCESS更新クエリで型変換エラー

    ACCESSで更新クエリを作成して実行したら 「…個のフィールドで型変換エラーが発生したためレコードを更新できませんでした。」 となってしまいます。 「医薬品コード(-)」というフィールドに「医薬品コード」フィールドの文字から( )で囲まれた部分を省いた文字を更新するクエリを作りたいのです。 更新クエリのレコードの更新セルに入力しているのは Left([医薬品コード],InStr([医薬品コード],"(")-1) です。 更新するフィールドの設定は 値要求:いいえ、空文字列の許可:はい、インデックス:いいえ、Unicode圧縮:いいえ 型変換エラーの原因はなんでしょうか?

  • レコードソース以外のクエリの結果を表示させる

    access初心者です。 access2010を使用しています。 Aクエリをレコードソースに持つAフォーム上のテキストボックスに、Bクエリのフィールドの値を表示させるにはどうしたらよいのでしょうか? よろしくお願いします。

  • 削除クエリがエラーになります。

    削除クエリがエラーになります。 Access2007です。削除クエリを作っているのですがどうしてもエラーになります。 「1件のレコードでキー違反。0件のレコードでロック違反が発生したため削除クエリでレコードを削除できませんでした。」と、表示されてしまいます。 な~ぜ???  1つのテーブルを基に作っているのにどうしてエラーになるのかわかりません。「キー違反」「ロック違反」とはどういうものですか?どうすれば治りますか? どうか、よろしくお願いいたします

  • 400のフィールドをクエリで表示することは可能?

    http://office.microsoft.com/ja-jp/access-help/HA010341462.aspx を見ると、 アクセス2010のテーブルのフィールドの最大値は255個ですが テーブル1が200 テーブル2も200 のフィールドで、 テーブル1と2の主キー同士を繋げて、400のフィールドをクエリで表示することは可能ですか?

  • アクセスの更新クエリについて

    アクセスの更新クエリにおいて、各レコードで繰り返し同じ数を入力しなければならないフィールドが3つあります。その3つをパラメータを設定し、更新クエリを設定して実行しようとすると2つまではパラメータで聞いてくるのですが、1つだけ聞いてきません。アドバイス宜しくお願い致します。

  • Accessにて「書き込みに遅延がしました」について

    Access2000にて、更新クエリーを実行すると「書き込みに遅延がしました」が表示される。 googleにて検索しても、該当が見つかりません 環境は、Windows2000(sp4)+Access2000(sp3)にて、ファイルサーバー上のmdbを使用している時に発生します。

専門家に質問してみよう