vba форму Тип несоответствия типа ByRef с булевым



vba access учебник (1)

У меня есть некоторый код vba в форме Access, которая выдает ошибку «Ошибка несоответствия типа ByRef» при вызове при следующих обстоятельствах.

У меня небольшая функция

NullAndHide(ctl as control,displayitem as Boolean) 

который работает, как ожидалось, когда я называю это так.

Call NullAndHide(Me.Control,True)

Однако, если я использую следующий оператор case, чтобы попытаться установить значение displayitem на основе другого элемента управления:

Dim PerPersonOption, PerRoomOption As Boolean

    Select Case PriceType_ID
Case Is = 1 'Per Person
    PerPersonOption = True
    PerRoomOption = False
Case Is = 2 'Per Room
    PerPersonOption = False
    PerRoomOption = True
End Select

А потом

Call NullAndHide(Me.Control,PerPersonOption) Я получаю сообщение об ошибке:

Несоответствие типа ArRef

Я тестировал значение PerPersonOption с

msgBox PerPersonOption 

и он возвращает правильное логическое значение.

Моя функция ожидает Boolean, я даю ему Boolean - Так почему я получаю эту ошибку?


При объявлении Dim PerPersonOption, PerRoomOption As Boolean только PerRoomOption является булевым, но PerPersonOption является вариантом.

Попробуйте использовать Dim PerPersonOption As Boolean, PerRoomOption As Boolean