使用文本框过滤子表单 table
Filter subform table with textbox
我正在尝试使用文本框过滤子表单。
我有一个要在子表单中显示 table 记录的查询,我有过滤 table 的条件,但是当我在文本框中键入内容以过滤子表单时,它只显示我一张有那个名字的唱片。我需要它来显示所有的名字。
我的查询条件如下。
Like "*" & [Forms]![frmPlanningForecast]![FETextbox].[Text] & "*"
然后我在文本框上有一个 OnChange 事件来重新查询子表单。
如上所述,我需要它向我显示与我输入的内容匹配的所有记录,而不仅仅是一个。
当我在 table 本身(字段 header 上的下拉框)和 select 过滤器中使用过滤器选项时,效果很好。但我需要将其输入文本框。
附上的图片会告诉你我的意思,我在文本框中输入了 "EQ",但当他们在 [=31= 上调用 "EQ" 时,它只返回了 1 条记录].
首先在Like
参数周围添加单引号:
Like "'*" & [Forms]![frmPlanningForecast]![FETextbox] & "*'"
其次 - Access 有一个老错误:如果您像以前一样在查询中引用表单字段,它不会更新值,在重新查询期间用于条件,您总是会收到相同的结果。解决方法 - 用全局函数替换对字段的引用,returns 文本框值或为子表单使用 RecordSource 的动态生成。
全局函数示例:
Public Function GetFE() As Variable
GetFE = [Forms]![frmPlanningForecast]![FETextbox]
End Function
将它放在任何标准 VBA 模块中。那么你的 Like
将如下所示:
Like "'*" & GetFE() & "*'"
我找到了一个更简单的方法,只是想让其他人知道。
我没有使用标准,而是使用了以下 vba 代码。
DoCmd.ApplyFilter , (FETextbox = qryPlannedHours.LeadFE), SubFormPF
我正在尝试使用文本框过滤子表单。
我有一个要在子表单中显示 table 记录的查询,我有过滤 table 的条件,但是当我在文本框中键入内容以过滤子表单时,它只显示我一张有那个名字的唱片。我需要它来显示所有的名字。
我的查询条件如下。
Like "*" & [Forms]![frmPlanningForecast]![FETextbox].[Text] & "*"
然后我在文本框上有一个 OnChange 事件来重新查询子表单。
如上所述,我需要它向我显示与我输入的内容匹配的所有记录,而不仅仅是一个。
当我在 table 本身(字段 header 上的下拉框)和 select 过滤器中使用过滤器选项时,效果很好。但我需要将其输入文本框。
附上的图片会告诉你我的意思,我在文本框中输入了 "EQ",但当他们在 [=31= 上调用 "EQ" 时,它只返回了 1 条记录].
首先在Like
参数周围添加单引号:
Like "'*" & [Forms]![frmPlanningForecast]![FETextbox] & "*'"
其次 - Access 有一个老错误:如果您像以前一样在查询中引用表单字段,它不会更新值,在重新查询期间用于条件,您总是会收到相同的结果。解决方法 - 用全局函数替换对字段的引用,returns 文本框值或为子表单使用 RecordSource 的动态生成。
全局函数示例:
Public Function GetFE() As Variable
GetFE = [Forms]![frmPlanningForecast]![FETextbox]
End Function
将它放在任何标准 VBA 模块中。那么你的 Like
将如下所示:
Like "'*" & GetFE() & "*'"
我找到了一个更简单的方法,只是想让其他人知道。
我没有使用标准,而是使用了以下 vba 代码。
DoCmd.ApplyFilter , (FETextbox = qryPlannedHours.LeadFE), SubFormPF