我在MainForm上有一个数据表作为子表单。当MainForm打开,并且应用了过滤器时,我试图收集有关过滤数据表的详细信息...然后(最终)逐行逐步通过数据表(通过.movenext,我推测):
无论如何,这是一个来自第二种形式(弹出/模态)的OnClick事件的快速测试:
If Forms!Mainform![Data subform].Form.FilterOn = True Then
msgbox "Filter is ON"
Forms!Mainform![Data subform].SetFocus
msgbox Forms!Mainform![Data subform].RecordCount
DoCmd.GoToRecord acDataForm, "Forms!Mainform![Data subform]", acFirst
msgbox Forms!Mainform![Data subform].Form.ItemID.value
Else
msgbox "Filter is OFF"
End If
当我尝试移动到第一条记录时,Access可以看到FilterOn = True,但是抱怨表单未打开(错误:2489)。 MainForm真的是开放的。
我假设我的子表单引用是罪魁祸首,但到目前为止,我的调整还没有奏效。
有任何想法可以提供帮助吗?
答案 0 :(得分:2)
Public Function mySelect()
Dim rstData As dao.Recordset
Set rstData = Forms!Mainform![Data subform].Form.RecordsetClone
msgbox rstData.RecordCount
rstData.MoveFirst
Do Until rstData.EOF
msgbox rstData.Fields(0) 'Field(0) = ItemID
rstData.MoveNext
Loop
End Function
我已经在同一个应用程序中执行recordsetclone操作,只是在略有不同的上下文中。疯了我错过了它。
无论如何,我很高兴。
感谢〜