您检索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