【问题标题】:MS ACCESS - How to filter a splitform's datasheet by a multiple combobox valuesMS ACCESS - 如何通过多个组合框值过滤拆分表单的数据表
【发布时间】:2020-10-31 12:14:09
【问题描述】:

我有一个带有一些 txtboxes 和 1 个组合框的 splitform。 组合框与同一个表单的查询(qryPurchase)相关,它显示了 3 列查询字段:

ID_purchase, Purchase_Type, Date_Purchase

查询中还有Purchase_ItemQuantity等其他字段,但只有2种Purchase_Type值,卖和借。 不同的Purchase_Item 可以有相同的ID_purchaseDate_Purchase,就像发票一样。

组合框列表示例:

ID_purchase, Purchase_Type, Date_Purchase
1, sell, 08/01/2020
1, sell, 09/01/2020
1, borrow, 09/01/2020
2, sell, 10/01/2020
2, borrow, 11/01/2020

当我从组合框的下拉菜单中选择一行时,我希望它必须通过组合框的行值过滤下面的 splitform 数据表,以便获得与匹配的所有 ID_purchase 和 Purchase_Type 和 Date_Purchase 的数据表过滤列表组合框行值。

像上面的列表一样,如果我选择第一行,下面的数据表会显示 2 条记录。

我试图这样实现:

Private Sub fltDocCombo_AfterUpdate()

Me.Form.Filter = "[ID_purchase] =" & Me.fltDocCombo.Column(0) _
& " AND [Purchase_Type] = " & "'" & Me.fltDocCombo.Column(1) & "'" _
& " AND [Date_Purchase] = " & "#" & Me.fltDocCombo.Column(2) & "#"

Me.Form.FilterOn = True
End Sub

Private Sub Form_Close()
Me.Form.Filter = ""
Me.Form.FilterOn = False
End Sub

Private Sub Form_Open(Cancel As Integer)
Me.Form.Filter = ""
Me.Form.FilterOn = False
End Sub

这有时有效有时无效,似乎Me.Form.Filter 值被锁定在列表的第一个 ID_purchase..

如上例:

ID_purchase, Purchase_Type, Date_Purchase
1, sell, 08/01/2020
1, sell, 09/01/2020
1, borrow, 09/01/2020
2, sell, 10/01/2020
2, borrow, 11/01/2020

如果我尝试选择第二行,则应用的过滤器是第一行值.. 但不是每次..

有时Date_Purchase 的过滤器似乎没有过滤任何内容..

我想先像 ID_purchase 一样依次应用过滤器, Purchase_Type 第二个和 Date 最后一个, 但是当它应用第二个过滤器时,它会取消第一个过滤器,依此类推..

在这种情况下,我不知道如何向现有过滤器添加另一个过滤器..

帮助..

【问题讨论】:

    标签: ms-access filter combobox multiple-value datasheet


    【解决方案1】:

    解决了..

    问题在于Date_Purchase 日期格式..

    为我的本地语言和日期格式 (dd/mm/yyyy) 安装了 MS-ACCESS 但在 VBA 中,日期默认格式始终为 mm/dd/yyyy

    所以我像这样修改了Me.Form.Filter 值:

    Me.Form.Filter = "[ID_turnin_temploan] =" & Me.fltDocCombo.Column(0) _
    & " AND [Posizione] = " & "'" & Me.fltDocCombo.Column(1) & "'" _
    & " AND [Data_turnin_temploan] = " & "#" & Format(Me.fltDocCombo.Column(2), "mm/dd/yyyy") & "#"
    

    现在它可以工作了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 2017-06-08
      • 1970-01-01
      相关资源
      最近更新 更多