用于Combobox过滤器的分组排序

时间:2011-08-17 18:58:16

标签: sql ms-access sorting vba combobox

我创建了一个基本的Combobox过滤器排序,可以通过我公司的公司区域进行排序(主要是Acronyns),我们称之为AOR或参考区域。定义AOR后,它会限制下一个组合框仅显示该特定AOR中的国家/地区,而不是过滤器排序。但是,我的问题是 - 当它在选择AOR后显示国家/地区 - 它会显示该特定国家/地区的所有记录,而不是仅显示1个国家/地区列表。

基本上,它不是对我的国家进行分组 - 当我选择通常只给我独特结果的“总计”时,这不起作用。

我的问题,如何重新编写此代码以包含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 By,但它没有GROUP)

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

提前感谢您阅读!

1 个答案:

答案 0 :(得分:0)

之前的答案是正确的,除了有一个having子句你需要使用聚合...所以只需使用where。

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

这应该可以解决你的问题。当你使用HAVING时它会查看你选择的内容,因为你没有选择AORID,它不知道该怎么做。