如何在组合框中包含 "Select All" 选项?

How can I include a "Select All" option in my combo box?

我有一个包含我的分销商列表的组合框,当我 select 组合框中的分销商时,我有一个子表单,其中列出了该特定分销商的交易。

现在我想在组合框中包含一个 "Select All" 选项,该选项将显示我的分销商的所有交易。我试图通过 UNION 查询来做到这一点,但到目前为止它还没有奏效。

下面是代码:

SELECT Sous_Compte.Sous_Compte_ID, Sous_Compte.Numero_Sous_Master, Sous_Compte.Prenom & " " & Sous_Compte.Nom AS Nom 
FROM Sous_Compte

UNION SELECT "*" AS Sous_Compte_ID, "(All)" as Numero_Sous_Master, " " AS Nom from Sous_Compte

ORDER BY Sous_Compte.Numero_Sous_Master;

这是我每次 select "(All)":

时收到的错误消息

This expression is typed incorrectly, or it is too complex to be evaluated. For example, a numeric expression may contain too many complicated elements. Try simplifying the expression by assigning parts of the expression to variables.

两个查询的字段必须匹配:

SELECT 
    Sous_Compte.Sous_Compte_ID, Sous_Compte.Numero_Sous_Master, Sous_Compte.Prenom & " " & Sous_Compte.Nom AS Nom 
FROM 
    Sous_Compte
UNION 
SELECT 
    0, "(All)", ""
FROM
    Sous_Compte
ORDER BY 
    Sous_Compte.Numero_Sous_Master;

设置 Master/Child 链接属性将不起作用,因为 * 字符不能是键值。但是可以在动态参数化查询中引用combobox,比如:

SELECT * FROM tablename WHERE ID LIKE Forms!formname!comboboxname;

那么那个查询可以是一个表单的RecordSource。

从组合框中选择项目后,必须 refresh/requery 表格。可以使用组合框更新后事件或按钮单击事件。如果使用单一形式,则只需:Me.Requery。如果使用子窗体,必须通过子窗体容器控件引用:Me.subformcontainername.Requery。 (请注意,这是在纠正我的评论,即子表单在打开时会失败 - 子表单会起作用。)

这个动态参数化查询也可以是报表的RecordSource。或者,如果您不希望与报告 RecordSource 相同的查询,可以使用 OpenReport 方法的 WHERE CONDITION 参数:

DoCmd.OpenReport "reportname", , , "ID LIKE Forms!formname!comboboxname"