2017-09-01 19 views
0

我有一個組合框從查詢中獲取它的列表項。但除了這些項目之外,我還需要一個靜態選項,它將在所有情況下出現。如何將一個表中的BOTH靜態值和記錄作爲列表項添加到VBA中的組合框中

我試圖用簡單的方式這樣做:

Private Sub Form_Open(Cancel As Integer) 
    Set rst = CurrentDb.OpenRecordset("SELECT ESDNodes.Description, ESDNodes.Sort FROM ESDNodes WHERE (((ESDNodes.parentID) =" & parentID & ")) ORDER BY ESDNodes.Sort") 
    Set nextSiblingSelect.Recordset = rst 
    nextSiblingSelect.AddItem Item:="Make Last", Index:=0 
End Sub 

但這個運行時錯誤

RowSourceType屬性必須設置爲「值列表」來使用這種方法結束。

我一半的預期。

這有什麼竅門嗎?我想我可以添加一個虛擬記錄到我的表集並改變查詢,但這將是相當醜陋的,我不會喜歡它。

回答

3

嘗試使用UNION查詢作爲組合框RowSource。也許像:

SELECT Description, Sort FROM ESDNodes UNION SELECT "Make Last", 0 FROM ESDNodes ORDER BY Sort;

+0

添加回到頂端1使其更有效。否則,它必須運行完整的第二個查詢,然後比較所有行,以縮小到不同的值:'UNION SELECT TOP 1「Make Last」,0 FROM ESDNodes ORDER BY Sort' –

+0

因此,如果沒有TOP 1,它會比較「Ma​​ke Last」記錄到ESDNodes中的所有記錄以檢查它是否唯一? –

相關問題