我有4个“选项”单选按钮可以检查。如果它们由用户检查,那么我想在表中插入一条记录。代码如下:
If option1Button is Checked then
doInsertQuery
If option2Button is Checked then
doInsertQuery
If option3Button is Checked then
doInsertQuery
If option4Button is Checked then
doInsertQuery
我找不到有关如何执行“被检查”方法的任何文档。我来自VB.net背景,而VBA肯定没有我习惯用于这种事情的玩具。
答案 0 :(得分:3)
您应该获取 Option Group 选项的Value
属性,而不是查询每个 Option Button 的状态。 em> 本身,即选项按钮集周围的框架。
这将产生与选定的选项按钮相关联的选项值。
由于在一个选项组中只能选择一个选项按钮,因此我建议在测试所选值时使用VBA Select Case
语句,例如:
Select Case YourFrameControl
Case 1: Debug.Print "Option 1 Selected."
Case 2: Debug.Print "Option 2 Selected."
Case 3: Debug.Print "Option 3 Selected."
End Select
由于Value
属性是控件返回的默认值,因此无需明确声明。
如果“选项按钮”是独立,并且不是是选项组的成员,那么您可以查询选项按钮本身的Value
属性,会产生True(-1
)或False(0
)值,或者True(-1
),False(0
)或Null
三重状态选项按钮。
在这种情况下,我建议使用复选框而不是单选按钮,因为对于允许选择多个选项的界面而言,这会更直观。
由于您声明用户可以选择“所有适用的选项” ,因此您可能需要使用一系列单独的if
语句来为每个所选选项评估表达式。
如果仅评估单个表达式,则可以在行中编写if
语句:
If YourOptionControl1 Then Debug.Print "Option 1 selected."
If YourOptionControl2 Then Debug.Print "Option 2 selected."
If YourOptionControl3 Then Debug.Print "Option 3 selected."
或者,作为单独的if
块:
If YourOptionControl1 Then
Debug.Print "Option 1 selected."
End If
If YourOptionControl2 Then
Debug.Print "Option 2 selected."
End If
If YourOptionControl3 Then
Debug.Print "Option 3 selected."
End If
同样,由于Value
属性是控件返回的默认值,因此无需明确声明;对于上述情况,我假设您不是使用三态选项按钮。