微軟更新重大Bug,造成access更新查詢中,提示查詢‘’中斷(查詢失?。┑慕鉀Q方案
- 2019-11-19 09:26:00
- tmtony8 原創(chuàng)
- 13119
有網(wǎng)友反饋平臺運(yùn)行出錯,后面發(fā)現(xiàn)是微軟補(bǔ)丁更新導(dǎo)致的。
不光是Access通用平臺,其它使用Access更新查詢的數(shù)據(jù)庫在微軟自動更新補(bǔ)丁后都有可能出現(xiàn)這個錯誤。而且微軟暫時(shí)還沒有修復(fù)的補(bǔ)丁,所以只能按照本篇技巧中下面的相關(guān)方法來處理。
先確保您出現(xiàn)的是以下錯誤:
1.查詢 '' 中斷
2.Query is corrupt 或 Critical Alert: Query is Corrupt, Error 3340
當(dāng)運(yùn)行一個更新查詢時(shí),它可能不運(yùn)行并顯示錯誤:"Query 'query name' is corrupt". (查詢 中斷)
這個更新查詢錯誤發(fā)生條件:
1.直接更新單個表(即更新表,而不是Select查詢或聯(lián)接的輸出)
2.指定WHERE子句(即在查詢設(shè)計(jì)器的條件行中有條目)
這個問題影響所有支持的access版本
該問題在2019年11月12日通過以下MSI版本的補(bǔ)丁更新被引入:
Office 2010: Office 2010安全更新說明:2019年11月12日(KB4484127)
Office 2013: Office 2013安全更新說明:2019年11月12日(KB4484119)
2016年辦公:2016年辦公安全更新說明:2019年11月12日(KB4484113)
2016辦公室:2019年11月12日,2016辦公室更新(KB3085368)
微軟預(yù)計(jì)修復(fù)的發(fā)布日期
短時(shí)解決方案:
1、卸載更新。
打開系統(tǒng)的“運(yùn)行”或者直接輸入win+r,輸入“appwiz.cpl”,確定打開“添加或刪除程序”(在控制面板打開亦可)
搜索相關(guān)您對應(yīng)版本下載的補(bǔ)丁 卸載/刪除,如office2010 即卸載(KB4484127)
對于Office 365用戶,請遵循以下步驟:
1.打開Office并在“Account”下選擇禁用更新選項(xiàng)。
2.使用此鏈接查找要還原為的Office版本:Update history for Office 365 ProPlus (listed by date),例如,“16.0.12130.20272”
3.下載office Deployment 工具 (Download)
4.按照提示將文件解壓縮到一個容易訪問的文件夾。
在該文件夾中,使用記事本創(chuàng)建一個名為“config”的新文件。xml包含:
<Configuration> <Updates Enabled="TRUE" TargetVersion="16.0.12130.20272" /> </Configuration>5.在提升的命令提示符中,將目錄更改為解壓文件的文件夾。然后運(yùn)行以下命令:
setup.exe /configure config.xml
6.打開Office程序,進(jìn)入賬戶頁面,“立即獲取更新”。這返回到更新16.0.12130.20272。
參考微軟資源鏈接:How to revert to an earlier version of Office 2016 Click-to-Run
2、更新查詢,更新另一個查詢的結(jié)果,而不是直接更新表。
例如,如果有一個類似于這樣的查詢:
UPDATE Table1 SET Table1.Field1 = "x" WHERE ([Table1].[Field2]=1);
您可以創(chuàng)建一個新的查詢(Query1)定義為:
SELECT * from Table1;
然后更新你原來的查詢:
UPDATE Query1 SET Query1.Field1 = "x" WHERE ([Query1].[Field2]=1);
用Query1替換Table1 的引用
這可產(chǎn)生相同的結(jié)果,利用查詢避免錯誤。
3、使用代碼和記錄集更新數(shù)據(jù)
在VBA中使用記錄集。使用變量定義ADO或DAO記錄集,編輯它
4、系統(tǒng)還原,此方案有風(fēng)險(xiǎn),謹(jǐn)慎操作
相關(guān)的文章內(nèi)容:
查詢是針對當(dāng)前數(shù)據(jù)庫中的表,鏈接表還是鏈接的SQL Server表都沒有關(guān)系。如果Access數(shù)據(jù)庫引擎正在處理UPDATE查詢,則會發(fā)生錯誤。
在此示例中,查詢qryUpdateEmployee非常好。它以前曾經(jīng)工作過,如果卸載了安全更新,它將再次工作。
受影響的程式
此問題影響:
自2010年以來的所有Microsoft Access版本,包括Access 2010、2013、2016和2019以及Office 365
32和64位版本的Microsoft Access
使用Access數(shù)據(jù)庫引擎(ACE)和ADO連接到Access數(shù)據(jù)庫(ACCDB和MDB)文件并使用查詢更新它們的程序。這可能包括:
用Visual Studio .NET或Visual Basic 6編寫的程序
基于ASP.net,經(jīng)典ASP等構(gòu)建的Web解決方案
在其他主機(jī)(例如Excel,PowerPoint,Word)中運(yùn)行的VBA代碼
使用ACE與Access數(shù)據(jù)庫一起使用的Microsoft程序,例如PowerBI,Power Query和SQL Server Migration Assistant(SSMA)(我們尚未確認(rèn)這些程序正在使用崩潰的更新查詢)
微軟的回應(yīng)
我們與Microsoft Access開發(fā)團(tuán)隊(duì)保持聯(lián)系,并且對于出問題的原因以及如何將如此嚴(yán)重的問題發(fā)布到世界上沒有明確的答案。
我們與您一樣擔(dān)心,這樣的安全更新比它們試圖阻止的病毒或惡意軟件引起的問題更大。
這是他們描述問題的網(wǎng)頁: 訪問錯誤:“查詢已損壞”
Microsoft的修補(bǔ)程序的預(yù)計(jì)發(fā)布日期
Access 2010:內(nèi)部版本7242.5000-2019年12月10日
Access 2013:內(nèi)部版本5197.1000-2019年12月10日
Access 2016 MSI:內(nèi)部版本4939.1000-2019年12月10日
Access 2019批量許可證:內(nèi)部版本10352.20054-2019年12月10日
Access O365 / 2019(1911版):內(nèi)部版本12228.20152-2019年11月24日(估計(jì))
從現(xiàn)在起幾周后,他們宣布的解決方案對于大多數(shù)情況顯然是不可接受的。我們希望他們能夠更快地做出響應(yīng),并且我們將在學(xué)習(xí)過程中提供更多信息。
即時(shí)解決方案:卸載安全更新
解決此問題的最佳方法是卸載此問題的根源Office安全更新。根據(jù)您的Access安裝來自傳統(tǒng)的永久許可證,ACE還是Office 365訂閱,解決方案有所不同。
Office / Access的永久許可證和磁盤安裝以及ACE分發(fā)安裝
如果您通過永久許可證,本地安裝程序/磁盤或分布式Access數(shù)據(jù)庫引擎(ACE)直接在計(jì)算機(jī)上安裝了Access / Office,則安全更新已安裝在Office 365訂閱服務(wù)之外的計(jì)算機(jī)上。請按照以下步驟查找并卸載更新:
- 按Windows鍵和R彈出運(yùn)行提示。
- 鍵入“ appwiz.cpl”,然后按[確定]啟動控制面板的“程序和功能”程序。
- 單擊[查看已安裝的更新]。
- 在搜索欄中,搜索以下KB。
- Office 2010:KB4484127
- Office 2013:KB4484119
- Office 2016:KB4484113
- 在此系統(tǒng)上,存在KB4484127。
- 右鍵單擊該程序,然后選擇[卸載]。
- 單擊[是]開始卸載過程。
- 提示將詢問您是否準(zhǔn)備好卸載。單擊[卸載]按鈕繼續(xù)。
- 成功卸載更新后,單擊[確定]。
根據(jù)我們的經(jīng)驗(yàn),如果此操作卸載了所有有害的安全更新,則無需重新啟動即可解決問題。
不久我們將獲得有關(guān)Office 365安裝的其他信息。
Office 365訂閱(單擊以運(yùn)行)安裝
對于Office 365用戶,請按照下列步驟操作:
- 打開Office,然后在“帳戶”下選擇禁用更新的選項(xiàng)。
- 使用此鏈接來查找要還原到的Office版本: Office 365 ProPlus的更新歷史記錄(按日期列出)
例如,“ 16.0.12130.20272” - 下載Office部署工具(Download)
按照提示將文件解壓縮到易于訪問的文件夾中。 - 在該文件夾中,使用記事本創(chuàng)建一個名為“ config.xml”的新文件,其中包含:
<配置>
- 在提升權(quán)限的命令提示符下,將目錄更改為您解壓縮文件的文件夾。然后運(yùn)行以下命令:
setup.exe / configure config.xml
- 打開一個Office程序,然后轉(zhuǎn)到“帳戶”頁面,然后“立即獲取更新”。這將還原為更新16.0.12130.20272。
Microsoft資源:如何還原到早期版本的Office 2016即點(diǎn)即用
無法卸載安全更新的替代解決方案
在某些情況下,您可能無法卸載安全更新。也許您或您的用戶無權(quán)更改。或者,您正在將解決方案分發(fā)給不受您控制的機(jī)器的人。如果要確保即使安裝了安全更新,您的Access應(yīng)用程序都可以正常運(yùn)行,則有以下幾種選擇:
- 修改所有查詢,以免它們觸發(fā)問題
使用Access 2007或更早版本部署Access應(yīng)用程序。您可以使用免費(fèi)的Access 2007運(yùn)行時(shí)來這樣做。有關(guān)Microsoft Access Runtime頁面的更多信息,其中包括免費(fèi)下載的運(yùn)行時(shí)程序。這假定您的Microsoft Access數(shù)據(jù)庫在Access 2007中運(yùn)行,并且不包括Access 2010或更高版本中引入的功能。請?jiān)L問Microsoft Access版本功能頁面,以查看版本之間的差異。
修改所有更新查詢
如果決定修改查詢,則需要找到所有觸發(fā)錯誤的更新查詢。這些可以是保存的查詢和在代碼中調(diào)用的SQL查詢。一旦識別出它們,就需要對其進(jìn)行修改,以便它們更新另一個查詢的結(jié)果,而不是直接更新表。這些示例由Microsoft在上面引用的頁面中提供。
例如,如果您有此查詢被標(biāo)記為損壞的查詢:
更新表1 SET Table1.Field1 =“ x”([Table1]。[Field2] = 1);
您可以創(chuàng)建一個新查詢(Query1),其定義為:
SELECT * from Table1;
并將您的原始查詢更新為:
UPDATE Query1 SET Query1.Field1 =“ x”在哪里([Query1]。[Field2] = 1);
通過用Query1替換對Table1的所有引用,這將產(chǎn)生相同的結(jié)果并避免錯誤。
使用代碼和記錄集更新數(shù)據(jù)
到目前為止,在VBA,VB6或Visual Studio.NET代碼中使用記錄集來更新記錄(例如,使用諸如rst之類的變量定義ADO或DAO記錄集,打開記錄并使用諸如rst.Edit和rst.Update)。
這些直接記錄更新與發(fā)出更新查詢不同,并且不受安全更新問題的影響。因此,另一個選擇是用記錄集更新替換“更新”查詢。對于一些記錄的一些簡單更新,或者與此安全更新有一些此類沖突的應(yīng)用程序(也許是單個數(shù)據(jù)輸入表單或網(wǎng)頁),這可能是有意義的。但是,更新查詢?nèi)匀蛔钸m合更新一個表或多個表中的許多記錄,因此不建議將其作為永久解決方案。
- office課程播放地址及課程明細(xì)
- Excel Word PPT Access VBA等Office技巧學(xué)習(xí)平臺
- 將( .accdb) 文件格式數(shù)據(jù)庫轉(zhuǎn)換為早期版本(.mdb)的文件格式
- 將早期的數(shù)據(jù)庫文件格式(.mdb)轉(zhuǎn)換為 (.accdb) 文件格式
- KB5002984:配置 Jet Red Database Engine 數(shù)據(jù)庫引擎和訪問連接引擎以阻止對遠(yuǎn)程數(shù)據(jù)庫的訪問(remote table)
- Access 365 /Access 2019 數(shù)據(jù)庫中哪些函數(shù)功能和屬性被沙箱模式阻止(如未啟動宏時(shí))
- Access Runtime(運(yùn)行時(shí))最全的下載(2007 2010 2013 2016 2019 Access 365)
- Activex控件或Dll 在某些電腦無法正常注冊的解決辦法(regsvr32注冊時(shí)卡?。?/a>
- office使用部分控件時(shí)提示“您沒有使用該ActiveX控件許可的問題”的解決方法
- RTF文件(富文本格式)的一些解析
- Access樹控件(treeview) 64位Office下出現(xiàn)橫向滾動條不會自動定位的解決辦法
- Access中國樹控件 在win10電腦 節(jié)點(diǎn)行間距太小的解決辦法
- EXCEL 2019 64位版(Office 2019 64位)早就支持64位Treeview 樹控件 ListView列表等64位MSCOMMCTL.OCX控件下載
- VBA或VB6調(diào)用WebService(直接Post方式)并解析返回的XML
- 早期PB程序連接Sqlserver出現(xiàn)錯誤
- MMC 不能打開文件C:/Program Files/Microsoft SQL Server/80/Tools/Binn/SQL Server Enterprise Manager.MSC 可能是由于文件不存在,不是一個MMC控制臺,或者用后來的MMC版
- sql server連接不了的解決辦法
- localhost與127.0.0.1區(qū)別
- Roych的淺談數(shù)據(jù)庫開發(fā)系列(Sql Server)
- sqlserver 自動備份對備份目錄沒有存取權(quán)限的解決辦法
- 安裝Sql server 2005 express 和SQLServer2005 Express版企業(yè)管理器 SQLServer2005_SSMSEE
聯(lián)系人: | 王先生 |
---|---|
Email: | 18449932@qq.com |
QQ: | 18449932 |
微博: | officecn01 |