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

Ms access 将查询条件链接到本地表中的值,ms-access,query-builder,Ms Access,Query Builder,我有一个包含数千行的5列表,需要能够对其进行筛选。在显示表格的表单Form1中,我有一个文本字段Value1,表格将只显示列0=Value1的行。如果Value1为空,将显示所有行 下面的代码是当前在我的查询生成器的“条件和/或”字段中使用的代码,非常有用: Like [Forms]![Form1]![Value1] & "*" IsNull([Forms]![Form1]![Value1]) 我的目标是让标准从表而不是表单中获取值。我创建了一个在Form1之前弹出的表单,允许您插入V

我有一个包含数千行的5列表,需要能够对其进行筛选。在显示表格的表单Form1中,我有一个文本字段Value1,表格将只显示列0=Value1的行。如果Value1为空,将显示所有行

下面的代码是当前在我的查询生成器的“条件和/或”字段中使用的代码,非常有用:

Like [Forms]![Form1]![Value1] & "*"
IsNull([Forms]![Form1]![Value1])
我的目标是让标准从表而不是表单中获取值。我创建了一个在Form1之前弹出的表单,允许您插入Value1,然后点击Search。然后该值进入[表1]![Value1]然后打开Form1并显示过滤结果。我正在成功地将Value1输入到表1中,但似乎无法使查询对[Table1]作出反应![1]。我尝试了几种不同的代码,下面的代码就是一个示例:

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

有什么建议吗?

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

Dlookup(“值1”、“表1”)

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

Dlookup(“Value1”、“Table1”、“TableFieldName=“&[Value])

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

Dlookup(“Value1”、“Table1”、“TableFieldName=”、[Value]&“”)

或者,如果条件值是日期

Dlookup(“Value1”、“Table1”、“TableFieldName=#“&[Value]&“#”)


另请参见以下文档:

只有在出于某种原因输入了值时,表格才会显示结果,否则表格将为空。要提供更多信息,用户可以输入3个值:值1、值2和值3。仅当输入所有3个值时,表格才会显示过滤结果。您应该能够输入一个值、两个值、三个值或无值,表格将相应地进行过滤。我试过“Like DLookUp”(“Value1”,“Table1”),“Like DLookUp”(“Value2”,“Table1”),“Like DLookUp”(“Value3”,“Table1”)”,每一个都在查询生成器中的相关列中。如果值是基于文本的,试着像Nz(DLookUp”(“Value2”,“Table1”),“)和“*”。本地表是否只包含一条记录(有三个字段)这就是连接的作用,不是吗?下面的DLookup方法适用于小表,但效率很低。它会在更大的桌子上爬死。