我有一個子程式根據recordset1 的記錄洗掉recordset2 中的記錄。該功能有效,但速度很慢。Recordset1 有 300 條記錄,Recordset2 有 73000 條記錄。
有什么辦法可以加快這個速度嗎?
是否可以使用過濾器或重新過濾的記錄集?
Public Sub Erase()
DoCmd.SetWarnings False
Dim db As DAO.Database
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Set db = CurrentDb()
Set rs1 = db.OpenRecordset("Tbl_1", dbOpenTable)2
Set rs2 = db.OpenRecordset("KISS_2", dbOpenDynaset)2
If rs1.RecordCount > 0 Then
rs1.MoveLast
rs1.MoveFirst
lngCountRecordsRs1 = rs1.RecordCount
Do Until rs1.EOF
rs2.MoveFirst
Do Until rs2.EOF
If rs1!ID = rs2!ID Then
With rs2
.Delete
End With
End If
rs2.MoveNext
Loop
rs1.MoveNext
Loop
End If
rs2.Close
rs1.Close
Set rs2 = Nothing
Set rs1 = Nothing
Set db = Nothing
Errorhandler:
End Sub
uj5u.com熱心網友回復:
最終我用 .FindFirst 解決了這個問題。感謝您的輸入!
With rs2
.FindFirst "Id = " & rs1![ID]
If rs2.NoMatch Then
Else
.Delete
Exit Do
End If
End With
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/416196.html
標籤:
上一篇:MSAccess中的編號
