我之前解决了这个问题。不幸的是,我最难记住我的解决方案。
我有三个组合框,其中一个(季度)用户可以选择留空。所有三个组合框都附加到查询中的字段。每个字段都设置为执行分组依据(案例管理器,会计年度,季度)。如果Quarter的组合框不为空,则查询会正确过滤。它为案例管理器,会计年度和季度执行分组。
当Quarter的组合框留空时,查询应该只按Group By Case Manager和Fiscal Year分组。目前它也在季度上执行Group By。
这是查询的SQL:
SELECT tblCM.CM, tblFY.FiscalYear, tblQtr.Quarter, Count(tblData.CaseNum) AS CountOfCaseNum,
Avg(tblData.[DaysToNotifySite-CompleteCalc]) AS [AvgOfDaysToNotifySite-CompleteCalc],
Avg(tblData.[Days to Contact Site]) AS [AvgOfDays to Contact Site],
Avg(tblData.DaysToHoldMedAfterOrder) AS AvgOfDaysToHoldMedAfterOrder,
Avg(tblData.DaysToHoldMed) AS AvgOfDaysToHoldMed,
Avg(tblData.DaysToIssueDGODec) AS AvgOfDaysToIssueDGODec,
Avg(tblData.DaysToCloseAfterDecRecdByNRC) AS AvgOfDaysToCloseAfterDecRecdByNRC,
Avg(tblData.DaysToCloseCase) AS AvgOfDaysToCloseCase
FROM tblQtr INNER JOIN (tblFY INNER JOIN (tblCM INNER JOIN tblData ON tblCM.CM = tblData.[CMNames-Corrected])
ON tblFY.FiscalYear = tblData.FiscalYearFilingForm) ON tblQtr.Quarter = tblData.QtrFilingFormRec
WHERE (((tblData.Type)<>"DRA"))
GROUP BY tblCM.CM, tblFY.FiscalYear, tblQtr.Quarter
HAVING (((tblCM.CM)<>"Doe, John" And (tblCM.CM)=[Forms]! [frmIndividualGoals]![cboCM])
AND ((tblFY.FiscalYear)=[Forms]![frmIndividualGoals]![cboFY])
AND ((tblQtr.Quarter)=IIf([Forms]![frmIndividualGoals]![cboQtr]<>'',[Forms]![frmIndividualGoals]![cboQtr])))
OR (((tblCM.CM)<>"Doe, John" And (tblCM.CM)=[Forms]![frmIndividualGoals]![cboCM])
AND ((tblFY.FiscalYear)=[Forms]![frmIndividualGoals]![cboFY])
AND (([Forms]![frmIndividualGoals]![cboQtr]) Is Null));
SELECT语句没问题。我当然可能错了。但是,我相信我的问题出现在最后一个AND语句中。但是,我提供了所有SQL以供参考。
目前我只是使用命令按钮在组合框中进行选择后打开查询以测试结果。
感谢您提供任何人可以提供的帮助。