Access 365中多ODBC直通查询同时打开时连接失败求助
Access 365多直通查询同时打开ODBC连接失败的解决方法
检查ODBC驱动兼容性
Access 365默认是64位环境,若此前使用的是32位ODBC驱动,迁移后会引发并发连接异常。打开ODBC数据源管理器(64位),确认所有直通查询使用的驱动是对应数据库的64位版本(比如SQL Server用ODBC Driver 17 for SQL Server (64位))。调整Access连接池相关注册表设置
Access 365对ODBC连接的默认限制比2016更严格,可通过注册表调整参数:- 打开注册表编辑器,定位到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Access Connectivity Engine\Engines\ODBC - 修改
MaxBufferSize值(默认2048)为8192或更高;将LoginTimeout调整为10以上 - 修改后重启Access生效,操作前务必备份注册表。
- 打开注册表编辑器,定位到
用VBA复用ODBC连接
避免每个直通查询单独建立新连接,通过VBA代码共享同一个连接对象执行多个查询:Dim conn As ADODB.Connection Set conn = New ADODB.Connection ' 替换为你的ODBC连接字符串 conn.Open "DRIVER={ODBC Driver 17 for SQL Server};SERVER=你的服务器;DATABASE=你的库;UID=账号;PWD=密码" ' 执行多个查询 Dim rs1 As ADODB.Recordset Set rs1 = conn.Execute("SELECT * FROM 表1") Dim rs2 As ADODB.Recordset Set rs2 = conn.Execute("SELECT * FROM 表2") ' 释放资源 rs1.Close: Set rs1 = Nothing rs2.Close: Set rs2 = Nothing conn.Close: Set conn = Nothing检查外部数据库连接限制
确认外部数据库(如SQL Server)的最大并发连接数是否达标,联系数据库管理员查看连接日志,排查是否存在连接被拒绝的具体原因。压缩修复Access数据库
迁移过程中可能出现数据库损坏,执行文件>信息>压缩和修复数据库,完成后再测试多直通查询同时打开的情况。
内容的提问来源于stack exchange,提问作者Nathan
相关产品推荐
相关产品推荐

