MS Access中DSN-less连接字符串用于ADO连接时报错的解决求助
解决Access中DSN-less连接字符串在ADO连接时报错的问题
错误原因
你使用的连接字符串开头带有ODBC;前缀,这是Access TableDef对象专属的格式,ADO连接组件不识别该前缀,导致驱动无法被正确解析,从而抛出"Data source name not found and no default driver specified"错误。
另外,SQL Server Native Client 11.0是微软已弃用的驱动,对SQL Server 2019的兼容性不如新版ODBC驱动,建议替换为当前官方支持的驱动版本。
修正方案
方案1:移除ODBC;前缀(适配旧驱动)
直接修改连接字符串,去掉开头的ODBC;前缀即可:
Private Const CONNECTION_STRING = "Driver={SQL Server Native Client 11.0};Server=aaa;Database=bbb;Trusted_Connection=yes;"
修改后再执行ADO连接代码即可正常运行:
Set Conn = New ADODB.Connection Conn.ConnectionString = CONNECTION_STRING Conn.Open
方案2:更换为新版ODBC驱动(推荐)
将驱动替换为ODBC Driver 17 for SQL Server(微软官方推荐的当前支持版本,完美兼容SQL Server 2019),同时移除ODBC;前缀:
Private Const CONNECTION_STRING = "Driver={ODBC Driver 17 for SQL Server};Server=aaa;Database=bbb;Trusted_Connection=yes;"
该驱动支持更多SQL Server新特性,稳定性和兼容性更强,且不会被微软停止维护。若你的环境未安装此驱动,可自行搜索下载安装。
额外说明
原有的TableDef链接表代码无需修改,因为它必须依赖ODBC;前缀来识别ODBC连接类型。
内容的提问来源于stack exchange,提问作者ThomassoCZ
相关产品推荐
相关产品推荐

