You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Access O365能否复用Excel的OLE DB连接串连接SQL AG监听器?

Access连接SQL Server AG监听器的连接串适配方案

问题背景

我用的是MS Access O365,之前靠无DSN连接(DSN-less)连SQL Server 2019的链接表。现在换成Availability Group(AG)监听器连接,在ODBC连接串里加了MultiSubnetFailover=Yes,但差不多一半时间会超时,直接连单服务器却100%成功。之前Excel用Microsoft OLE DB Provider连同一个监听器也遇到过类似问题,加了Connect Timeout=60;就正常了。现在有个能用的Excel连接串:

"Provider=MSOLEDBSQL;Data Source=MyServerListenerName,1234;Initial Catalog=MyDatabase;Integrated Security=SSPI;MultiSubnetFailover=Yes;Connect Timeout=60;"

想知道这个连接串能不能直接或者改一改给Access链接SQL表用?如果可以,具体怎么操作?

适配方案

这个Excel的OLE DB连接串改完就能给Access用,具体调整和操作步骤如下:

1. 连接串调整要点

  • 把外层的双引号去掉(Access链接表的连接串不需要这层引号)
  • 核心参数全部保留,调整后的最终连接串是:
    Provider=MSOLEDBSQL;Data Source=MyServerListenerName,1234;Initial Catalog=MyDatabase;Integrated Security=SSPI;MultiSubnetFailover=Yes;Connect Timeout=60;
    

2. 操作步骤(两种可选方式)

方式一:通过Access界面手动创建

  • 打开Access O365,点顶部的外部数据选项卡,选ODBC数据库
  • 在弹出的窗口里选链接到数据源创建链接表,点确定
  • 跳转到“选择数据源”窗口后,切到机器数据源标签,选<新数据源>,点下一步
  • 选用户数据源,点下一步,找到Microsoft OLE DB Driver for SQL Server(对应连接串里的MSOLEDBSQL驱动),点下一步完成数据源创建
  • 接下来在“连接到SQL Server”窗口里,输入AG监听器的名称加端口(比如MyServerListenerName,1234),选Windows身份验证,点下一步
  • 选中目标数据库MyDatabase,点下一步
  • 点窗口里的选项按钮,勾选MultiSubnetFailover,把登录超时改成60秒,点确定完成数据源配置
  • 最后回到链接表选择窗口,挑你要链接的SQL表,点确定就搞定了

方式二:用VBA代码批量/快速创建

按Alt+F11打开Access的VBA编辑器,运行下面的代码(记得把占位符换成你自己的信息):

Sub CreateAGLinkedTable()
    Dim db As Database
    Dim tdf As TableDef
    Dim connStr As String
    
    Set db = CurrentDb()
    ' 用调整后的连接串
    connStr = "Provider=MSOLEDBSQL;Data Source=MyServerListenerName,1234;Initial Catalog=MyDatabase;Integrated Security=SSPI;MultiSubnetFailover=Yes;Connect Timeout=60;"
    
    ' 创建链接表定义,替换成你想要的本地链接表名
    Set tdf = db.CreateTableDef("MyLinkedTable")
    tdf.Connect = connStr
    ' 替换成SQL Server里的真实表名
    tdf.SourceTableName = "SQLServer_TableName"
    
    ' 把链接表添加到当前数据库
    db.TableDefs.Append tdf
    
    MsgBox "链接表创建成功!"
End Sub

3. 注意事项

  • 要确保你的Access客户端已经装了Microsoft OLE DB Driver for SQL Server(MSOLEDBSQL驱动),没装的话得先下载安装对应版本
  • 如果还是超时,可以试试把Connect Timeout调得更长一点,比如90秒
  • 优先用OLE DB连接而不是ODBC,AG监听器的多子网故障转移在OLE DB驱动下兼容性更好

内容的提问来源于stack exchange,提问作者Todd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 23:03:15