2012-01-29 39 views
6

我的SQL Server數據庫表中有一列需要使用MS Access文件中的數據更新。我如何查詢MS Access數據來執行此類更新?從SQL Server中,如何從MS Access數據庫讀取更新一個或多個表列中的數據?

導入嚮導似乎只處理插入新數據而不更新現有數據?或者我誤解了如何使用嚮導?

+0

這不是微不足道的;您必須在MSACCESS數據庫和SQL Server之間建立連接,並運行一些UPDATE查詢。 – 2012-01-29 18:09:49

+2

我認爲你是從錯誤的觀點開始的。我會在Access中編寫代碼來執行UPDATE。您可能需要從SQL Server中檢索數據,然後執行比較以識別應該更新的記錄。或者,查看SSIS(這裏是一個標籤)。 – DOK 2012-01-29 18:10:27

回答

4

首先在Windows中設置ODBC DSN。打開控制面板>管理工具>數據源(ODBC)。請注意,在64位Windows上,這可能會打開64位管理員。但是,您需要32位管理員(%windir%\ SysWOW64 \ odbcad32.exe)。

然後,您可以將SQL-Server錶鏈接到您的訪問數據庫。在「鏈接表」對話框中,選擇「ODBC數據庫()」作爲文件類型。

然後,您可以查詢鏈接的SQL Server表,就好像它們是訪問表一樣。

Configure Microsoft Access Linked Tables with a SQL Server Database

+0

嗯...在64位窗口,我認爲%windir%\ system32 \ odbcad32.exe是64位版本,而%windir%\ SysWoW64 \ odbcad32.exe應該是32位版本。 – 2013-11-25 18:03:35

+0

@OskarBerggren:你當然是對的。我糾正了它。 – 2013-11-25 21:17:34

7

聽起來像是你想從SQL Server端...「拉」的Access數據到SQL Server運行操作。如果是這樣,您可以將Access文件設置爲SQL Server中的鏈接服務器。我沒有這樣做,但已經閱讀過其他人擁有的案例。我從SQLServerPedia的How can I link a SQL Server database to MS Access using link tables in MS Access?複製這些步驟。

1) Open EM. 
2) Goto the Server to which you want to add it as linked server. 
3) Then goto security > Linked Servers section from console tree. 
4) Right click on the Client area. Then New Linked Server. 
5) Give a name and Specify Microsoft Jet 4.0 as Provider string. 
6) Provide the location of the MDB file. 
7) Click OK. 

或者,您可以從Access端運行操作,並將數據推送到SQL Server。如果這可能適用於您,請使用Olivier的說明來設置ODBC鏈接的SQL Server表。或者你沒有創建DSN:Using DSN-Less Connections

無論哪種方式,您鏈接表,從Access內運行,那麼可能是簡單的UPDATE聲明:

UPDATE 
    linked_table AS dest 
    INNER JOIN local_table AS src 
    ON dest.pkey_field = src.pkey_field 
SET dest.access_data = src.access_data 
WHERE 
    dest.access_data <> src.access_data 
    OR dest.access_data Is Null; 
相關問題