我正在尝试使用文本框过滤子表单。
我有一个查询来显示子表单中的表记录,我有筛选表的条件,但是当我键入文本框来过滤子表单时,它只显示一个具有该名称的记录。我需要它来告诉我所有的名字。
我的查询标准如下。
Like "*" & [Forms]![frmPlanningForecast]![FETextbox].[Text] & "*"
然后我在文本框上有一个OnChange事件来重新查询子表单。
如上所述,我需要它向我展示所有与我输入的内容相匹配的记录,而不只是一个。
当我在表格本身中使用过滤器选项(字段标题上的下拉框)并从那里选择过滤器时,它的效果很好。但我需要将其输入文本框。
答案 0 :(得分:1)
首先在Like
参数:
Like "'*" & [Forms]![frmPlanningForecast]![FETextbox] & "*'"
和第二个 - Access有一个旧的错误:如果你像查询一样在查询中引用表单字段,它没有更新值,在Requery期间用于标准,你总是会收到相同的结果。解决方法 - 通过全局函数替换对字段的引用,该函数返回文本框值或使用动态生成子窗体的RecordSource。
全球职能范例:
Public Function GetFE() As Variable
GetFE = [Forms]![frmPlanningForecast]![FETextbox]
End Function
将其放在任何标准VBA模块中。那么您的Like
将如下所示:
Like "'*" & GetFE() & "*'"
答案 1 :(得分:0)
我发现了一种更简单的方法,只是想让别人知道。
我没有使用标准,而是使用了以下vba代码。
DoCmd.ApplyFilter , (FETextbox = qryPlannedHours.LeadFE), SubFormPF