2013-02-27 48 views
2

我正在使用存儲過程的結果填充MS Access 2010窗體上的列表框。我使用的填充列表框的代碼如下:無法選擇MS Access 2010列表框項目

Dim qdf As QueryDef 
Set qdf = CurrentDb.QueryDefs("PassThroughQuery") 
qdf.SQL = "EXEC Search '" & searchValue & "'" 
Set rs = qdf.OpenRecordset 

While Not rs.EOF 
    Me.searchResultsBox.AddItem rs("name") 
    rs.MoveNext 
Wend 

查詢運行正常,並列表框用指定的值來填充,但是在列表框中的項目不可選。我無法點擊並突出顯示任何項目。

我檢查了Enabled和Locked屬性,它們分別設置爲True和False。 「行源類型」設置爲「值列表」。我不知道爲什麼列表框值的行爲如此。

+0

只需抓住吸管:什麼是控制源和束縛列屬性?你有程序代碼或宏附加到組合的點擊或其他事件?怎麼了'dbCmd' ......這裏有關係嗎? – HansUp 2013-02-27 18:13:18

+0

@HansUp對不起,dbCmd不相關......這是舊代碼,我忘了拿出來,我的壞在那裏。控件來源屬性是空的,綁定的列是1.我已經嘗試清除綁定列,但它顯然是一個必填字段和訪問抱怨,如果它留空。 – 2013-02-27 18:26:49

+0

好的,這對我來說似乎很奇怪,這讓我對腐敗感到懷疑。您可以嘗試'Application.SaveAsText acForm,「FormName」,「C:\ SomeFolder \ FormName.txt」'然後在一個新的db文件'Application.LoadFromText acForm,「FormName」,「C:\ SomeFolder \ FormName.txt」 '看看新的是否顯示相同的症狀。當然,你也必須導入任何表格,而這種形式取決於。但說實話,我不知道這個建議是否比我的第一條評論更有用。 :-( – HansUp 2013-02-27 18:36:25

回答

1

我遇到了同樣的問題:顯然列表框項目只有在允許編輯時纔可選擇。也許形式Allow Edits屬性設置爲false。也可能是傳遞查詢或存儲過程的結果不可編輯。

+0

謝謝!對我來說就是這樣:我必須設置'Allow Edits'屬性(在* Data *選項卡)的包含形式爲「是」。哦,我多麼喜歡Access ... – Treb 2015-02-02 20:52:24

0

不要忘記允許在表單級別進行編輯,即使您想要所有內容都是隻讀的。對於我來說,只有當我設置允許編輯時,列表框才能被選中。