当使用 Access 复制数据时,可能会出现 Runtime error 3164 的错误。该错误表明 Access 无法获得要复制的记录锁定,因为另一个用户正在使用该记录。以下是一个示例代码,演示如何解决该问题:
Private Sub btnCopy_Click()
On Error GoTo Err_Handler
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("SELECT * FROM Customers WHERE CustomerID = " & Me.txtCustomerID)
' Copy the record to the clipboard
DoCmd.RunCommand acCmdCopy
' Create a new record
DoCmd.GoToRecord , , acNewRec
' Paste the clipboard contents into the new record
DoCmd.RunCommand acCmdPasteAppend
rs.Close
db.Close
Exit Sub
Err_Handler:
MsgBox "Error " & Err.Number & ": " & Err.Description, vbExclamation, "Error"
rs.Close
db.Close
End Sub
上述代码中,我们使用 DAO 记录集和数据库对象来访问和复制记录。使用 DoCmd.RunCommand acCmdCopy
函数将选定的记录复制到剪贴板,并使用 DoCmd.RunCommand acCmdPasteAppend
函数将剪贴板内容粘贴到新记录中。
此外,我们使用错误处理程序 (On Error GoTo Err_Handler
) 来捕获所有可能出现的错误,并显示相应的错误消息。
通过以上步骤,就能够成功地解决 Access 复制时出现的 Runtime error 3164 错误。