マイクロソフトの11月アップデートで発生した「クエリは破損しています。」色々とお騒がせになっています。マイクロソフトから対応が提示されていますので「マイクロソフトのコメント」にリンクを書いておきます。
何がおきた?
アクセスの更新クエリを走らせると「クエリ’○○○○’は破損しています。」と言うメッセージボックスが出て処理が止まってしまいます。
マイクロソフトのコメント
これは、次の更新クエリで発生します。
- 単一のテーブルを更新する (例: 選択クエリまたは結合の出力ではなく、テーブルを更新する)
- WHERE 句を指定する (例: クエリ デザイナーの [条件] 行にエントリがある)
との事です。
対応策
過去のビルドのアンインストールを推奨していますが、面倒そうなので個別対応で逃げようと思います。
マイクロソフト側のコメントを引用すると
修正プログラムが利用可能になる前にこの問題が発生した場合、テーブルを直接更新するのではなく、クエリを更新して別のクエリの結果を更新することをお勧めします。
たとえば、次のようなクエリがある場合:
UPDATE Table1 SET Table1.Field1 = “x” WHERE ([Table1].[Field2]=1);
次のように定義された新しいクエリ (Query1) を作成できます。
SELECT * from Table1;
元のクエリを次のように更新します。
UPDATE Query1 SET Query1.Field1 = “x” WHERE ([Query1].[Field2]=1);
Table1 へのすべての参照を Query1 に置き換えること
これは同じ結果を生成しますが、エラーを回避します。
簡単に言うと「選択クエリを間にかまして更新させなさい。」と言っていると理解しました。そのように対応して急場をしのぎます。
この記事へのコメントはありません。