是否可以使用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”;方法失败了。
答案 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>