今天早上被一陣電話吵醒了,客戶反饋昨天運行的好好的程序今天突然爆出異常。遠程查看後發現昨天夜裏微軟推送了KB4484127更新,推送更新後導致所有update操作無法正常運行,提示Query is corrupt。目前解決官方給出的解決方案就是一坨屎。所以目前最好的方案就是卸載KB4484127更新等待微軟進一步推送新的更新。
2019/11/28更新
==========
微軟已經發布了補丁解決這個問題
Version |
Broken Build |
Fixed Build |
Release Date |
Official link to fix issue |
---|---|---|---|---|
Access 2010 MSI |
7241.5000 |
7241.5001 |
November 27, 2019 |
|
Access 2013 MSI |
5189.1000 |
5189.1002 |
November 27, 2019 |
|
Access 2013 C2R |
5189.1000 |
5197.1000 |
December 10, 2019 |
Use File/Account/ |
Access 2016 MSI |
4927.1000 |
4927.1002 |
November 18, 2019 |
==========
附上微軟給的修復方法:
This will occur for an Update query that:
-
Updates a single table (i.e. it updates a table, rather than the output of a Select query, or join
-
Specifies a WHERE clause (i.e. has entries in the Criteria row in the query designer)
This issue impacts all supported builds of Access.
STATUS: FIXED
This issue will be fixed for all versions:
Version |
Build |
Release Date |
---|---|---|
Access 2010 |
7242.5000 |
December 10, 2019 |
Access 2013 |
5197.1000 |
December 10, 2019 |
Access 2016 MSI |
4939.1000 |
December 10, 2019 |
Access 2019 Volume License |
10352.20054 |
December 10, 2019 |
Access O365/2019 (Version 1911) |
12228.20152 |
November 24, 2019 (estimated) |
If you encounter this issue before the fix is available, the recommended workaround is to update the query so that it updates the results of another query, rather than updating a table directly.
For example, if you have a query similar to:
UPDATE Table1 SET Table1.Field1 = "x" WHERE ([Table1].[Field2]=1);
You can create a new query (Query1) defined as:
SELECT * from Table1;
And update your original query to:
UPDATE Query1 SET Query1.Field1 = "x" WHERE ([Query1].[Field2]=1);
By replacing all references to Table1 with Query1
This will produce the same results, but avoid the error.
大概意思就是在應用了更新以後,會導致單表的Update(必須帶where條件的)查詢會出現錯誤,我這邊測試的確如此。