【发布时间】:2018-06-15 19:03:43
【问题描述】:
我一直在寻找答案,我已经在每一个变量、引号、表单引用以及我能想到的让这个 DLookup 工作的所有内容中进行了调整。这是我在这里尝试做的背景信息:
PrimaryRouteID = 短文本数据(此查找中的关键角色)
SignSumtxt & SqFtSumtxt = 我希望我的 DLookup 值显示的文本框(通过更改 VBA 中的控制源)
PrimaryRoadInventoryTotals = 包含我想要的相关信息的查询
PrimaryRoadInventoryMaster = 嵌套在导航表单中的表单(要使用的主表单)
我将在此处解释其余部分:我正在设计一个 DLookup 函数,该函数使用从嵌套在导航表单中的表单上的文本框中获取的 PrimaryRouteID 查找 PrimaryRoad InventoryTotals 查询中的数量。这个 DLookup 本身在表单中起作用,但我一直在努力修复它以在导航表单中工作。
据我了解,由于我已将 MasterForm 放在 NavForm 中,因此它现在嵌套在 NavSubform 中,并且您必须引用 NavSubform 中的值,而不仅仅是您正在使用的表单。我似乎有找到了正确的语法(我认为)来获取我想要的值,但是我的 DLookup 仍然不能像它需要的那样运行。在下面的版本中,分配了 DLookups 的两个文本框都有 #Name?错误。我一辈子都不知道该怎么办!
代码(分开以便于查看):
Private Sub RouteSelectCombo_AfterUpdate()
SignSumtxt.ControlSource = DLookup("[TotalQuantity]", "[PrimaryRoadInventoryTotals]", "[PrimaryRoadInventoryTotals]![PrimaryRouteID] ='" & [Forms]![NavigationForm]![NavigationSubform].Form![PrimaryRouteIDtxt] & "'")
SqftSumtxt.ControlSource = DLookup("[TotalSqFt]", "[PrimaryRoadInventoryTotals]", "[PrimaryRoadInventoryTotals]![PrimaryRouteID] ='" & [Forms]![NavigationForm]![NavigationSubform].Form![PrimaryRouteIDtxt] & "'")
End Sub
我注意到一件奇怪的事情,并且可能表明这里出了什么问题,那就是当我将此代码嵌套到 msgbox 中时,它会读取“true”或“false”。不知道这是否有帮助,但我想我会提到它。
我很感激!
【问题讨论】:
-
这个问题真的令人困惑。
-
是的,我重新阅读了你的问题,无论你想做什么,你都需要找到一种方法来做到这一点更简单。 @ 987654322@ 只是意味着您的绑定错误,但是这里的相关信息太少,不相关的信息太多,无法将这些点联系起来。
-
我要做的就是让 Dlookup 根据导航表单内的表单上的文本框值从查询中获取值。我试图让它听起来很清楚,但我想它不是那样的。我可以提供哪些更相关的信息?
-
把它分解成碎片,你可能会有一个战斗的机会。获取对导航表单的引用。从该参考中获取文本框。从文本框中获取值。使用该值运行查询。从查询结果中获取所需数据。将所有内容包装在自定义查找函数中并返回结果数据。
-
因此,与其使用复杂的 DLookup,不如创建一个函数来根据该文本框值更改查询条件,然后只查找结果过滤值?