【问题标题】:How to get MS Access Listbox to show ALL values on YesNo Field如何让 MS Access 列表框在 YesNo 字段上显示所有值
【发布时间】:2016-10-17 19:07:16
【问题描述】:

我在 Access 中有一个列表框,其中显示了季节性员工姓名的列表。它的行源是:

SELECT tblLeaders.LeaderID, tblLeaders.FirstName, tblLeaders.LastName, [LastName] & ", " & [FirstName] AS Expr1, tblLeaders.OnPay
FROM tblLeaders
ORDER BY tblLeaders.LastName;

它显示按姓氏排序的列表中的名称,并显示为:“[LastName], [FirstName]”

在表 [tblLeaders] 上,有一个名为 [OnPay] 的 YesNo 字段。

我的目标是有一个复选框或组合框,可以通过以下任一方式过滤 ListBox 中的名称:

选项 1:ALL(显示所有 OnPay 值(是或否)

选项 2:活动(仅显示设置为“是”的 OnPay 值)

我尝试使用复选框的三重状态,但没有成功。然后,如果组合框设置为全部,我尝试使用 IIF 语句查找“是”和“否”值,但我一直收到错误。

有没有人有任何简单的想法来解决这个问题?

更新 感谢约翰内斯的回答。下面是我添加的工作 vba 代码

Private Sub chkbxShowInactiveLeaders_Click()
    Dim sql1 As String
    Dim sql2 As String
    Dim sql3 As String

    sql1 = "SELECT tblLeaders.LeaderID, tblLeaders.FirstName, tblLeaders.LastName, [LastName] & ', ' & [FirstName] AS Expr1, tblLeaders.OnPay FROM tblLeaders "
    sql2 = "WHERE tblLeaders.OnPay=TRUE "
    sql3 = "ORDER BY tblLeaders.LastName;"

    If Me.chkbxShowInactiveLeaders.Value = True Then
        Me.lstbxSelectLeader.RowSource = sql1 & sql3
    Else
        Me.lstbxSelectLeader.RowSource = sql1 & sql2 & sql3
    End If

    Me!lstbxSelectLeader.Selected(0) = True

End Sub

【问题讨论】:

  • 你能把 ListBox 改成多选 ListBox 吗?
  • 不,不幸的是,列表框填充了表单上的许多字段,因此需要单选。

标签: sql vba ms-access listbox


【解决方案1】:

当您将 vba 设置为标签时,我假设您熟悉 vba。然后您可以使用一个复选框并创建一个 OnClick-Action 来更改列表框的 RowSource。那应该很简单;类似:

Private Sub CBShowAll_Click()
  Dim sql1 as String
  Dim sql2 as String
  Dim sql3 as String

  sql1="SELECT tblLeaders.LeaderID, tblLeaders.FirstName, tblLeaders.LastName, [LastName] & ", " & [FirstName] AS Expr1, tblLeaders.OnPay FROM tblLeaders "
  sql2="WHERE tblLeaders.OnPay=TRUE "
  sql3="ORDER BY tblLeaders.LastName;" 

  If me.CBShowAll.Value Then
    me.Leaderlist.RowSource= sql1 & sql3
  Else
    me.Leaderlist.RowSource= sql1 & sql2 & sql3
  End If
  Me.Leaderlist.Requery 'Not sure if this is necessary
End Sub

【讨论】:

  • 啊,这是我没有探索过的东西,看起来很有希望。我会试一试,让你知道,谢谢!
猜你喜欢
  • 2018-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-30
  • 2019-10-02
相关资源
最近更新 更多