我有一个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])
有什么建议吗?
答案 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