0

这篇 Microsoft知识库文章详细介绍了如何在 Access 项目当前使用的数据库之外的另一个数据库上运行查询。但是它只说明了如何连接到 DBase、Foxpro、Paradox、BTrieve 和 ODBC。

我希望能够做这样的事情:

UPDATE MSSQLDatabase.Table
    SET MSSQLDatabase.Table.Column = AccessDatabase.Table.Column
    WHERE MSSQLDatabase.Table.Column = AccessDatabase.Table.ID

INSERT INTO AccessDatabase.Table
    VALUES (AccessDatabase.Table.ID)

你能告诉我从哪里开始吗?我要连接的数据库是 SQL Server 2008 Provider Native 连接。我正在使用 Access 2007。

在 VBA 中执行此操作将是完美的。

4

2 回答 2

1

到目前为止,在 MS Access 中使用 SQL Server 最简单的方法是使用链接表。但是,您也可以运行传递查询并内联引用连接:

SELECT * FROM [ODBC;FILEDSN=Z:\Docs\Test.dsn;].table_1

或者

SELECT * FROM 
  [ODBC;DRIVER=SQL Server;SERVER=srvr;Trusted_Connection=Yes;DATABASE=Test;].table_1

或者

SELECT * FROM [ODBC;Driver={SQL Server Native Client 11.0};Server=svr;Database=test;Trusted_Connection=yes;].table_1

另见http://www.connectionstrings.com/sql-server-2008

于 2012-09-26T12:53:47.840 回答
0

此解决方案允许捕获错误:

Private Sub Command10_Click()
    On Error GoTo Err1:
        Dim cn As ADODB.Connection
        Set cn = New ADODB.Connection
        With cn
            .Provider = "SQL Native Client"
            .ConnectionString = "Server=myserver\myinstance;Database=mydb;Uid=myuser;Pwd=mypass;]"
            .Open
        End With

        MsgBox "Connection successful!"
        cn.Close
        Exit Sub

    Err1:
        MsgBox Err.DESCRIPTION
End Sub

唯一需要注意的是,在 Visual Basic 编辑器中,您必须先转到Tools > References,然后检查Microsoft ActiveX Data Objects 2.x Library.

于 2012-10-01T14:02:06.420 回答