У меня есть Datasheet как подчиненная форма моего MainForm. В то время как MainForm открыт и применяется фильтр, я пытаюсь собрать данные об отфильтрованном файле ... затем (в конечном счете) шаг через таблицу по строкам (через .movenext, я полагаю):MSAccess: Datasheet Properties (as subform) - Form Not Open, Err: 2489?
Во всяком случае, вот быстрый тест с помощью события 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
доступа может видеть, когда FilterOn = True, но жалуется форма не открыта (Err: 2489), когда я пытаюсь перейти к первой записи. MainForm действительно открыт.
Я предполагаю, что мои подформационные ссылки виноваты, но мои корректировки пока не сработали.
Любые идеи для оказания помощи, пожалуйста?
Я считаю, что проблема связана с именем объекта. т. е. у вас есть «Forms! Mainform! [Data subform]», но это буквальный текст, который, как я думаю, не решит объект во время выполнения. Плюс, так как ваш код находится в вашей подформе, я бы использовал «DoCmd.GoToRecord acDataForm, Me., acfirst –
Создание публичного элемента в MainForm для выполнения работы и вызова этого из всплывающих форм! MainForm.PublicSubName [args] будет отрицать взаимозависимость MainForm со всплывающей формой - то есть в будущем, если MainForm будет изменен, вам также не придется изменять всплывающее окно, если сам PublicSubName вызывает общедоступный суб, определенный в подформе как SubFormName.SubFormPublicSubName [args], тогда вы переместите логику в саму субформацию, где вы можете напрямую опросить свойства самого себя, и, если нужно, используйте непосредственное окно, чтобы понять, что происходит не так. –
Спасибо, Уэйн и Джон, я собирался поставить публичный Sub в MainForm, как вы заметили, но нашел, что метод RecordsetClone будет делать то, что мне нужно. Я не ожидал, что он обработает фильтрованный файл данных, как он. –