アプリ版:「スタンプのみでお礼する」機能のリリースについて

クエリAのあるレコードからテーブルBのレコードにデータを流そうとします。

テーブルBのレコードにデータがちゃんと入っている
と上手くデータが流れて更新されるのですが、IDと
名前しか入っていなかったりするとキー違反になるのです。

とても抽象的ですが、
どうして大丈夫なときとダメなときが発生すると
考えられますか?

A 回答 (4件)

#3補足の内容を読みましたがどのような事をしようとしているのか


ここからは理解できませんでした。
申し訳ないのですがこれにはアドバイスが見つかりません。
    • good
    • 1
この回答へのお礼

わざわざご回答ありがとうございます。
テキストの限界を感じています。

もう少し整理して報告したいと思いますのでまた閲覧頂ければ幸いです。

お礼日時:2006/07/03 20:35

「キー違反」になる可能性としては


 (1)既にテーブルに同じキーのデータが存在する。
 (2)キー項目にNull値をセットしようとしている。
が考えられます。

 キーの重複しているデータをセットしようとしているためにキー違反に
なるのであれば、「クエリA」と「テーブルB」を新規クエリー上でキーを
している項目で紐付ければ、どのデータのためにエラーとなるのか分かる
と思います。

 「IDと名前しか入っていなかったりするとキー違反になるのです。」
との事でが、キーは「ID」と「名前」ですか?
それ以外の項目がキーになっているのなら、Nullは入れられないので
キー違反になります。

「入力規則違反」の場合、他に考えられる原因は
「テーブルB」では数値型の項目に「クエリA」では文字が含まれるデータを
セットしようとしている事などが上げられるかと思います。
    • good
    • 0
この回答へのお礼

お礼おそくなりました。回答ありがとうございます。

主キーはIDだけです。
名前はキーにはなっていません。

Aクエリには
ID(主キー、Aテーブルの主キー)、名前、コメント、分野1、数1、分野2、数2、分野3、・・・分野22、数22

Bクエリには
ID、名前、コメント、分野1、数1、分野2、数2、分野3、・・・分野22、数22

A、Bクエリの内容は同じなんです。
Aクエリのレコードの内容をBクエリにコピーする更新クエリを作りました。

2つの検索ボックスでおのおのレコードを選び、A→Bでコピーします。

UPDATE Aクエリ、Bクエリ SET Aクエリ.コメント=Bクエリ.コメント, Aクエリ.分野1=Bクエリ.分野1 ・・・WHERE (((Aクエリ.ID)=[Forms]![基本フォーム]![kensaku_box2]));

IDが非常に怪しいですね。IDを入れるようにすれば成功するかも知れません。また、お手数ですがわかることがあればご教授ください。

お礼日時:2006/07/01 06:28

メッセージの内容は、Null、キー違反、ロック違反、入力規則違反と続いていると思いますが、件数に数字が入っているのは「入力規則違反」だったりしませんか?



テーブルのデザインを作成する時、テキスト型はプロパティ「空列文字の許可」の初期設定が「いいえ」で作成されます。
空白が入る項目の場合には「空列文字の許可」を「はい」にして置いてあげる必要があります。
    • good
    • 1
この回答へのお礼

回答ありがとうございました。お礼おそくなりました。

空文字が入るのでこれでイケると思ったのですが、同様のエラーが出続けています。1件のレコードでキー違反が出てしまいます。近づいているとは思うのですが、また心あたりがあったら教えてください。

お礼日時:2006/06/28 23:38

うーん!プログラマでなくスーツのデザイナーですので攻め方だけ・・・。



1、1行だけでテストする。
2、フルデータでテスト。
3、1列だけヌル値にしてテスト。
4、また、別の1列のみをヌル値にしてテスト。
5、このようにした、ID以外を全てテスト。

現象の把握=>原因究明=>対策という手順を踏めば簡単に解決するかもです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A