11月13日に配信されたMicrosoft Office Accessの更新プログラムで問題が発生しているようです。
データベースということで業務に直結しているアプリもあり問題は大きそうです。
12月の更新プログラム
2019年12月11日に配信された更新プログラムで一応は修正されました。詳しくはこちらの記事を参照願います。
11月の更新プログラムの不具合
昨日からいろいろなアプリが動作しなくなる症状が発生しているとのことで郵便局の企業向け送り状印字ソフト「ゆうパックプリントR」のサポートからもメールが届きました。
- 緊急のお知らせ(郵便局)
Windows 10 バージョン1909の配信が開始された2019年11月13日に騒ぎ始めたので、またやらかしたのかと思ったらそうではなく、Microsoft Office Accessの更新プログラムの問題のようです。
検索してみると他でも問題となっているようです。
- 2019年11月アップデート(KB4484113、KB4484119、KB4484127)導入後における「クエリが破損しています。」エラーの発生について(Microsoft)
- VB.net にて AccessのDB(.accde)に接続(Yahoo知恵袋)
この問題は、
- 単一のテーブルを更新するSQL文(SELECTやJOINによる出力ではなくテーブルを更新する場合)
- WHEREを指定しているSQL文(クエリデザイナーで[抽出条件]を指定している場合)
に発生するとのことでSQL文の書き方によっては一部の処理は正常に行われてしまい、想定外の動作をすることでデータベースを壊してしまう可能性があります。(詳細は後述のリンクを参照)
問題の更新プログラムと暫定的な対処方法
今回問題となっているのはMicrosoft Office Accessの更新プログラムですが「Accessなど使っていないから大丈夫」などと安心はできません。
Microsoft Office Accessはデータベースエンジンランタイムとして多くのアプリケーションで利用されています。
どのアプリケーションが利用しているかは分かりませんが、急にアプリケーションが動作しなくなったら以下の点を確認してみた方が良いでしょう。
「コントロールパネル」を開き「プログラム」をクリックします。
「プログラムと機能」の「インストールされた更新プログラムを表示」をクリックします。
右上の検索ボックスで「KB4484」または「KB3085368」を検索して、
これら3つのいずれかが検索されたらここで説明した問題の対象ということになります、
- KB4484127 <-- Microsoft Office Access 2010
- KB4484119 <-- Microsoft Office Access 2013
- KB4484113、KB3085368 <-- Microsoft Office Access 2016
KB4484160、KB4484152、KB4484148もアンインストールするように指示しているサイトもありますが、後述のMicrosoftの記事では対象とされていません。
また、これらはExcelに関する更新プログラムであり、Excelでもクエリーは実行できますが実装されたのはExcel 2016からであり、Excel 2010、Excel 2013では実行できません。
以上から、KB4484160、KB4484152、KB4484148はアンインストールする必要はありません。
KB4484127、KB4484119、KB4484113、KB3085368はインストールされているOfficeのバージョンやランタイムのバージョンによってこれらの組み合わせで検出される場合もあります。
例えばOffice 2010のMicrosoft Office AccessデータベースエンジンランタイムがインストールされているとこのようにKB4484127が検索されます。
何も表示されなければMicrosoft Office Accessデータベースエンジンランタイムはインストールされていませんのでアプリケーションが動作しないのは別の問題ということになります。
検索された場合は、あとで必要となるので更新プログラムのKB番号をメモしておいてください。
更新プログラムを選択すると「アンインストール」と表示されるのでクリックしてアンインストールしてください。
アンインストールしただけだと暫くすると問題が再発するようになります。
修正版のリリースは12月11日
こちらの記事によるとMicrosoftはKB4484127、KB4484119、KB4484113、KB3085368の問題を認識しており修正版も既にできているとのことです。
- Access エラー: 「クエリは破損しています」(マイクロソフト)
- Access error: "Query is corrupt"(Microsoft 原文)
しかしリリースは12月の定期更新(日本時間では12月11日早朝)で、それまではSQL文を書き換えて対処するように説明されています。
当然、既に出回っている多くのアプリケーションでSQL文を書き換えるなど不可能です。
しかも、大企業向けボリュームライセンスのAccess 2019やOffice 365/Office 2019のAccess 2019には、今回のバグ入り更新プログラムを配信していないといういい根性をしています。
再発させないための対処方法
Microsoftからの修正版のリリースは12月11日のため、次に更新プログラムの確認が行われるとまたインストールされてしまいます。
そして問題が再発することとなります。
対処方法としては問題の更新プログラムをブロックします。
ブロックは更新プログラムのアンインストール後、速やかに行ってください。
まず、こちらにアクセスして「自動更新を選択する」という部分の「トラブルシューター」というリンクをクリックして「wushowhide.diagcab」をダウンロードしてください。
ダウンロードした「wushowhide.diagcab」をダブルクリックして実行します。
「次へ」をクリックします。
少し待ちます。
「Hide updates」をクリックします。
ブロックする更新プログラムにチェックを入れます。
ブロックする更新プログラムはインストールされているMicrosoft Office Accessデータベースエンジンランタイムによって変わりますのでメモしておいたKB番号と同じか確認してください。
表示されない場合は作業中に再インストールされた可能性がありますので、アンインストールからやり直してください。
チェックを入れたら「次へ」をクリックします。
待ちます。
「解決済み」と「緑のチェック」が表示されていることを確認してください。ネットワークに接続されていないと「赤の(×)」が表示されます。
「閉じる」をクリックして終了します。
Windows Updateで「更新プログラムのチェック」をクリックしても再インストールされなければブロックされています。
なお、ブロック後に大型アップデートを適用するとブロックが解除されますので注意してください。
まとめ
データベースという業務に直結するバグを発生させるとは、やはりMicrosoftはまだ懲りていないようです。
コメント