此Microsoft KB article详细说明了如何在除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中这样做是完美的。
答案 0 :(得分:1)
到目前为止,在MS Access中使用SQL Server的最简单方法是使用linked tables。但是,您也可以运行pass-through queries并引用内联连接:
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
答案 1 :(得分: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
。