单击时VBA选项按钮不会保持选中状态?

时间:2014-01-18 07:48:44

标签: vba ms-access ms-access-2003

我一直在努力解决这个令人烦恼的关于点击时选择选项按钮的特殊情况。

以下是我的代码。

Private Sub frame_membershiptype_Click()
On Error GoTo Err_frame_membershiptype_Click

Select Case frame_membershiptype
    Case option_standard.Value
        option_standard.SetFocus
        Me.MembershipType = "Standard"

    Case option_concession.Value
        option_concession.SetFocus
        Me.MembershipType = "Concession"


    Case option_concession.Value
        option_lifetime.SetFocus
        Me.MembershipType = "Lifetime"

End Select

Exit_frame_membershiptype_Click:
    Exit Sub

Err_frame_membershiptype_Click:
    MsgBox Err.Description
    Resume Exit_frame_membershiptype_Click

End Sub

我在一个选项组中有3个选项按钮。我会说,如果选择了其中一个选项按钮(通过引用其Value属性),我将把焦点设置在该特定选项按钮上,并更新其背后的基础表记录。

但是出现错误,说你没有为这些选项按钮分配值。这让我感到困惑,因为根据具有optionbutton.value属性的MSDN documentation,我会告诉我是否选择了选项按钮。我发现各种在线教程告诉我它以这种方式对我有用......但它对我不起作用!

为什么呢?我很困惑。当然,实现简单的按钮复选框检查并不困难。

1 个答案:

答案 0 :(得分:1)

在Access窗体中处理Option Button控件的常规方法是使它们成为Option Group(a.k.a。Frame)控件的子控件。您可以从.Value控件的Option Group属性中检索所选选项,如下所示:

Option Compare Database
Option Explicit

Private Sub btnSave_Click()
    Dim msg As String
    If IsNull(Me.frame_membershiptype.Value) Then
        msg = "No membership type has been selected."
    Else
        msg = "Membership type selected: "
        Select Case Me.frame_membershiptype.Value
            Case 1
                msg = msg & "Standard"
            Case 2
                msg = msg & "Concession"
            Case 3
                msg = msg & "Lifetime"
            Case Else
                msg = msg & "Unknown"
        End Select
    End If
    MsgBox msg
End Sub