找到DAO记录

时间:2016-05-16 17:07:23

标签: ms-access access-vba ms-access-2010 dao recordset

是否可以使用DoCmd.GoToRecord或DoCmd.FindRecord来快速查找表中的记录,编辑记录并将焦点集中在该记录上(我想稍后从该记录开始循环)?

我相信这样的方法(如果适用)比循环遍历整个记录集要快(特别是对于大记录集)。

假设主键是9999(Fields(0)= 9999),我试过:

Dim rs as DAO.Recordset

Set rs = CurrentDb.OpenRecordset("Tbltest")
DoCmd.FindRecord "9999", acEntire, True, acSearchAll, True
Debug.Print rs.Fields(0)

我得到“1”;方法失败了。

1 个答案:

答案 0 :(得分:3)

使用DAO.Recordset,您可以使用rs.FindFirst and rs.FindNext方法。

Set rs = CurrentDb.OpenRecordset("Tbltest", dbOpenDynaset)
lngValue = 9999
rs.FindFirst "myPrimaryKey = " & lngValue

' start loop from there
If Not rs.NoMatch Then
    Do While Not rs.EOF
        Debug.Print rs(0)
        rs.MoveNext
    Loop
End If

如果它是本地表,那么还有rs.Seek方法,但是如果某天有可能从后端或服务器数据库链接该表,我建议坚持使用Find方法。 / p>