【问题标题】:3 state Toggle Button in Access Form访问表单中的 3 状态切换按钮
【发布时间】:2013-05-07 17:38:11
【问题描述】:

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

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

  1. 可用
  2. 不可用
  3. 放假

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

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


作为我的日历与切换按钮的样子,这里是我的表单图片:

【问题讨论】:

  • 为什么要切换按钮?为什么不使用一组单选按钮?
  • 我没有考虑过使用单选按钮,但我仍在寻找类似于上图的 UI。如果我找不到任何替代品,我想我会求助于单选按钮。但最终,我会保持这种格式,以便用户更好地理解它。

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


【解决方案1】:

我喜欢 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

【讨论】:

    【解决方案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
    

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

    【讨论】:

    • 您打算对Btn 进行什么类型的控制?使用Btn 作为切换按钮或命令按钮,Access 2007 给我一个带有.BackColor 的编译错误(找不到方法或数据成员)。您是否在较新的 Access 版本中使用此功能?
    • 我在 Access 2010 中使用了一个命令按钮。我认为 Access 2007 的命令按钮也有一个背景色属性,但在搜索时,我发现这不是真的。另一种方法是使用标签。
    • 如果您在 Access 2007 中使用 ActiveX 切换按钮或命令按钮,.BackColor 属性确实有效。但是我无法设置背景颜色。不过,我会进一步研究。
    猜你喜欢
    • 1970-01-01
    • 2017-10-31
    • 2020-09-20
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    相关资源
    最近更新 更多