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

Access、VB6、データグリッドを使用した処理を行った際に、
「更新に必要なキー列の情報が足りません。」というメッセージが表示
されてしまいました。

【使用環境】
 ・WindowsXP SP1
 ・VB6
 ・ACCSESS2002

【発生手順】
 (1)インプット用mdbのテーブルデータを
  中間mdbのテーブルデータにコピー。
 (2)中間mdbのテーブルデータをAccessクエリを使用し
  画面出力用のデータを作成。
 (3)クエリデータをデータグリッドに表示。
  ※1.[コード1、文字列1、コード2、文字列2、コード3]
    を表示しています。
  ※2.コード1、コード2、コード3でプライマリキーとなっています。
 (4)データグリッドで特定の文字列2のセルをクリック後、
  他のセルにカーソルが移動しなくなる。
  このときに、エラーメッセージが表示される。

【回避できる場合】
 ・エラーメッセージが表示される元となるインプット用mdbの
  テーブルデータの文字列2に対し、何か変更を加えたあと、
  もとに戻す。
  例)あいうえお→あいうえお1→あいうえお
   のように変更を加えたあと、1を削除して最初
   の状態に戻す。
  
  この状態で処理を実行すると、【発生手順】(4)でエラーが出ていた
  ものがカーソルも移動することができ、エラーが発生しなくなります。
  ですが、ユーザが使用する際にこのような回避はできないため、回避策と
  はいえないです。
  

なぜ、このようなことが起こるのかや、エラーメッセージを表示させないような
回避策があれば教えていただけないでしょうか。

A 回答 (5件)

更新対象のテーブルに主キーが設定されていない可能性があります

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
クエリーデータをデータグリッドに表示しているのですが、クエリーの元となるテーブルには主キー設定をしているため、主キー設定はしていると思われます。
とすると、何が原因なのでしょう・・・。

お礼日時:2005/12/20 13:15

あとは中間テーブルへのクエリにjoinなどの連結を使用しているとか?

    • good
    • 0
この回答へのお礼

何度も回答していただき、ありがとうございます。
joinの件ですが、inner joinなら行っていましたが、このクエリは開発者共通で使用しているため、修正することはできなさそうです。
そのほかの方法があるのでしょうか。

お礼日時:2005/12/20 16:12

joinを行った結果に対して更新はアクセスの場合はできない仕様になっていたと思います。

(データグリッドの自動更新を使用しては)

クエリを変更できない場合はレコード移動などのイベントを拾って手動で更新クエリを発行するなどの対策が必要です
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
データグリッドは表示のみで、データグリッドに入力したデータをアクセスのテーブルに更新するというようなことはしていません。

データグリッドに表示し、あるレコードのセルにカーソルを当てた後、そのレコードの上や下にカーソルを移動したときに、エラーメッセージが出てしまうのです。
単なる表示だけなのに、何が原因なのでしょう。

お礼日時:2005/12/20 16:43

私じゃ力不足みたい


こちらでも質問してみてはどうでしょう?
http://www.moug.net/
    • good
    • 0

データグリッドを ReadOnly にするとどうなるでしょうか?あるいはレコードソースを

    • good
    • 0

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

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


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