2011-08-17 39 views
0

我已經創建了基本的Combobox篩選器排序,通過我公司的公司區域進行排序(主要是Acronyns),我們將這些篩選器稱爲AOR's或Area of​​ Reference。定義你的AOR之後,它會限制下一個組合框在特定的AOR中只顯示國家,而不是過濾器排序。但是,我的問題是 - 在選擇AOR後顯示國家/地區時,它顯示所有國家/地區的所有記錄,而不是僅顯示1個國家/地區列表。Group By for Combobox Filter Sort

基本上,它不是對我的國家進行分組 - 當我選擇通常只給出獨特結果的「總計」時,這是行不通的。

我的問題,我如何重新編寫這段代碼來包含一個Group By?

我的代碼:

Private Sub cboRegion_AfterUpdate() 
    ' Region -> Country 
    Dim sManagerSource As String 
    sManagerSource = "SELECT [FullEmail].[AORID], [FullEmail].[ID], [FullEmail].[Country] " & _ 
        "FROM FullEmail " & _ 
        "WHERE [AORID] = " & Me.cboRegion.Value 
    Me.cboCountry.RowSource = sManagerSource 
    Me.cboCountry.Requery 
End Sub 

我的SQL語句看起來是這樣的(它有集團通過它,但它並不GROUP)

SELECT FullEmail.AORID, FullEmail.ID, FullEmail.Country 
FROM FullEmail 
GROUP BY FullEmail.AORID, FullEmail.ID, FullEmail.Country 
HAVING (((FullEmail.AORID)=1)); 

預先感謝通過閱讀!

回答

0

上一個答案是正確的,除了有條款你需要使用聚合...所以只是用在哪裏。

SELECT Country 
FROM FullEmail 
WHERE AORID=1 
GROUP BY Country; 

這應該可以解決你。當你使用HAVING時,它會查看你選擇的內容,因爲你沒有選擇AORID,它不知道該怎麼做。

+0

我輸入這個作爲我的SQL語句,沒有任何改變。也許我在我的解釋中錯過了一些東西,或者我不正確地解釋了我的問題? – Colin

+0

你可能忘記用「AORID =」和Me.cboRegion.Value替換WHERE AORID = 1嗎? – misterManager

+0

也有可能數據沒有被記錄完全相同,每次...嘗試說選擇修剪(國家)和GROUP BY修剪(國家) – misterManager