【问题标题】:Cascading Combo Boxes with a date range filter具有日期范围过滤器的级联组合框
【发布时间】:2015-06-19 01:28:56
【问题描述】:

我试图弄清楚是否有一种方法可以将包含在两个文本框中的数据范围与日历按钮链接以选择日期和其他 3 个过滤组合框。我希望组合框根据记录日期相互过滤。有人知道这是否可能吗?

非常感谢!

Private Sub cmbFleetID_AfterUpdate()
Me.cmbOwner.Requery
Me.cmbTailNumber.Requery
End Sub
Private Sub cmbOwner_AfterUpdate()
Me.cmbFleetID.Requery
Me.cmbTailNumber.Requery
End Sub
Private Sub cmbTailNumber_AfterUpdate()
Me.cmbFleetID.Requery
Me.cmbOwner.Requery
End Sub

这是我到目前为止的代码。如您所见,我的组合框与每个组合框的查询中的代码以及 [forms]![ReportNavigation]![cmbName] 相互层叠。我只是不知道如何将日期范围文本框放入其中。

【问题讨论】:

  • 到目前为止你做了什么?你能用那个更新你的帖子吗?
  • This 示例可能会让您入门。正如@PaulFrancis 所说,要获得帮助,请添加您到目前为止所做的工作。
  • 我已经添加了到目前为止的内容。谢谢!

标签: ms-access combobox vba


【解决方案1】:

那么用户将输入一个日期范围,三个组合框将根据输入的日期范围自动更新/重新查询自己?

如果是这样,在组合框的 RowSource 字段中,构建您的查询以访问以下表单中的这些字段:

SELECT tblTestData.ID, tblTestData.ACName, tblTestData.ActiveDate FROM tblTestData WHERE (((tblTestData.ActiveDate) Between [Forms].[frmTest].[txtDateBegin] And [Forms].[frmTest].[txtDateEnd]));

显然,您必须将frmTest 替换为您的表单名称,并将txtDateBegin/End 替换为您的文本框名称。使用此 RowSource,每次重新查询都会适当地从您的表中提取数据。

【讨论】:

  • 谢谢!只有一个问题,如果组合框值都来自同一个表,我需要所有这些 tblTestData 条目吗?
  • 哦,好的,我现在明白了!非常感谢:)
  • 我收到一条错误消息,提示“此子查询最多可以返回一条记录”
  • 我的猜测是您的查询过于严格,只能找到一条匹配的记录。我最常做的是创建一个新的(临时/测试)查询并构建一个 SQL 查询,然后查看返回。您可能需要添加一些临时参数(如开始日期和结束日期)。但在将查询附加到 RowSource 中的控件之前,您会更好地了解查询的作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 2021-05-25
相关资源
最近更新 更多