将查询条件链接到本地​​表中的值

时间:2019-04-05 14:17:43

标签: ms-access query-builder

我有一个5列的表格,其中包含成千上万的行,需要进行过滤。在显示表的窗体Form1中,我有一个文本字段Value1,该表仅显示列0 = Value1的行。如果Value1为空白,将显示所有行。

下面的代码是我的查询生成器的条件和/或字段中当前正在使用的代码,并且效果很好:

Like [Forms]![Form1]![Value1] & "*"
IsNull([Forms]![Form1]![Value1])

我的目标是让标准从表而不是表格中获取值。我创建了一个在Form1之前弹出的窗体,该窗体允许您插入Value1,然后单击Search。然后,该值进入[Table1]![Value1]然后打开Form1并显示过滤的结果。我已成功将Value1输入到Table1中,但似乎无法使查询对[Table1]做出反应![Vale1]。我尝试了一些不同的代码,下面的代码是一个示例:

Like [Tables]![Table1]![Value1] & "*"
IsNull([Tables]![Table1]![Value1])

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以使用DLookup函数从表中获取值,如下所示:

Dlookup("Value1","Table1")

如果表中只有一个值,这将很好地工作。如果表中有多个值并且需要特定值,则需要在Dlookup函数的第三个参数中添加一个过滤器。

Dlookup("Value1","Table1","TableFieldName=" & [Value])

,或者,如果条件值为字符串

Dlookup("Value1","Table1","TableFieldName='" & [Value] & "'")

或者,如果条件值是日期

Dlookup("Value1","Table1","TableFieldName=#" & [Value] & "#")

另请参见文档:https://docs.microsoft.com/en-us/office/vba/api/access.application.dlookup