2

背景:

我正在使用 Ms-Access 表单,并且我有一个组合下拉列表,我正在 VBA 中进行编码

问题:

是否可以基于查询进行组合,例如:"SELECT tbl.col1 FROM tbl" 所以你得到一个绑定的下拉列表......

但....

还想在列表中再添加一个...顶部的“未选择” 。

如果有人有想法、提示或建议,请告诉我。

非常感谢!

一些代码:

    Me.CboUnallocatedPayments.RowSource = " & _
    "SELECT zTempBankCustomerReceipt.TransType, zTempBankCustomerReceipt.Ref, " & _
    " zTempBankCustomerReceipt.Details,zTempBankCustomerReceipt.EntryDate, " & _
    " zTempBankCustomerReceipt.NetAmt, " & _
    " zTempBankCustomerReceipt.PaidStatus " & _
    " FROM zTempBankCustomerReceipt UNION " & _
    " SELECT 0, "**NOTHING SELECTED**" " & _
    " FROM zTempBankCustomerReceipt" & _
    " WHERE zTempBankCustomerReceipt.TransType = 'SA' " & _
    " AND zTempBankCustomerReceipt.PaidStatus = '0'"
4

1 回答 1

3

考虑组合框行源的联合查询。

SELECT tbl.col1 FROM tbl
UNION ALL
SELECT 'None Selected' FROM Dual;

Dual是一个自定义表,其设计保证它始终只包含 1 行。您可以使用此 SO answer中的说明创建自己的Dual表。但是您不需要为此目的使用特殊的表;任何返回单行的表或查询就足够了。

关于组合中行的顺序,您可以在查询中添加第二个字段。如果你想'None Selected'在列表的顶部,剩余的行按字母顺序排序......

SELECT 1 AS order_by, tbl.col1 FROM tbl
UNION ALL
SELECT 0, 'None Selected' FROM Dual
ORDER BY 1, 2;
于 2013-04-16T15:13:53.767 回答