Windows10环境下Access执行含外部联接的更新查询时崩溃
Access在Windows 10执行含外部联接的ODBC更新查询崩溃的解决办法
匹配ODBC驱动位数与版本
Windows 10自带的ODBC驱动和Windows 7版本差异较大,尤其是Oracle驱动。先确认Access的位数(32位/64位),卸载当前Oracle ODBC驱动,安装对应Oracle版本的同位数最新驱动,避免位数不兼容导致的崩溃。重构更新逻辑,规避外部联接直接更新
不要直接用带外部联接的UPDATE语句,拆分成分步操作:- 创建临时表存储关联后的待更新数据:
SELECT SerialNumber.Number, Sheet1.待更新字段名 INTO Temp_Update_Data FROM SerialNumber LEFT JOIN Sheet1 ON SerialNumber.Number = Sheet1.AM1id WHERE Sheet1.AM1id IS NOT NULL; - 通过临时表更新链接的Oracle表:
UPDATE SerialNumber INNER JOIN Temp_Update_Data ON SerialNumber.Number = Temp_Update_Data.Number SET SerialNumber.目标字段名 = Temp_Update_Data.待更新字段名; - 更新完成后删除临时表:
DROP TABLE Temp_Update_Data;
- 创建临时表存储关联后的待更新数据:
调整Access信任中心设置
打开Access,依次进入「文件」→「选项」→「信任中心」→「信任中心设置」→「外部内容」,将数据连接安全设置改为「启用所有数据连接」,同时启用受信任发布者的VBA宏,排除安全限制导致的执行异常。修复Access安装文件
在控制面板的「程序和功能」中找到Microsoft Office/Access,右键选择「更改」,先尝试「快速修复」,若无效再执行「联机修复」,修复可能损坏的系统组件交互文件。更新Windows 10系统
安装Windows 10最新累积更新,部分系统底层组件的bug会影响Access与ODBC数据源的交互,更新后可解决这类兼容性问题。
内容的提问来源于stack exchange,提问作者Mack
相关产品推荐
相关产品推荐

