添加记录时组合框的来源不同

Source for a combo box differs when adding a record

下面我的卖家组合框 (cboSeller) 的行源当前显示了几年内的所有卖家。这行得通,但是这个列表变得太长而且笨拙,所以我需要将它限制为只有当年的卖家。

    SELECT tblSeller.SellerID, tblSeller.SellerName, tblSeller.sellerCurrent FROM tblSeller ORDER BY tblSeller.SellerName; 

添加新销售时,我想将组合框中的值限制为仅限当年活跃的卖家。在 tblSeller 中,当前卖家由 sellerCurrent 字段中的 "Yes" 值表示。

当我将组合框的行源更改为查询时,将卖家的条件设置为 "yes",cboSeller 组合框起作用并仅显示当前卖家。

但是,当查看现有销售记录时,如果有前一年的卖家,则不要在 cboSeller 字段中显示卖家。

看来我需要做的是,在添加新的销售记录时,将 cboSeller 的行源更改为符合条件的查询。查看所有销售记录时,需要删除条件并恢复为显示所有卖家。

我该怎么做?

非常感谢任何建议..干杯。

使用 OnCurrent 事件重新查询组合框,如果您分配不同的行源,将会发生这种情况。

Private Sub Form_Current

    Const AllSellers As String = <your Select .. for all sellers.>
    Const NewSellers As String = <your Select .. for current only sellers.>

    Dim RowSource As String

    If Me.NewRecord Then
        RowSource = NewSellers
    Else
        RowSource = AllSellers
    End If   
    If Me!cboSellers.RowSource <> RowSource Then
        Me!cboSellers.RowSource = RowSource
    End If       

End Sub