首页 > 解决方案 > 新数据库的 DLOOKUP 语法错误问题

问题描述

我有一个包含 4 个表的数据库,但主要是一个转移表/表单 (DiversionT/F) 和一个回报表/表单 (PaybackT/F)。基本上,当我的程序将零件借给我组织中的其他程序时,会在 DiversionT 中创建一个转移。当程序想要回报时,他们会在 PaybackT 中创建一个回报条目。

我有一个令我感到困惑的问题:在 PaybackF 上,用户输入了他们想要偿还的 NSN(长部分代码)。最终,我希望某些表单能够根据输入的 NSN 自动填充零件信息。信息存储在 DiversionT 中。我在 PaybackF 上创建了几个文本框来显示信息。我尝试基于 NSN 自动填充的第一个文本框是一个名为 PartName 的文本框。它应该为该 NSN 搜索 DiversionT 并在 PaybackF 上填写适当的 PartName。在我输入的框的控制源中:

=DLookUp("[PartName]","[DiversionT]", "[PartName]=" & Forms![PaybackF]!NSN)

我收到以下错误:

您输入的表达式包含无效语法。

老实说,我还不太了解 VBA(直到现在我都在使用 C、C++、Java 和 Python),但在 Microsoft 网站上查找了该函数。

如果我不这样做,也请让我知道吗?

标签: formsms-accessms-access-2013

解决方案


您不能输入 VBA 来形成源代码管理等属性。VBA 仅用于 VBE 中的过程代码。话虽如此,有一个 DLOOKUP 函数可用于表单字段,语法类似。这是你困惑的一个原因。

数字的示例语法:

=DLookUp("[PartName]","DiversionT", "[PartName]=" & [NSN])

字符串的示例语法:

=DLookUp("[PartName]","DiversionT", "[PartName]='" & [NSN] & "'")

注意:我不知道您在哪个表格上,或者 NSN 是来自父表格还是子表格。基本上,NSN 需要从存在该文本字段的相同表单中读取。


推荐阅读