Dlookup一个字段决定另一个字段

时间:2019-06-20 18:22:43

标签: ms-access access-vba ms-access-2013

我有一个带有两个字段“发送类别”和“帐户”的表单。有一个名为PacingCategories的表,其中的列名为“ Category”(从中发送类别)和名为“ Account”的列。我正在尝试进行Dlookup。填写“发送类别”后,我需要“帐户”字段以自动填充相应的帐户。我花了2个小时研究并尝试使其正常工作,但由于某种原因它不会更新。

我尝试观看视频并在线阅读。我仍然不确定出了什么问题。

Private Sub Sending_Category_AfterUpdate()

Me.Account = DLookup("Account", "PacingCategories", "[Sending Category]=" & "Category")

End Sub

我没有收到任何错误消息。它只是不会自动填写“发送类别”之后的帐号。我知道这应该很容易。谢谢您的光临。马特

2 个答案:

答案 0 :(得分:0)

类别 [发送类别] 处于彼此的位置。另外,请勿将变量放在引号内。包括.Value并没有什么坏处,但不是必需的,因为它是数据控件的默认设置。

尝试:

Me!Account = DLookup("Account", "PacingCategories", "Category=" & Me![Sending Category])

如果类别是文本,请使用撇号定界符:

Me!Account = DLookup("Account", "PacingCategories", "Category='" & Me![Sending Category] & "'")

答案 1 :(得分:0)

当它只是一个Lookup时,为了使用vba,我通常将Dlookup放在控件的ControlSource中。我创建了一个非常简单的数据库来控制我的书,并在此处将其用作示例:

“选择作者”是一个选择作者ID的组合框(有一个带有作者ID(主键),给定名称和姓氏的“作者”表)。 更新“选择作者”组合框时,将自动填写文本框“作者给定名称”和“作者姓氏”。

enter image description here

在LastName和GivenName文本框的ControlSource上,放置Dlookup函数:

enter image description here

在那之后,我只使用Macro或VBA来更新“选择作者”组合框的整个表单(在我的情况下,我使用了Macro,因为它确实非常快速和简单): enter image description here

enter image description here

我喜欢将VBA保留用于繁重的数据操作,MS访问为简单的操作提供了快捷方式,我不介意使用它们。