微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

访问:多列表框-使用VBA

如何解决访问:多列表框-使用VBA

我在访问中有一个表单,该表单具有一个名为“ lstLoadedFiles”的列表框,该列表框显示了已上传到我的数据库的所有文件的列表。

此列表框包含3列,是一个多选列表框,因此用户可以一次从列表中选择一个以上的项目。

该lisBox如下所示:

Type        FileName            Status
Blue        Bluefile1.xls       Loaded
Blue        Bluefile2.xls       Loaded
Red         Redfile3.xls        Loaded
Green       Greenfile1.xls      Loaded

然后,用户可以在此列表框中选择多个记录,然后单击一个按钮,代码将运行以验证所有已选择项目的文件

此列表框最多可以包含20个文件名。我希望用户能够选择一个按钮,它将突出显示列表框中与某种特定类型(例如'蓝色'。 (这是必需的,因此,如果用户仅拥有一种类型的所有相关文件,则他们可以在整个过程中移动而不必等待其他类型的其余文件-并且他们不必从列表框中单独选择所有文件对于一种类型,例如蓝色)

我的问题是,此列表框中的项目永远不会以相同的顺序出现,并且永远不会有相同数量文件(例如,可能会针对blue类型上传3个文件,但是下次它们仅运行1个文件时,可能已上传),因此无法使用以下内容

Forms("MyForm").lstLoadedFiles.Selected(0) = True

有没有一种方法可以对它进行编码以使其具有以下内容

If optSelectAllBlue = True Then
    lstLoadedFiles. Select Items where column type = 'Blue' .....

其中optSelectAllBlue将是一个按钮。还是列表框无法做到这一点?

预先感谢

解决方法

遍历列表框项目,并测试value =所选颜色以及是否匹配select项目。技巧是弄清楚如何使颜色值动态化。如果您使用的OptionGroup仅有3个用于红色/绿色/蓝色的单选按钮,则类似:

Dim x As Integer
With Me.lstLoadedFiles
For x = 0 To .ListCount - 1
    If .ItemData(x) = Choose(Me.optColor,"Red","Green","Blue") Then .Selected(x) = True
Next
End With

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。