我將數據有問題地插入表中。當我從另一張桌子上做到這一點時,它很快捷,如果有很多記錄,只會略微減慢。即便如此,這只是幾秒鐘的事情。將查詢中的數據插入到表中時,插入的每個記錄是否都運行查詢?
當我從查詢插入表時,它進入分鐘 - 每插入一千條記錄大約一分鐘。
源查詢本身在作爲select查詢運行時,可能需要1-2秒。查詢是否爲每個插入的記錄運行?我希望它能爲整個數據集運行一次。或者,與插入另一個表中的「平坦」數據相比,導致該功能運行速度非常慢的其他因素。
我使用的VBA是相當無害:
CurrentDb.Execute "SELECT [Extra Value Concatenation].* _
INTO [" & strTableName & "] FROM [Extra Value Concatenation];"
和源查詢低於 - 它使用Allen Browne's Concatenate function。
SELECT [Extra Fields - Fee Protection Insurance Concatenate].ContactID,
ConcatRelated('[Fee Protection Insurance]',
'[Extra Fields - Fee Protection Insurance Concatenate]',
'ContactID = ' & [ContactID])
AS [Fee Protection Insurance]
FROM [Extra Fields - Fee Protection Insurance Concatenate];
編輯:在回答Fionnuala的評論,但我無法正確地在評論中格式化。
使用虛構數據,這裏大概是我想要的。
T1包含客戶記錄。
ContactID Name
1 Example Limited
2 Another Company Limited
T2包含額外的字段。 ContactID作爲外鍵存在,並且如果存在多個記錄,則可以重複。
ContactID FieldValue
1 Value 1
1 Value 2
2 Value 3
2 Value 4
2 Value 5
當我離開聯接表,從T2的重複出現,所以我得到
ContactID Name FieldValue
1 Example Limited Value 1
1 Example Limited Value 2
2 Another Company Limited Value 3
2 Another Company Limited Value 4
2 Another Company Limited Value 5
當我要的是
ContactID Name FieldValue
1 Example Limited Value 1; Value 2
2 Another Company Limited Value 3; Value 4; Value 5
因此串聯在一個臨時的數據表似乎是一個好主意,但是會放慢一切。有另外一種方法我應該查看我的查詢嗎?
您使用用戶定義函數(UDF)ConcatRelated,所以UDF運行的每個記錄,否則,通常不會。 – Fionnuala
謝謝@Remou - 是的,我是,這是Concatenate位。有沒有辦法解決? – BFWebAdmin
除了避免UDFs,如果你需要速度,不,沒有辦法解決。爲什麼你想連接?這幾乎總是一個壞主意。 – Fionnuala