1
我有一個關於DBLookupComboBox的問題。dblookupcombobox有一個空行
我有了一個數據庫中,我寫了一個程序。它具有一切,除了當我打開DBLookupComboBox時,它必須有一個空值的行,當用戶不想選擇時。但是沒有一個。我怎樣才能讓空行顯示?
我有一個關於DBLookupComboBox的問題。dblookupcombobox有一個空行
我有了一個數據庫中,我寫了一個程序。它具有一切,除了當我打開DBLookupComboBox時,它必須有一個空值的行,當用戶不想選擇時。但是沒有一個。我怎樣才能讓空行顯示?
您必須添加一行,上面寫着「無」或「全部」,這曾經適合。通常的解決方案是UNION查詢,它可以用作組合框的RowSource。 Union查詢可用於添加虛擬字段。
如果組合只含唯一值,你可以說:
SELECT "Nothing" As Description
FROM ATable
UNION
SELECT Description
FROM ATable
UNION消除重複,UNION ALL <沒有,所以如果有匹配的行,你可以說:
SELECT DISTINCT "Nothing" As Description
FROM ATable
UNION ALL
SELECT Description
FROM ATable
如果您希望首先進行「無」排序,則必須稍微玩弄一下,然後使用「無」或「無」,但如果您有ID或密鑰列,則可以進行排序,如下所示:
SELECT 0 As ID, "Nothing" As Description
FROM ATable
UNION
SELECT ID, Description
FROM ATable
當我想要返回1行時,比如在選擇「全部」或「無」選項時,我在我的應用程序(本地,如果可能的話)的最小索引表上使用SELECT TOP 1。這似乎比DISTINCT更有效,但我從未真正進行過測試。 – 2010-08-15 21:13:03
我猜只要選擇的表格保證在數據庫的生命週期中保持不變。如果刪除一個小表會引起廣泛的問題,這可能會讓人感到困惑。 – Fionnuala 2010-08-15 21:59:18
我沒有刪除表格,因爲一旦我實現了應用程序,架構在應用程序的整個生命週期中保持不變。我永遠不會選擇不屬於主數據模式或用戶界面依賴的表(例如我在幾乎所有應用程序的前端都有的tblConfig)。 – 2010-08-16 20:26:32