2010-06-13 156 views
1

我使用Access和這個SQLSQL相結合的結果

SELECT land.id, land.official_name, vaksiner.vaksiner 
FROM land INNER JOIN (vaksiner INNER JOIN land_sykdom ON vaksiner.id = land_sykdom.sykdom)  ON land.kort = land_sykdom.land 
ORDER BY land.official_name 

的SQL給了我這樣的結果:

id official_name vaksiner 

1  a    A 
1  a    C  
2  b    A 
2  b    B 
2  b    C 

但我想,這樣它看起來的結果結合起來像這樣:

id official_name vaksiner 

1  a    A, C 
2  b    A, B, C 
+0

我還沒有下載它,但它看起來像它可能會做你所需要的? http://www.rogersaccesslibrary.com/forum/generic-function-to-concatenate-child-records_topic16.html – 2010-06-13 15:32:22

+0

如果您使用的是VBA或其他界面語言,那麼以過程語言來完成此操作可能會更容易。 – dkretz 2010-06-13 15:59:38

回答

1

見艾倫·布朗的ConcatRelated功能(Concatenate values from related records

如果您將現有查詢保存爲qryVaksinerRaw,則可以構建一個像這樣的新查詢來生成您所追蹤的結果。

SELECT DISTINCT 
    id, 
    official_name, 
    ConcatRelated("vaksiner","qryVaksinerRaw","id = " & [id]) AS vaksiner 
FROM qryVaksinerRaw; 

給函數添加到模塊,從網頁開始

Public Function ConcatRelated(strField As String, _ 

,並繼續包括

End Function 

然後將複製的文本粘貼到您的模塊複製功能。

注意ConcatRelated()然後將可用於從內部訪問運行的查詢。但是,像任何自定義VBA函數一樣,它不能用於從外部訪問運行的查詢(如經典ASP,.Net等)。

+0

我試過了,但我無法讓它工作。你如何將它添加到Access?我應該將哪些功能粘貼到模塊中(請參閱「如何使用功能http://allenbrowne.com/func-concat.html」的第3步)? – Newbie 2010-06-13 17:41:19

+0

謝謝,現在它可以工作! – Newbie 2010-06-13 18:59:26