
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件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
joinを行った結果に対して更新はアクセスの場合はできない仕様になっていたと思います。
(データグリッドの自動更新を使用しては)クエリを変更できない場合はレコード移動などのイベントを拾って手動で更新クエリを発行するなどの対策が必要です
ご回答ありがとうございます。
データグリッドは表示のみで、データグリッドに入力したデータをアクセスのテーブルに更新するというようなことはしていません。
データグリッドに表示し、あるレコードのセルにカーソルを当てた後、そのレコードの上や下にカーソルを移動したときに、エラーメッセージが出てしまうのです。
単なる表示だけなのに、何が原因なのでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ベーステーブル情報について
Visual Basic(VBA)
-
テーブルのレコード削除ができません
SQL Server
-
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
-
4
Oracle 8i コンマ(,)を含むデータをinsertしたい
その他(データベース)
-
5
オープンしているレコードセットの中の最大値
その他(データベース)
-
6
年月日を持つテーブルから年月を指定して抽出したいのですが
その他(データベース)
-
7
ADODBのRecordset.Deleteのエラーについて誰か助けてください!!
その他(プログラミング・Web制作)
-
8
ACCESS ADOでupdateが効かない
その他(データベース)
-
9
Access サブフォームでの選択行の取得
その他(データベース)
-
10
ACCESSのテーブルで、昇順並び替え後、連番フィールドを作成したい
Access(アクセス)
-
11
アクセス VBAで列の入れ替え データシートビュー
その他(Microsoft Office)
-
12
ADO VBA 実行時エラー3021
Visual Basic(VBA)
-
13
Access VBAから使用したExcelプロセスを閉じる方法について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ADOでループすると1レコードず...
-
Excel 2019 のピボットテーブル...
-
「直需」の意味を教えてください
-
ACCESS検索★ある文字を複数のフ...
-
INSERT INTO ステートメントに...
-
【Access】フォームで自動計算...
-
Countと受付状態の表示に...
-
Oracle 2つのDate型の値の差を...
-
下記の事を行うSQLがわかりませ...
-
SQLServer2005のSQL文での別名...
-
カウントが出来ません
-
Access2000 更新のタイミング?
-
ACCESSで400以上のフィールドが...
-
再計算って出来ますか?
-
【続続】Access2002で連番のつ...
-
accsessで顧客コードで氏名を呼...
-
Access クロス集計クエリについて
-
Accessのフィールド数が255しか...
-
アクセス メモ型 255文字...
-
FROM の中で CASE を使えるでし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「更新に必要なキー列の情報が...
-
access2000でつまづいてます
-
Accessの更新前処理について。D...
-
AceessVBA 非同期処理について
-
cobolのカーソルについて
-
ACCESSのFindコマンドが遅い
-
Access VBAで自動連番を振るには
-
Set rst = db.OpenRecordset("S...
-
Access2003でのテーブルの有無確認
-
テーブルの削除
-
VB6とAccess
-
半角スペースの置換でエラーを...
-
ADOでループすると1レコードず...
-
[Access]削除時のエラーメッセ...
-
access count数を変数に格納
-
初心者です。Access レポートで...
-
access vbaでクエリデータの中...
-
Insertの構文を教えて下さい
-
adoのWHERE句 クエリだとフィ...
-
VBAのデバックをどなたかお手伝...
おすすめ情報