Ms access 查找DAO记录
是否可以使用DoCmd.GoToRecord或DoCmd.FindRecord在表中快速查找记录、编辑记录并获得该记录的焦点(我想稍后从该记录开始循环) 我相信这种方法(如果适用的话)会比在整个记录集(尤其是大型记录集)中循环更快 假设主键是9999(字段(0)=9999),我尝试了:Ms access 查找DAO记录,ms-access,vba,ms-access-2010,dao,recordset,Ms Access,Vba,Ms Access 2010,Dao,Recordset,是否可以使用DoCmd.GoToRecord或DoCmd.FindRecord在表中快速查找记录、编辑记录并获得该记录的焦点(我想稍后从该记录开始循环) 我相信这种方法(如果适用的话)会比在整个记录集(尤其是大型记录集)中循环更快 假设主键是9999(字段(0)=9999),我尝试了: Dim rs as DAO.Recordset Set rs = CurrentDb.OpenRecordset("Tbltest") DoCmd.FindRecord "9999", acEntire, Tr
Dim rs as DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Tbltest")
DoCmd.FindRecord "9999", acEntire, True, acSearchAll, True
Debug.Print rs.Fields(0)
我得到“1”;该方法失败 使用
DAO.Recordset
,您可以使用以下方法
如果是本地表,也有方法,但是如果有一天该表可能会从后端或服务器数据库链接,我建议使用Find方法。对于
DAO.Recordset
,您可以使用这些方法
如果是本地表,也有方法,但如果有可能有一天该表将从后端或服务器数据库链接,我建议使用Find方法。此代码在焦点表单的焦点字段中查找值“9999”rs.Fields(0)
仍然指向第一条记录,即您得到的“1”。此代码在焦点窗体的焦点字段中查找值“9999”rs.Fields(0)
仍然指向第一条记录,即您得到的“1”。
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