我有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
我找不到任何关于如何进行“is Checked”方法的文档。我来自VB.net的背景,而且VBA绝对没有我以前用过这类玩具的玩具。
您应该获取选项组本身的Value
属性,而不是查询每个选项按钮的状态,即围绕选项按钮组的框架。
这将产生与所选选项按钮关联的选项值。
由于在选项组中只能选择一个选项按钮,我建议在测试所选值时使用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
),假(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
属性是控件返回的默认值,因此无需明确说明;对于上述情况,我假设您没有使用三态选项按钮。