2

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

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

  1. 可用的
  2. 无法使用
  3. 节假日

因此,我需要一个能够支持 3 个或更多状态/选项的切换按钮。

如果您对切换按钮方法有任何替代想法,我将不胜感激。


作为我的日历与切换按钮的外观的想法,这是我的表单图片:

在此处输入图像描述

4

2 回答 2

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

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

于 2012-11-30T00:56:48.590 回答
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
于 2012-11-30T20:44:30.673 回答