2012-09-26 111 views
0

此Microsoft KB article詳細說明如何在Access項目使用的當前數據庫上運行另一個數據庫上的查詢。但它只說明如何連接到DBase,Foxpro,Paradox,BTrieve和ODBC。MS Access VBA中的多個數據庫?

我希望能夠做這樣的事情:

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提供程序本機連接。我正在使用Access 2007.

在VBA中這樣做會很完美。

+1

你無法鏈接SQL Server表的任何原因? – Fionnuala

+0

@Remou我猜不行,之前沒有聽說過關聯表 - 你能詳細說一下嗎? (也許你可以修改你的答案)謝謝! –

回答

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

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 

又見http://www.connectionstrings.com/sql-server-2008

+0

我沒有可用的,也不想使用ODBC連接。 –

+0

鏈接表使用ODBC。 – Fionnuala

+0

我應該補充說,ODBC是推薦使用SQL Server的方法。 OleDB很快將不受支持(http://blogs.lessthandot.com/index.php/DataMgmt/DBProgramming/MSSQLServer/microsoft-sql-server-codename-denali) – Fionnuala