确定是否在MS Access 2007列表框中选择了行

时间:2011-01-13 23:11:06

标签: ms-access vba ms-access-2007 access-vba

我有一种情况,我希望将一个表中的多个值与另一个表中的值相关联。我的数据结构中包含多对多连接表,我正在尝试管理连接表中的成员资格。

这个问题是关于流程的UI部分。我我想要做的是在一个表格中向用户提供一个多选列表框控件,该表格保存TableA的ID常量(顺便说一下,隐藏)。列表将填充TableB中的所有(相当短的列表)行(显示的描述,隐藏列中的ID)。在加载时,我将选择参与M-M联接的列表中的那些行。用户可以选择添加和/或取消选择删除。

我不确定的是如何判断是否选择了任何给定的行。我知道IsSelected系列 - 如果我只是添加,我会使用For Each走,但我需要删除任何已取消选择的,我需要 re - 任何已经存在的。我在这一点上的想法是走遍整个列表,测试每个选定的值&插入它(如果尚未存在),并测试每个 un - 选择的值以进行可能的删除(嗯 - 这开始听起来不必要复杂......)。

我刚开始问的是“如何选择行(x)?”我仍然喜欢这个问题的答案,但我也对其他基本问题的管理建议持开放态度

1 个答案:

答案 0 :(得分:1)

似乎您有一个用于创建所选项目的列表。用户更新列表框后,您可以将.ItemsSelected与参与M-M联接的列表行进行比较。可以删除缺失的项目,并可以添加其他项目。一些非常粗略的说明:

For Each itm In Me.AList.ItemsSelected
    rsJoinList.Find "ID=" & Me.AList.Column(0, itm)

    If rsJoinList.NoMatch Then
        'To be added
    Else
        'To be deleted
    End If
Next