1

我有一个TForm基于表格的表格T,设置为数据表。我的目标是在数据表中添加一个可过滤列,其中列的值是根据使用另一列值的查询计算得出的。

我试图通过currentBoxT. 控制源为currentBox

=DLookUp("name","currentStatus","itemID=" & [ID])

where[ID]是其中的一个字段,T并且是对与之相关currentStatus的表的聚合查询。T

我可以过滤TForm. T但我无法过滤currentBox,即使它也显示为表单中的一列;单击列标题不会执行任何操作。

我猜问题是它currentBox没有绑定到T; 有没有办法解决这个问题?

4

2 回答 2

1

这是一个VBA解决方案:

  1. 将组合框(又名下拉)对象添加到表单标题。此下拉列表的源将是一个独立的查询,显示 Dlookup() 当前提取的所有值(名称?)并存储 itemID。ObjPickName让我们在这个例子中调用它。

  2. 添加一个AfterUpdate事件ObjPickName,它将为您过滤您的表单(您的表单仍将基于T)。代码将类似于:

    Private Sub Combo_ObjPickName_AfterUpdate()
    Me.Form.Filter="[itemID]='" & Me.Combo_ObjPickName.Value & "'"
    Me.Form.Filteron=True
    End Sub

于 2013-07-10T20:22:04.873 回答
0

我最终解决此问题的方法是将一个字段添加到,并在事件期间使用来自调用的值T更新该字段。因为该字段现在不再基于查询,所以它可以用来过滤表单。AfterUpdate()DLookup()

于 2013-07-11T03:00:11.430 回答