Ist*_*ari 3 ms-access vba access-vba
我在Access窗体中有一些vba代码,在下列情况下调用时会产生"ByRef Argument type mismatch"错误.
我有一个小功能
NullAndHide(ctl as control,displayitem as Boolean)
Run Code Online (Sandbox Code Playgroud)
当我这样称呼时,它按预期工作.
Call NullAndHide(Me.Control,True)
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用以下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
Run Code Online (Sandbox Code Playgroud)
然后
Call NullAndHide(Me.Control,PerPersonOption) 我收到错误:
ByRef参数类型不匹配
我已经测试了PerPersonOption的值
msgBox PerPersonOption
Run Code Online (Sandbox Code Playgroud)
并返回正确的布尔值.
我的函数需要一个布尔值,我给它一个布尔值 - 那我为什么会得到这个错误?
当声明Dim PerPersonOption, PerRoomOption As Boolean只是PerRoomOption布尔的类型,但是PerPersonOption是Variant.
尝试使用 Dim PerPersonOption As Boolean, PerRoomOption As Boolean
