2010-08-15 54 views
1

我有一個關於DBLookupComboBox的問題。dblookupcombobox有一個空行

我有了一個數據庫中,我寫了一個程序。它具有一切,除了當我打開DBLookupComboBox時,它必須有一個空值的行,當用戶不想選擇時。但是沒有一個。我怎樣才能讓空行顯示?

回答

1

您必須添加一行,上面寫着「無」或「全部」,這曾經適合。通常的解決方案是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 
+0

當我想要返回1行時,比如在選擇「全部」或「無」選項時,我在我的應用程序(本地,如果可能的話)的最小索引表上使用SELECT TOP 1。這似乎比DISTINCT更有效,但我從未真正進行過測試。 – 2010-08-15 21:13:03

+0

我猜只要選擇的表格保證在數據庫的生命週期中保持不變。如果刪除一個小表會引起廣泛的問題,這可能會讓人感到困惑。 – Fionnuala 2010-08-15 21:59:18

+1

我沒有刪除表格,因爲一旦我實現了應用程序,架構在應用程序的整個生命週期中保持不變。我永遠不會選擇不屬於主數據模式或用戶界面依賴的表(例如我在幾乎所有應用程序的前端都有的tblConfig)。 – 2010-08-16 20:26:32

相關問題