【发布时间】:2015-01-17 18:59:54
【问题描述】:
我正在尝试通过使用表单上的复选框将过滤器应用于查询的 [Billed] 列,这是一个是/否字段。
这是背景故事:
我有一个时间表表 (tblTimesheet),其中包含 [Date]、[Job Number]、[Employee]、[Hours]、[Billed] 等信息。在为特定工作编号开票时,我为该工作生成一份报告,然后选中发票中包含的每条记录的 [已开票] 列中的框。
我查询了 tblTimesheet,然后基于该查询的 frmJobTime。我在表单上放置了一个未绑定的文本框以过滤报告(也基于查询)。因此,查询中 [Job Number] 下的条件如下所示:
[Forms]![frmJobTime]![txtJobNum]
它完美地工作。
这是实际问题:
我想通过向 frmJobTime 添加一个复选框来向 [Billed] 列添加一个类似的过滤器。在理想情况下,选中该框意味着报告仅显示该作业的 UNBILLED 记录,而未选中的框意味着所有记录(包括已开票和未开票)都显示在报告中。我无法让它工作。
我已经用谷歌搜索了一百万种不同的方法,但还没有接近弄清楚如何做到这一点。我什至将我的策略更改为使用文本框(就像我为 [工作编号] 所做的那样),以便您可以通过在表单上键入“False”来过滤未检查的记录。这可行,但如果文本框留空(我认为这意味着不会应用过滤器),则报告中根本不会出现任何记录。我也尝试在标准中编写 IIf() 语句,但我必须错误地编写公式。
编辑:(好的,让我们再试一次)这是 SQL:
SELECT tblTimesheet.Date, tblTimesheet.[Job Number], tblTimesheet.Expense, tblTimesheet.[Miles Traveled], tblTimesheet.[Project Description], tblTimesheet.Employee, tblTimesheet.Hours, tblTimesheet.[Billed?], tblTimesheet. [每小时总计],tblTimesheet.[里程总计],tblTimesheet.[GRAND TOTAL],tblTimesheet.Rate
FROM tbl时间表
WHERE (((tblTimesheet.[Job Number]) Like " * " & [Forms]![frmJobTimeFilter]![txtJobNum] & " * ") AND ((tblTimesheet.[Billed?])=[Forms]![frmJobTimeFilter] ![chkUnbilledFilter]));
这样做会返回所有真值(如果我选中该框)或所有假值(未选中框)。如何创建查看所有记录的选项?
有没有更好的方法来做到这一点?请帮忙!!外行的答复也将不胜感激。
【问题讨论】:
-
能否请您使用当前查询编辑您的帖子,以便我们为您提供适当的解决方案?
-
对不起,@PaulFrancis,我不明白你的意思。但我不能发布我的查询生成器的图片或附加文件,如果这是你要求的。
-
您可以将查询放入 SQL 视图中,并可以直接从那里获取您的书面查询。
-
我会编辑您的主要帖子并将其放在那里。你实际上可以在那里格式化它。评论不多。
-
感谢@Newd 的提示。该问题已被编辑。