>带有ODBCDirect的DAO:Access 2007已经删除了支持.
> DAO通过JET:你不认真,对吧?无论如何,它是微软的considered obsolete.
> ADO与sqlOLEDB提供程序:Deprecated.
> ADO与sql Server Native OLEDB提供程序:Won’t be supported after SQL Sever 2012.
> ADO与用于ODBC的Microsoft OLE DB提供程序:Not supported:“用于ODBC的Microsoft OLE DB提供程序(MSDAsql)不支持sql Server Native Client.”
我错过了什么?从VBA访问sql Server数据库的官方,微软批准的方式是什么(毕竟,不推荐使用Office 2013中包含的官方开发语言)?
解决方法
What did I miss?
普通的旧ODBC.在Access以外的Office应用程序的VBA项目中,通过ADO进行ODBC是最直接的:
Sub AdoOdbcExample() Dim con As Object Set con = CreateObject("ADODB.Connection") con.Open _ "Driver={sql Server Native Client 11.0};" & _ "Server=.\sqlEXPRESS;" & _ "Database=myDb;" & _ "Trusted_Connection=yes;" con.Execute "UPDATE Clients SET FirstName='Gord' WHERE ID=5;" con.Close Set con = nothing End Sub
对于Access中的VBA项目,我们还可以选择使用ODBC链接表和通过ACE DAO传递查询,就像我们一直有
Sub DaoOdbcExample() Dim cdb As DAO.Database,qdf As DAO.QueryDef Set cdb = CurrentDb Set qdf = cdb.createqueryDef("") qdf.Connect = "ODBC;" & _ "Driver={sql Server Native Client 11.0};" & _ "Server=.\sqlEXPRESS;" & _ "Database=myDb;" & _ "Trusted_Connection=yes;" qdf.sql = "UPDATE Clients SET FirstName='Gord' WHERE ID=5;" qdf.ReturnsRecords = False qdf.Execute dbFailOnError Set qdf = nothing Set cdb = nothing End Sub
笔记:
> sql Server Native Client 11.0是sql Server 2014附带的版本(参考号:here).
>引用的Obsolete Data Access Technologies列表中说“DAO 3.6是该技术的最终版本.它不能在64位Windows操作系统上使用.”这是指Jet DAO(“Microsoft DAO 3.6对象库”).如果安装了64位版本的Access数据库引擎,则ACE DAO(“Microsoft Office 14.0 Access数据库引擎对象库”)确实可用于64位应用程序.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。