Доступ к VBA sub с формой в качестве параметра не изменяет форму - PullRequest
1 голос
/ 21 апреля 2010

У меня есть файл Microsoft Access 2003 с различными таблицами данных. Каждая таблица также имеет дубликат этого файла с именем «[оригинальное имя таблицы] _working». В зависимости от выбора пользователя на коммутаторе, форма, которую пользователь выбирает для просмотра, должна переключить свою таблицу источника записей на рабочую таблицу. Сегодня я переработал соответствующий код, чтобы сделать это в следующей функции:

Public Sub SetFormToWorking(ByRef frm As Form)
    With frm
        .RecordSource = rst![Argument] & "_working"
        .Requery

        Dim itm As Variant
        For Each itm In .Controls
            If TypeOf itm Is subForm Then
                With Item
                    Dim childFields As Variant, masterFields As Variant

                    childFields = .LinkChildFields
                    masterFields = .LinkMasterFields
                    .Form.RecordSource = .Form.RecordSource & "_working"
                    .LinkChildFields = childFields
                   .LinkMasterFields = masterFields
                   .Form.Requery
               End With
            End If
        Next
    End With
End Sub

Строки кода, которые вызывают функцию, выглядят так:

SetFormToWorking Forms(rst![Argument])

и

SetFormToWorking Forms(cmbTblList)

По какой-то причине вышеуказанная функция не меняет источник записей для формы. Я добавил ключевое слово ByRef к параметру, чтобы быть уверенным, что он передается по ссылке, но без кубиков. Надеюсь, кто-то здесь может сказать мне, что я сделал не так?

Ответы [ 2 ]

1 голос
/ 21 апреля 2010

Я нашел проблему. Переменная в третьей строке

rst![Argument]

не существует в области действия функции. Я заменил его на

.RecordSource

К сожалению, у меня другая проблема с кодом, но он не связан с этим вопросом.

1 голос
/ 21 апреля 2010

Попробуйте удалить скобки из вызовов функций.

SetFormToWorking Forms(rst![Argument])

SetFormToWorking Forms(cmbTblList)

больше информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...