Office365版Access/Access2019「クエリが破損しています」回避方法


※2019/11/20 バージョン別の対処方法と最新状況を追記しました。
※2019/11/22 C2R版とMSI版の見分け方を追記しました。

2019年11月のセキュリティ更新プログラムで問題が発生しています。
Microsoft Accessで更新クエリを実行しようとすると「クエリ "クエリ名" が破損しています」というエラーを表示して異常終了する場合があるとのことです。

  • Office2019 / Office365:Windows Updateの対象外
  • Office2016:KB4484113
  • Office2013:KB4484119
  • Office2010:KB4484127

Access error: "Query is corrupt" によると、修正版の配布は、Access2019/Office365 が11月24日頃、それ以外のAccessエディションは12月10日頃とのこと
⇒ 月次チャネルのOffice365版Access2016/2019(バージョン1910)は11/18付で修正版が出ているそうです。
更新オプションから「今すぐ更新」を実施し、修正版に更新されないようなら本稿の手順を実施されると良いと思います。

本稿で対象としているのは、クイック実行形式(C2R版)です。
インストーラ形式(MSI版)のOfficeでは、Microsoft Updateで更新プログラムを適用(もしくは問題のあるKBを削除)することになります。
お使いのOfficeがどちらか分からなければ、製品情報を表示し、そこに【更新オプション】があるかどうかで判断できます。
【更新オプション】が無ければ、そのOfficeはMSI版です。

C2R版とMSI版では更新手順が違うので、ブログ【Office365版Accessおよび、Access2019での『クエリ’’は破損しています』を回避する方法】を参考にC2R版に対処したのでメモします。

環境

  • Windows 10 Pro
  • Office 365 Business

問題のあるバージョン

2019年11月12日に配布された、下記いずれかのバージョンで問題が発生します。

  • バージョン 1910(ビルド12130.20344)月次チャネル
  • バージョン 1908(ビルド11929.20436)半期チャネル 対象指定
  • バージョン 1902(ビルド11328.20468)半期チャネル
  • バージョン 1808(ビルド10730.20416)半期チャネル

[アカウント] から現在のバージョンとビルド番号を確認します。

Office365版AccessまたはAccess2019で上記いずれのバージョンでもなく、問題が発生していなければ対応不要。
必要に応じて、後述の手順で自動更新を無効にしておこう。

対処方法

対策用バッチスクリプトを作成してユーザに配布し、実行していただきました。
バージョン別に実行するバッチスクリプトが異なります。
すべてのバージョンで動作を確認したわけではないので、適用は自己責任でお願いします。

バージョン1910 月次チャネルの場合

修正版が既に配信されています。更新オプションから「今すぐ更新」を実施して下さい。

バージョン1908 半期チャネル対象指定の場合

rollback_1908.bat
@echo off
echo Office365版Access/Access2019(バージョン1908:半期チャネル対象指定)をリビジョンダウンします。
pause
"C:\Program files\Common Files\microsoft shared\ClickToRun\officec2rclient.exe" /update user updatetoversion=16.0.11929.20396

本バッチを実行すると、10月14日時点のビルド11929.20396に戻ります。

バージョン1902 半期チャネルの場合

rollback_1902.bat
@echo off
echo Office365版Access/Access2019(バージョン1902:半期チャネル)をリビジョンダウンします。
pause
"C:\Program files\Common Files\microsoft shared\ClickToRun\officec2rclient.exe" /update user updatetoversion=16.0.11328.20438

本バッチを実行すると、10月8日時点のビルド11328.20438に戻ります。

バージョン1808 半期チャネルの場合

rollback_1808.bat
@echo off
echo Office365版Access/Access2019(バージョン1808:半期チャネル)をリビジョンダウンします。
pause
"C:\Program files\Common Files\microsoft shared\ClickToRun\officec2rclient.exe" /update user updatetoversion=16.0.10730.20386

本バッチを実行すると、10月8日時点のビルド10730.20386に戻ります。

リビジョンダウンの手順

バッチファイルを右クリックし [管理者として実行] を選択

管理者パスワードを入力しダウンロード

完了メッセージを確認

ネットの環境にもよると思いますが、こちらは5分ほどで終わった。

再度バージョンを確認

ビルド番号が小さくなっていたらOK。

自動更新を無効にする

修正パッチがマイクロソフトから配布され、その動作確認が取れるまでは無効にしておく。

さいごに

https://qiita.com/nasu_121/items/d2d0378ae0569170438f には大いに助けられました。ありがとうございます。

マイクロソフトさんには、しっかりテストして頂きたいものです。