首页 文章

除非单击,否则MS Access报告未绑定DLookup不会更新

提问于
浏览
0

我必须在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种工作方法可以查找关键数据 . 但问题是,让它实际检索值(如果有的话)的唯一方法是单击报表上的每个键数据文本框 . 我尝试了许多不同的requery / update方法,并使用VBA检索值并将其植入文本框中 . 这些都不能正常工作,如果有的话,它们会为报告中的所有记录分配相同的值 . 我知道Access在很多方面受到限制,但在转换到真正的开发之前我必须使用它几个月 . 有没有人知道如何在报告加载后立即更新此dlookup函数,并且每当刷新它时?或者我应该废弃它并使用像报告一样设计的连续形式?

谢谢,

马特

1 回答

  • 0

    我实际上刚刚找到了解决方案 . 我之前已经尝试过这种语法,但无济于事,但在安装了最新的Office更新并重新启动之后,这个工作正常 .

    =DLookUp("[CurrentlyOutTo]","[KeyTrakExport]","[Stock#]=  '" & [Reports]!    [TestInvtReport]![Stock#] & "'")
    

相关问题