加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql-server – 如何以非弃用的方式从VBA访问SQL Server?

发布时间:2021-04-03 00:46:14 所属栏目:编程 来源:网络整理
导读:似乎已弃用从VBA项目直接访问SQL Server数据库的所有方法: 带有ODBCDirect的DAO:Access 2007已经删除了支持. DAO通过JET:你不认真,对吧?无论如何,它是微软的considered obsolete. ADO与SQLOLEDB提供程序:Deprecated. ADO与SQL Server Native OLEDB提供程

似乎已弃用从VBA项目直接访问SQL Server数据库的所有方法:

>带有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位应用程序.

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读