2014-04-09 51 views
0

我創建了一個MS Access數據庫,該數據庫由大約25個ODBC數據庫鏈接組成,這些數據庫鏈接連接到每個數據庫上的一個表。每個表都有相同的結構,但數據不同。然後,我將這些表與一個查詢聯合起來,以便我可以在一個視圖中獲得所有數據。從MS Access中的事件運行VBA腳本

我遇到的問題是,每次嘗試使用報表軟件(Crystal Reports)的查詢時,都必須手動連接到所有25個數據庫,這非常繁瑣。

我做了一個VBA連接使用其日誌信息連接到每個數據庫的腳本,但我不知道如何從諸如打開查詢之類的事件觸發此代碼。

任何想法?

+0

VBA只能從辦公應用程序運行。 – RubberDuck

+0

@ ckuhn203我明白了。我正在談論MS Access,它是Office的一部分。 – jlaverde

+0

所以你有你的mdb文件與它的ODBC連接到25左右的表和你的聯合查詢在同一個mdb文件中可用,作爲'特定於sql'的聯合查詢......是嗎? –

回答

2

您需要在「外部數據」選項卡上重新鏈接Access數據庫中的表格。 當您進入「鏈接表」對話框時,請確保在單擊「確定」之前單擊「保存密碼」選項。這會將密碼信息存儲在鏈接表定義中。剛剛創建的鏈接表將以「TableName1」名稱引入。

在下一步中,請不要打開您的查詢。如果你不先完成這個步驟,它們將會中斷。

從Access數據庫中刪除您的原始鏈接表。然後,從新的鏈接表名稱中刪除「1」。這將有效地將您的原始鏈接替換爲擁有持久密碼信息的鏈接。

我不是100%肯定的,但我相信這會解決您的問題。我不相信在從Crystal Reports運行查詢時觸發vba或任何類型的宏的方法,因此您的ODBC憑據需要存儲在鏈接表定義中。

+0

保存密碼選項不會出現。這就是問題。 – jlaverde

+0

所以你沒有看到這個? http://www.fmsinc.com/MicrosoftAccess/cloud/linked-tables.jpg – RubberDuck

+0

我相信它的工作!我會測試一下,然後獎賞你的賞金。順便說一下,你知道如何以編程方式通過VBA設置這個「保存密碼」字段嗎?我可以通過VBA創建表,但我不確定在哪裏可以找到這個字段。 – jlaverde