2013-08-02 21 views
4

我可以將excel文件連接到自身,作爲MS Query工作的數據源。但是,只要我圍繞查詢移動文件,就會嘗試從網絡上以前的位置找到它,並且失敗。
我只想讓它嘗試和查詢自己。
我試圖從數據源中的連接字符串中刪除目錄路徑,但它只是錯誤。在Excel中使用MS Query來查詢自己(而不是外部源)

這甚至可能嗎?
或者還有更好的方法嗎?

回答

2

你可以使用VBA嗎?如果是這樣,您可以將代碼放在ThisWorkbook中以更新查詢字符串:

Sub UpdateQuery() 
    'This is just an example. Query must be changed accordingly 
    ThisWorkbook.Connections(1).ODBCConnection = "SELECT `Sheet1$`.a, `Sheet1$`.b FROM `" & ThisWorkbook.FullName & "`.`Sheet1$` `Sheet1$`" 
End Sub 

Private Sub Workbook_AfterSave(ByVal Success As Boolean) 
    If Success Then UpdateQuery 
End Sub 

Private Sub Workbook_Open() 
    UpdateQuery 
End Sub 
+0

是的我可以使用VBA,但在這種情況下,Excel從Querypoint生成。所以它不會工作。您的代碼似乎更改了SQL查詢,而不是實際的連接字符串或源文件位置。 – zoonosis

+0

我在'ODBCConnection'中沒有發現連接和查詢字符串之間的區別。不,這可能不會更改源文件 - 它不能,文件在Excel中打開!它只是在文件打開或保存時更新連接。 –

+0

這應該讀取「源文件位置」,而不是「或」。我談論的連接字符串是關於文件在計算機上的位置,例如c:\ my documents或d:\ data。如果我移動文件,查詢失敗。我需要一種方法來更新位置,或者只是查看文件當前所在的本地文件夾。 – zoonosis

相關問題