2017-09-01 9 views
0

クエリからリストアイテムを取得するコンボボックスがあります。しかし、これらの項目に加えて、私はすべての場合にそこにある静的なオプションが必要です。静的な値とテーブルのレコードを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 

が、値集合タイププロパティは、このメソッドを使用するために「値リスト」に設定されている必要があり

この実行時エラーで終わります。

これは私が期待していたものです。

この周りにはどんなトリックがありますか?テーブルセットにダミーレコードを追加してクエリを変更することはできますが、それはむしろ醜くなり、私はそれを好まないでしょう。

答えて

3

コンボボックスのRowSourceとしてUNIONクエリを試してください。多分好き:

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

+0

はそれをより効率的にするためにTOP 1を追加します。 'UNION SELECT TOP 1"、 "FROM ESDNodes ORDER BY Sort" –

+0

TOP 1がない場合は、 "Make Last"を比較して、最後の2つのクエリを実行する必要があります。一意であるかどうかをチェックするためにESDNodeのすべてのレコードに記録しますか? –

関連する問題