MS Access连接SQL Server如何实现自动登录无需手动输入凭证
解决方案
你遇到的是SQL Server ODBC连接的标准登录提示,可根据你的连接方式选择对应方案处理:
方案1:修改系统ODBC DSN配置(适用于用DSN连接的场景)
- 打开Windows的ODBC数据源管理器:如果你的Access是32位版本,需打开
C:\Windows\SysWOW64\odbcad32.exe;64位版本直接打开控制面板里的默认ODBC管理器即可 - 找到你连接SQL Server使用的DSN,点击「配置」
- 走到认证步骤时,选择使用SQL Server身份验证,使用用户输入的登录ID和密码,勾选「连接SQL Server以获取其他配置选项的默认设置」,输入正确的用户名和密码
- 后续步骤中找到「保存密码」选项,勾选保存密码后完成配置
- 重新打开Access刷新所有链接表,测试是否还会弹出登录框
方案2:更新链接表连接字符串嵌入认证信息(适用于无DSN的直连场景)
如果你的链接表没有绑定系统DSN,是直接通过连接字符串创建的,可运行VBA批量更新所有链接表的连接信息,示例代码如下:
Dim tdf As TableDef For Each tdf In CurrentDb.TableDefs ' 筛选所有ODBC链接表 If tdf.Connect <> "" And InStr(tdf.Connect, "ODBC;") > 0 Then ' SQL身份验证写法,替换为你的实际配置 tdf.Connect = "ODBC;DRIVER=ODBC Driver 17 for SQL Server;SERVER=你的SQL服务器地址;DATABASE=你的数据库名;UID=你的用户名;PWD=你的密码;" ' Windows集成身份验证写法,无需输入账号密码,确认当前Windows账号有SQL Server访问权限即可 ' tdf.Connect = "ODBC;DRIVER=ODBC Driver 17 for SQL Server;SERVER=你的SQL服务器地址;DATABASE=你的数据库名;Trusted_Connection=Yes;" tdf.RefreshLink End If Next
方案3:启动时自动预建连接(临时兼容方案)
如果不想修改现有链接配置,可在Access的AutoExec启动宏里添加VBA逻辑,启动时自动建立和SQL Server的连接会话,后续访问链接表就不会再弹登录框:
Dim conn As ADODB.Connection Set conn = New ADODB.Connection ' 连接字符串写法参考方案2 conn.Open "DRIVER=ODBC Driver 17 for SQL Server;SERVER=你的SQL服务器地址;DATABASE=你的数据库名;UID=你的用户名;PWD=你的密码;" ' 无需关闭连接,保持会话即可
注意事项
- 若近期更新过Office版本、SQL Server ODBC驱动版本,或是SQL Server端开启了强制加密、修改了认证策略,都会导致之前保存的凭证失效,优先确认驱动版本和正常运行时的版本一致
- 不要在共享的Access文件中嵌入明文密码,存在泄露风险,多人使用场景建议统一配置Windows集成认证
内容的提问来源于stack exchange,提问作者a.powell
相关产品推荐
相关产品推荐

