【发布时间】:2023-03-17 16:40:02
【问题描述】:
我正在尝试像这样在 vba 中使用过滤器:
Private Sub Form_Load()
Me.Filter = "[Alvo] = " & AlvoAtual
Me.FilterOn = True
Me.Requery
End Sub
其中 AlvoAtual 是全局变量,但什么也没发生。当我将 AlvoAtual 更改为特定值时,也不会发生任何事情。像这样:
Private Sub Form_Load()
Me.Filter = "[Alvo] = 'AAAA'"
Me.FilterOn = True
Me.Requery
End Sub
有人知道这个问题吗?
我采用这个问题 (VBAWhatnow) 是希望它得到回答,而不是像 advised 那样重复。
我正在尝试做同样的事情,除了局部变量。
当我手动定义值时,我的过滤器工作正常,但当我引入变量时,过滤器不再工作
Forms![frmPendingActions]![qryPendingAction subform].Form.Filter = "Filterby = FilterCrit"
谁能帮我找到一个好的解决方案?
【问题讨论】:
-
这可能是一个错字,但
Me.Filter = "[Alvo] = " & AlvoAtual、Me.FilterOn = True和Me.Requery需要分行 -
@oracle 认证专家 在 Stackoverflow 中,除非您使用代码按钮、{} 或
,否则文本会如上所示。 -
您确定 Alvo 是记录源中的字段名称而不是控件名称吗?如果 Alvo 是文本,则需要引号,如第二个示例所示,但在第一个示例中未显示。 Access 2007 有一个新属性“FilterOnLoad”,您使用的是 >=2007 吗?
-
因为当你使用 me.fitler 和 me.filteron 时,你不需要 me.requiry 是值得的。
-
@VBWhatnow,原始海报:您能否提供更多代码以正确重现您的错误? (除非 HansUp 的回复已经对您进行了排序)