2016-02-29 91 views
3

我構建了一個數據條目UserForm來填充將用作原始數據庫的工作表。原始數據需要進一步的操作和分析才能被報告,所以我使用獲取外部數據>來自Microsoft Query> Excel文件建立數據庫連接,將其指向我已經在其中工作的文件,選擇了我想要的字段以及對那些我想要聚合的人進行基本功能。這將創建一個Excel表格,然後使用公式來完成分析。這對我很有效;我可以將條目添加到數據庫,刷新彙總表,添加新條目並自動填充公式。Excel內部數據庫連接

的問題是,沒有人可以刷新表,因爲它是在本地查找的文件。連接字符串是: DSN = Excel文件; DBQ = C:\用戶\ MYNAME \桌面\文件夾1 \ Results.xlsm; DEFAULTDIR = C:\用戶\ MYNAME \桌面\文件夾1; DriverId = 1046; MAXBUFFERSIZE = 2048 ;將PageTimeout = 5;

我有數據庫連接的一個非常基本的瞭解,但我需要這個文件是由我的同事的請求自動化成爲可能。我可以修復連接字符串,以便文件「靈活」並且可以在任何計算機上刷新?這是最好的解決方案嗎?如果沒有,我還能做什麼,不涉及下載額外的插件或第三方加載項?

+0

你有一個實際的數據庫連接到?因爲擁有本地機器上的所有內容不是一個好主意。 – durbnpoisn

+0

「數據庫」只是同一個Excel文件中的工作表。 – 406LQE

+3

您必須將原始數據分離爲獨立的網絡可訪問工作簿,然後將「工作」電子表格與用戶表單連接到公共「數據庫」。 – PeterT

回答

1

如果你需要的是一個包含原始數據(數據庫),並從數據庫中選取數據,並使用該數據連接到它的一個或多個Excel文件一個文件,你需要分割的兩件事情。您可以使用位於具有相應表的共享目錄上的訪問文件來執行數據庫,並且可以在該文件中重現用戶表單,以便在該文件中插入數據。然後你連接一個或多個excel文件(使用連接Mode = Share Deny None,這樣你就可以更新數據並同時從excel文件中使用它們),數據將被導入到表格中的文件中,在這裏你完成所有的工作你需要。

如果一個文件是夠你(你不需要有分離的行數據的數據庫,你不需要使用從同時在不同的位置中的文件),所有的問題是,如果文件是從與連接字符串中指定的位置不同的位置打開的,它不起作用......在這種情況下(似乎是這樣),我不知道爲什麼要使用到同一個文件的連接。
如果你需要的是用,只是創建它選擇的範圍內,你已經插入(Create a table - quick start guide)的數據,然後當你通過表單添加數據,而不是在「正常」行加入其中,增加工作表他們到WorkSheets("name").ListObjects("table_name").ListRows.Add之類的表中的新行,並將數據添加到新的表格行中。

+0

這很拖延,所以我很抱歉。你的第二個建議是一個好主意,我想如果我改進了UserForm中的VBA,我可以管理它,但是目前我必須使用SQL轉換原始數據以提供彙總表,這就是爲什麼我要設置數據庫連接到原始數據。 – 406LQE