我有两种形式:" 工作表" (主要形式)和" 工作分" (子表格)。
我试图使用' afterupdate '使用名为 yrcheck 的未绑定文本框功能,通过 JbYr 字段过滤子表单的数据表视图。
请告诉我,这段代码有什么问题?
Private Sub yrcheck_AfterUpdate()
Dim yr As Integer
yr = Me.yrcheck
[Jobs sub].Form.Filter "JbYr='" & yr & "'"
[Jobs sub].Form.FilterOn = True
End Sub
我得到"无效使用财产"作为一个错误。
出了什么问题?
答案 0 :(得分:2)
告诉我们哪一行触发错误会很有帮助。既然你没有,我猜这一行是罪魁祸首......
[Jobs sub].Form.Filter "JbYr='" & yr & "'"
如果我的猜测是正确的,请在=
和字符串表达式之间加一个Filter
符号......
[Jobs sub].Form.Filter = "JbYr='" & yr & "'"
^
here
如果该JbYr
字段的数据类型为数字,请删除yr
的值之前和之后的单引号...
[Jobs sub].Form.Filter = "JbYr=" & yr
我也会通过Me
引用子窗体控件,类似于@Smandoli的建议,但我认为这不是原始错误的来源......
Me![Jobs sub].Form.Filter = "JbYr=" & yr
答案 1 :(得分:1)
也许这就是你引用子表单的方式。尝试:
Private Sub yrcheck_AfterUpdate()
Dim yr As Integer
yr = Me.yrcheck
Me![Jobs sub].Filter "JbYr='" & yr & "'"
Me![Jobs sub].FilterOn = True
End Sub
答案 2 :(得分:0)
非代码解决方案是保留此过滤器,只需在masterfields中包含文本框并展开子域:
[Id],[yrcheck]
[ParentID],[JbYr]
这也将删除用户删除此过滤器的选项。