Неверная ссылка на свойство формы подчиненной формы (ms Access 2007) - PullRequest
2 голосов
/ 17 февраля 2011

Я использую технику, аналогичную описанной в ответе Рему на на этот вопрос , для манипулирования свойствами элементов управления в подчиненной форме. Прекрасно работает , если в наборе записей родительской формы есть хотя бы одна запись . Если в родительской форме нет записей, я получаю:

Ошибка 2455, «Вы ввели выражение, которое имеет недопустимую ссылку на свойство Форма / Отчет».

Ошибка при попытке рекурсивного вызова. Упрощенная версия кода приведена ниже (я исключил обработку ошибок и еще пару случаев, включая Else). Этот код находится в модуле и вызывается из события Load большинства форм в моем приложении:

Public Sub LockUnlockForm(frmLoad As Form)

Dim ctl As Control

    For Each ctl In frmLoad.Controls
        With ctl
            Select Case .ControlType
                Case acTextBox, acComboBox, acCheckBox
                    .Locked = Not gblnAuthorized
                Case acSubform
                    LockUnlockForm .Form  '<--- this line errors
            End Select
        End With
    Next

End Sub

То, что я хочу сделать в форме, которая сейчас вызывает у меня проблему, - это создать новую запись на родительском уровне и позволить пользователю добавлять данные в подчиненную форму (если gblnAuthorized равно True, или задать простое значение). сообщение, если оно ложное). У меня нет другого выбора, кроме как сделать это до звонка LockUnlockForm? Будет ли создание новой записи уровня родительского уровня работать даже для предотвращения этой ошибки?

1 Ответ

10 голосов
/ 24 марта 2011

Определите количество записей для набор записей формы и запустить только для Каждый цикл, когда количество записей> 0.

Я отвечаю на это, чтобы другие пользователи с такой же проблемой могли легко определить ответ, который был предоставлен. И прошел месяц несвежий. Передайте кредит HansUp, если можете!

...