我双击了访问表单列表框对象中的哪个项目?

时间:2016-07-21 11:08:36

标签: forms vba ms-access listbox double-click

我的表单中有一个列表框,其中MultiSelect为Simple。

我希望能够使用我在lst_DblClick Sub中双击的项目。类似于Me.lst.Clicked

可能已经选择了其他项目,否则我知道我可以遍历这些项目并使用Me.lst.Selected(i)或类似项目。我无法识别最近点击过的那个。除了将这个存放在一个看起来很大的大锤到裂缝的地方之外,我不知道该去哪里。

我已经在相同表单的Click事件中循环遍历项目,这就是为什么可能已经从中选择了某些项目的原因。

作为旁注,我不确定我放在这里的内容是否会起作用,因为https://msdn.microsoft.com/en-us/library/office/ff837260.aspx告诉我,click事件将同时触发double。我没有打开一个消息框或类似的单击,所以希望它仍然会触发。

1 个答案:

答案 0 :(得分:1)

可以在不编写大量代码的情况下完成您想要的工作。

当访问列表框中选择了1个或多个项目时(无论是使用&#34;简单&#34;还是&#34;扩展&#34;多选模式),有多种方法可以获取数据。< / p>

如果您想知道列表框中的当前所选项目(上次单击的项目),您可以使用。Column属性引用该项,而不指定Row参数。 Index参数基于0,因此列表框中的第1列引用为0.Column属性为0,第2列引用为1,等等。

Me.lst.Column(0)

因此,例如,假设列表框中的第一列包含您希望在双击事件中执行的唯一行标识符,则可以使用以下行在双击事件中引用该值:上面显示的代码,然后对该值进行操作。

如果要遍历多选列表框中的所有选定项目,可以通过枚举。ItemsSelected属性以下列方式单独执行此操作。

Dim varItm As Variant
Dim ID As Long
Dim AName As String

For Each varItm In Me.lst.ItemsSelected
    'Loop and do something with one or more values from each selected
    'row in the listbox
    ID = Me.lst.Column(0, varItm)    'get the value from the 1st column
    AName = Me.lst.Column(2, varItm) 'get the value from the 3rd column
Next varItm