Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Access 2013)
クエリは破損しています
投稿日時: 19/11/13 15:48:58
投稿者: yamasho

お世話になります。
 
今まで問題なく使えていたものが、
WindowsUpdate後にエラーが
でるようになってしまいました。
 
下のSQL文を実行すると、
「クエリは破損しています」
というエラーになってしまいます。
 
UPDATE T_損益計算書 SET 損益 = 0 WHERE 損益ID = 1
 
WHERE句を削除するとエラーにはなりません。
WHERE句を違う項目の条件式、例えば、
 
UPDATE T_損益計算書 SET 損益 = 0 WHERE 部門ID = 1
 
としてもエラーになってしまいます。
データベースの最適化/修復をしても同じです。
 
何が原因でしょうか?
 

回答
投稿日時: 19/11/13 16:03:57
投稿者: sk

引用:
Windows 10全般 : Access 2013

引用:
WindowsUpdate後にエラーが
でるようになってしまいました。

引用:
下のSQL文を実行すると、
クエリは破損しています
というエラーになってしまいます。
  
UPDATE T_損益計算書 SET 損益 = 0 WHERE 損益ID = 1
  
WHERE句を削除するとエラーにはなりません。

Office 2013 環境の場合は KB4484119 の
更新プログラムをアンインストールして下さい。
 
なお、Office 2010 環境については KB4484127、
Office 2016 環境については KB4484113 の
セキュリティ更新パッチ( 2019年11月次 )が適用されると
同様の不具合が発生することが確認されています。
 
MS コミュニティ より:
https://answers.microsoft.com/ja-jp/msoffice/forum/all/2019%e5%b9%b411%e6%9c%88%e3%82%a2%e3%83%83/4ac3fbfd-3010-4541-a5dc-f0c8a3adf8e3
 
Access に限らず「 ACE 経由で mdb / accdb ファイルにアクセスするプログラム」
全般が対象となりますので、例えば Excel のマクロによって同様の処理を
実行しているケースについてもご注意下さい。

回答
投稿日時: 19/11/14 09:20:53
投稿者: sk

MS 公式もこの問題を把握したようです。
 
Office サポート より:
https://support.office.com/en-us/article/access-error-query-is-corrupt-fad205a5-9fd4-49f1-be83-f21636caedec
 
とりあえずの回避策として提示されているのは
 
1. 更新対象となるテーブルの全てのレコードを返す
   選択クエリを作成する。
 
2. 1 の選択クエリのうち、任意の抽出条件に該当するレコードの
   任意のフィールドの値を更新する更新クエリを作成する。
 
という形に置き換えるというものですが、該当パッチを
アンインストールする方が手っ取り早いでしょうね。

回答
投稿日時: 19/11/16 18:59:47
投稿者: かきまろ

私の会社でも同じ事象が出ています。
こちらの環境は、Windows10+Access2019です。
 
状況としては、Windowsのupdateとofficeの最新版へ更新したものだけがそのエラーになります。
しかし、Windowsのupdateはしていてofficeの更新をしていないものについてはエラーになっていません。
 
興味があるようでしたら、できる限りの情報提供はできますので質問して下さい。
 

投稿日時: 19/11/16 22:13:57
投稿者: yamasho

sk様、かきまろ様、ありがとうございます。
 
該当パッチをアンインストールして解決しました。
 
焦りました・・・。
 
すぐに教えていただいて助かりました。