【发布时间】:2015-04-23 17:22:36
【问题描述】:
我必须在 Access 2013 报表中使用未绑定的文本框,因为虽然我要查找的数据在相关表中,但子表中可能没有匹配的记录。
基本上,我有一个主库存表,它有一个主键和一个唯一索引“Stock#”。此表有与该单个库存号相关的数据,另外还有 5 个相关表,其中包含与该库存号相关的其他数据,例如成本、销售额、位置等。当在主表中创建库存记录时,在 4 个表中创建了一条子记录,其中包含一些基本的初始数据,并且它们都以一对一的关系锁定。尽管我使用了未绑定的表单,但我选择了这样的结构数据以避免记录锁定冲突,并提高多用户环境中的性能。
这是我的问题:
我正在设计一份库存快照报告,其中包含来自所有五个表的数据。不使用库存记录创建具有一对一关系的表之一。它来自外部来源(密钥跟踪机器)。问题是,有时数据库中可能存在库存编号,但它还没有进入关键机器。在大多数情况下没什么大不了的,除非在设计绑定报告时。我绑定报表的查询从所有库存表中选择数据,包括关键数据表。假设库存表中有 200 个库存编号,其他 4 个表中有 200 个相同的记录。然而,关键数据表只有 195 条记录。这意味着该报告将仅选择所有五个表(195 条记录)中都存在完全匹配的库存编号和相关数据。我的解决方案是在未绑定的文本框中创建一个 dlookup,语法如下:
=DLookUp("[KeyTrakExport]![CurrentlyOutTo]","[KeyTrakExport]"," [KeyTrakExport]![Stock#]= " & Chr(34) & [Reports]![TestInvtReport]![Stock#] & Chr(34))
我已经尝试了很多变体,有和没有 Chr(34),并且至少有 5 种工作方法来查找关键数据。但是,问题是,让它实际检索值(如果有)的唯一方法是单击报告上的每个关键数据文本框。我尝试了许多不同的重新查询/更新方法,并使用 VBA 检索值并将其植入文本框中。这些都不能正常工作,如果有的话,它们会为报告中的所有记录分配相同的值。我知道 Access 在很多方面都受到限制,但我必须使用它几个月才能切换到真正的开发。有谁知道如何在报告加载后立即更新此 dlookup 函数,并且每当它刷新时?还是我应该放弃它并使用设计为类似报告的连续表单?
谢谢,
马特
【问题讨论】:
标签: ms-access vba ms-access-2013