您檢索records("Pillar")
這是一個字符串|
-分隔的數字。然後將Split()
這個字符串轉換成數組。重點是選擇每個列表框行的值匹配其中一個數組成員。我不認爲你真的需要一個數組。將|
添加到該字符串的開始和結尾應該更容易,然後使用InStr()
檢查修訂後的字符串中是否存在以|
字符包圍的列表框值。
該描述可能很難遵循。看看來自立即的這個例子是否澄清它。
cstrPillar = "1|2|3"
? "|" & cstrPillar & "|"
|1|2|3|
strListBoxValue = "3"
? "|" & strListBoxValue & "|"
|3|
? InStr(1, "|" & cstrPillar & "|", "|" & strListBoxValue & "|")
5
如果有道理,這裏是我如何在我的命令按鈕的點擊事件中應用它。注意我使用字符串常量cstrPillar
作爲您使用records("Pillar")
動態檢索的字符串的代理。我將我的多選列表框命名爲lstPillar
。
Private Sub cmdSelectRows_Click()
Const cstrPillar As String = "1|2|3"
Dim i As Long
For i = 0 To (Me.lstPillar.ListCount - 1)
Me.lstPillar.Selected(i) = (_
InStr(1, _
"|" & cstrPillar & "|", _
"|" & Me.lstPillar.ItemData(i) & "|") > 0)
Next
End Sub
該點擊事件的影響是選擇匹配1,2或3的列表框行並取消選擇所有其他行。
我意識到Me.lstPillar.Selected(i)
聲明可能具有挑戰性。我可以建議的最好的方法是參考立即窗口示例,並希望能夠清楚地說明。
不完全。該列表框已根據訪問屬性字段中的值列表填充。現在我需要做什麼,如果一旦列表框被填充,突出顯示數據庫中的項目。 示例:項目是1,2,3,並且在數據庫中,所選值爲1,因此當顯示列表框時,它將顯示1,2,3,但是1將突出顯示。 我希望我有道理。 – res74
我已經嘗試做一個'對於臨時工Pillar.ItemData(0)= varItem下一個'每個varItem' 但這並不奏效。就我所知,我可以使用的唯一其他正確值是'Pillar.ItemsSelected',但是當我這樣做時,我收到一個_read only_錯誤。 – res74