【发布时间】:2020-06-01 18:33:08
【问题描述】:
我有一个表格,带有一个数据表子表格。此子表单包含带有 WageDate 和 TipDate 的行。我有以下代码来过滤记录以显示 WageDate 落在该范围内的记录:
Private Sub btnDateRange_Click()
Dim Filter As String
Filter = "[WageDate] Between #" & Format(Me!TxtStartDate.Value, "yyyy\/mm\/dd") & "# And #" & Format(Me!txtEndDate.Value, "yyyy\/mm\/dd") & "#"
Me!sbfrm_qryDeliveries.Form.Filter = Filter
Me!sbfrm_qryDeliveries.Form.FilterOn = True
End Sub
我的问题是如何更改它,以便它同时过滤 TipDate,以便结果记录将是 WageDate 和 TipDate 都落在所选范围内的记录?记录可能不相等。也就是说,一条记录的 WageDate 可能超出范围,但 TipDate 却超出范围。
一旦我弄清楚了,有没有办法根据该日期选择性地对列进行求和?例如。假设我过滤了一个日期范围并返回了四个记录,其中两个具有符合条件的 WageDates,两个具有符合条件的 TipDates。 WageDate 和 TipDate 都在同一个数据表中。因此,如果我只对 Wage 和 TipAmount 列进行 SUM,我会得到一个总和,其中包括那些不真正属于的列中的数字。 TipAmount 列可能会出现金额,因为 WageDate 落在该范围内,但不在 TipDate 范围内。因此,我需要能够对仅在所选日期范围内的每一列中的行进行求和。我希望这不会太混乱。也许有比我拥有它的方式更好的方法来完全做到这一点,我不知道。哦,对于信息,子表单基于查询,工资和小费都在各自单独的表中。 tblWages, tblTips
【问题讨论】:
-
可以为字段和做条件表达式:
Sum(IIf(criteria here, [column], Null))。但如果记录集过滤器正确,则不需要。如果您希望两个字段都在给定的日期范围内,则对另一个字段重复 BETWEEN AND。编辑问题以显示示例数据和所需的输出。