3访问表单中的状态切换按钮

时间:2012-11-29 19:13:51

标签: ms-access ms-access-2007 togglebutton

是否可以在具有两个以上“状态”/选项的访问表单中创建切换按钮?

我正在创建一个带有月视图的日历,该日历由切换按钮组成。用户应该能够单击切换按钮以指示他是否:

  1. 可用
  2. 不可用
  3. 假期
  4. 因此我需要一个能够有3个或更多状态/选项的切换按钮。

    如果您对Toggle Button方法有任何其他想法,我将非常感激。


    通过切换按钮来了解我的日历的样子,这是我的形式的图片:

    enter image description here

2 个答案:

答案 0 :(得分:2)

以下是如何操作的示例。您可以修改它以接受按钮引用以使用许多按钮的代码。

此外,事实证明这仅适用于Access 2010+。如果使用2010之前的版本,则可以使用标签作为按钮。

Private Sub Btn_Click()
    Select Case Me.Btn.BackColor
      Case &HFF
         Me.Btn.BackColor = &HFF00
      Case &HFF00
         Me.Btn.BackColor = &HFF0000
      Case Else
         Me.Btn.BackColor = &HFF
   End Select
End Sub

这将循环通过三种可能的状态。我使用了不同的颜色,但你可以使用任何颜色。

答案 1 :(得分:2)

我喜欢Tom使用Access 2007标签控件的方法。下面的过程使每个标签的点击事件更容易在绿色,黄色和红色之间切换。

为每个标签调用这样的程序。

Private Sub Label16_Click()
    ToggleColor Me.Label16
End Sub

Private Sub ToggleColor(ByRef lbl As Label)
    Dim lngColor As Long
    Dim strPrompt As String

    If lbl.BackStyle = 0 Then ' Transparent
        strPrompt = "BackColor will not be displayed when " & _
            "BackStyle is Transparent." & vbCrLf & _
            "Change " & lbl.Name & " BackStyle property to Normal."
        MsgBox strPrompt, vbExclamation
    Else
        Select Case lbl.BackColor
        Case vbGreen
            lngColor = vbYellow
        Case vbYellow
            lngColor = vbRed
        Case vbRed
            lngColor = vbGreen
        Case Else
            lngColor = vbGreen
        End Select
        lbl.BackColor = lngColor
    End If
End Sub