【问题标题】:Access: How To See If An Options Radio Button Is Checked访问:如何查看是否选中了选项单选按钮
【发布时间】:2019-04-08 16:49:40
【问题描述】:

我有 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 绝对没有我习惯于做这类事情的玩具。

【问题讨论】:

    标签: excel ms-access button vba


    【解决方案1】:

    您应该获取 Option GroupValue 属性,而不是查询每个 Option Button 的状态 本身,即围绕选项按钮集的框架。

    这将产生与所选选项按钮关联的选项值

    由于在选项组中只能选择一个选项按钮,我建议在测试所选值时使用 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 语句来评估每个选定选项的表达式。 p>

    如果您只评估单个表达式,您可以将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 属性是控件返回的默认值,因此无需明确说明;对于上述情况,我假设您没有使用三态选项按钮。

    【讨论】:

    • 我在 VB.Net 中做过类似的事情,非常有帮助。我的问题是可以选择多个选项按钮。每个选项按钮都独立存在,没有框架控件。这是“检查所有适用”的事情
    • @Bob 在这种情况下,我建议在单选按钮上使用复选框,因为单选按钮往往意味着只能选择一个选项。不过,我已经更新了上面的答案。
    • 我完全同意,无论出于何种原因,我的控件中都没有显示复选框。我现在和他们一起去,我猜检查他们是否被检查的过程类似于上面?
    • 完全按照我答案的下半部分,是的。
    • 太棒了,你帮了很多忙。已接受答案,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-26
    • 2021-10-21
    • 2011-03-28
    • 2012-03-07
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    相关资源
    最近更新 更多