访问 2003 年报告详细信息
Posted
技术标签:
【中文标题】访问 2003 年报告详细信息【英文标题】:Access 2003 Report detail 【发布时间】:2015-10-28 19:03:02 【问题描述】:我有两个要从中创建报告的表。一个是Orders,键名为OrderID。 我有另一个名为 Parts 的表,也包含 OrderID。他们也有关系。在我的订单表单上,我有一个列表框并根据两个 OrderID 填充它。
现在,我有一个数据源为订单的报告。我还添加了一个列表框并将 Row Source/Type 设置为指向我的 Parts 表的 Table/Query。但是,当我将两个 OrderID 的条件设置为匹配以显示在每个订单的相应部件上时,它只会在 first 详细信息中选择订单,并为每个连续的详细信息重复它。如何让列表框仅显示两个 OrderID 匹配的位置> Code used Report results
【问题讨论】:
【参考方案1】:考虑使用子报表。步骤如下:
-
单独创建一个较小的零件报告,其中包含仅绑定到
Parts
表的所有列出的字段(PartNumber
、PartDescription
、PartQty
等)。确保不要在此子表单的页眉/页脚中放置任何控件(因为它们不会显示在主报表上)。将字段标题放在此子报表的报表标题部分。
然后,在您的主订单报告中展开详细信息部分,并将“零件”子报告放在记录下方,就像您的屏幕截图一样。子表单是控制部分中靠近最后的报纸图标,它自动执行漫游向导 - 在 AC2003 .mdb 文件中可能略有不同。
在向导中,选择上面创建的 Parts 子报表并确认父表单和子子表单之间匹配的OrderID
。如果设置了关系,则应自动链接匹配的键,等待用户确认。
执行此操作后,您的原始主报告现在将正确对齐 Order 表中每个不同的 OrderID
的 Orders
和 Parts
。
【讨论】:
呃。我创建了带有零件子表单的订单表单。我为报告考虑到了这一点吗?以林换树……感谢您的建议。【参考方案2】:需要一些 VBA 来做到这一点,或者基于查询。这里的关键是您需要在 OrderID 上将表INNER JOIN 相互连接。此外,添加 DISTINCT 限定符只会返回唯一值,从而消除欺骗。所以,像这样(需要根据您的实际表名和字段名进行更改):
SELECT DISTINCT Orders.OrderID
FROM tblOrders Orders
INNER JOIN tblParts Parts
ON tblOrders.OrderID = tblParts.OrderID
然后,如果您要查找特定订单,则可以通过添加 WHERE 子句对其进行过滤。
【讨论】:
谢谢,我刚刚使用了 Parfait 提到的一个子报告,因为它也会为另一个报告加倍,所以它已经解决了。以上是关于访问 2003 年报告详细信息的主要内容,如果未能解决你的问题,请参考以下文章
VS 2003 CrystalReports - 详细信息部分问题
HCIE-Routing & Switching面试之OSPF在建立邻接过程中通告的LSA的详细信息
没有足够的可用内存来更新显示。关闭不需要的程序,然后重试。访问 2013 年报告