0

尝试将子表单过滤器传递给子报表但没有成功。

Dim strFilt As String

If Not IsNull(Forms!TblMain2![QryProceduresDone subform].Form.Filter) Then
        strFilt = Forms!TblMain2![QryProceduresDone subform].Form.Filter
        Me![QryProceduresDone subreport].Filter = strFilt
        Me![QryProceduresDone subreport].FilterOn = True
End If

我目前将表单的过滤器毫无问题地传递给主报告。

我知道我不能把上面的代码放在打开事件中,我试图把它放在那里和 On Load 事件中,但是得到错误“对象不支持这个属性或方法”。有 Me![QryProceduresDone subreport].Filter = strFilt 的行发生错误

任何建议都非常感谢。

提前致谢。

4

1 回答 1

0

首先, Filter 属性是一个字符串,因此它永远不会是Null

其次,请记住,子表单/子报表的打开顺序是三个:

  1. 子报告(初始)
  2. 家长报告
  3. 子报告(最终)

因此,在 OnOpen 事件中设置 MsgBox 或 Debug.Print 行进行观察。

粗暴但简单的方法可以是插入代码以在子报表的初始打开时忽略错误。

于 2020-07-13T11:23:34.930 回答