数据库链接2个表,父表中的主键 [OrderID]
链接到子表中的 [OrderIDFK]
. 子表包含一个字段 [SerialNum]
以及其他详细信息(子表有自己的主键 [ProductsID]
这是一个序列号 . 我创建了一个名为 [Customers Query]
的查询,将两个表中的记录放在一起,我为ATF生成一页报告提交需要序列号 . 而不是像现在一样为查询中的每条记录创建1页报告(名为 "Form3"
),客户端希望在该字段中显示如"010001 - 010010"的范围 . 我的研究使我进入MIN和MAX以及FIRST和LAST参数,但是a)我不认为这是最好的,因为有些人说没有必要返回该范围的第一个和最后一个记录,并且b)我完全不知道如何写Access中的这个表达式 .
我假设逻辑将是这样的基本(非程序员)声明:
如果记录数等于1,则返回 SerialNum
,否则根据 ProductsID
字段中最小和最大编号值从第一个记录和最后一个记录返回 SerialNum
.
我正在使用Access 2013,而且,我使用以下宏来进一步将查询过滤到表单上的按钮中的当前记录,以便仅显示报告中的那些记录:
DoCmd.OpenReport "Form 3", acViewPreview, , "OrderID = " & OrderId
1 回答
如果您按查询逐个查询,则可以添加两列,如以下屏幕截图所示:
或者,如果您更喜欢这里是示例SQL:
Last和First选项将返回最后和第一个输入的值,这些值可能不是您想要的 .
您还可以使用域聚合函数作为报表上文本框的控件源,如下所示: