访问:如何查看是否选中了选项单选按钮

问题描述 投票:2回答:1

我有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绝对没有我以前用过这类玩具的玩具。

excel vba ms-access button access-vba
1个回答
3
投票

您应该获取选项组本身的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属性是控件返回的默认值,因此无需明确说明;对于上述情况,我假设您没有使用三态选项按钮。

© www.soinside.com 2019 - 2024. All rights reserved.