通过Access列循环并查找重复项

时间:2016-10-11 14:58:19

标签: sql vba loops ms-access access-vba

我在MS Access中有一个用于添加新记录的表单,我正在尝试创建在更新表单后触发的VBA代码。我想要做的是遍历链接到Form的表中的列,并检查添加的值是否已经在列中,如果是,则将所有重复记录的另一个名为“duplicate”的列更新为“yes”。

例如,如果用户添加“Mike Down”并且表中已存在具有此名称的记录,则将具有此名称的所有记录的列“复制”更新为“是”。 我对VBA访问完全不熟悉,到目前为止我只发现了如何进行循环:

Dim dbsMyDB As DAO.Database
Dim rstMyTable As DAO.Recordset
Dim frmForm As Form
intI = 1
With rstMyDB
    Do Until .EOF
    Loop
        If rstMyTable.Name = frmForm.Name Then
        .Edit
        --update column duplicate to "yes" for all duplicates
        .Update
        .MoveNext
        intI = intI + 1
End With

1 个答案:

答案 0 :(得分:0)

使用 RecordsetClone

Dim rst As DAO.Recordset

Set rst = Me.RecordsetClone

With rst
    Do Until .EOF
        If !Name.Value = Me!Name.Value Then
            If !ID.Value <> Me!ID.Value Then
                .Edit
                    !Duplicate.Value = True
                .Update
            End If
        End If
        .MoveNext
    Loop
End With

Set rst = Nothing