背景:
我正在使用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'"
答案 0 :(得分:3)
考虑组合框行源的联合查询。
SELECT tbl.col1 FROM tbl
UNION ALL
SELECT 'None Selected' FROM Dual;
Dual
是一个自定义表,其设计保证它始终只包含1行。您可以使用this 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;