我有一个允许用户为“ACFTsn”选择值的子表单我想对名为“Logbook”的表应用过滤器,其中“sn”(表中的字段)= ACFTsn 以下内容附加到子表单上的按钮
Me.Form.Filter = "table![Logbook].SN=me.ACFTsn"
Me.FilterOn = True
DoCmd.openreport "logbook", acViewReport, Filter
当我单步执行代码时,我收到的错误3071 /表达式输入不正确或太复杂而无法评估。
我确信存在语法错误,因为这是我第一次使用VBA过滤器,我不确定这是将它应用于报告的正确方法。
答案 0 :(得分:2)
或者,您可以使用ApplyFilter方法甚至SetFilter(对于MS Access 2010 +):
Dim strfilter As String
strfilter = "[SN] = '" & Me!ACFTsn.Value & "'"
DoCmd.ApplyFilter , strfilter ' FILTERS FORM
DoCmd.OpenReport "logbook", acViewReport, strfilter ' FILTERS REPORT
答案 1 :(得分:1)
应该这么简单:
Me.Filter = "[SN] = '" & Me!ACFTsn.Value & "'"
Me.FilterOn = True
如果SN不是字符串:
Me.Filter = "[SN] = " & Me!ACFTsn.Value & ""
Me.FilterOn = True
在报告上应用相同的过滤器:
DoCmd.openreport "logbook", acViewReport, , Me.Filter