【发布时间】:2012-08-26 10:38:33
【问题描述】:
我正在事务中执行一个简单的UPDATE tblTable SET DataSet=3,但在尝试运行它几秒钟后,我得到一个 3035 - 超出系统资源。大约有 30K 行。
Dim db As DAO.Database, wrk As DAO.Workspace, errCount As Long, stSQL As String
Set db = CurrentDb
Set wrk = DBEngine.Workspaces(0)
errCount = 0
wrk.BeginTrans
Debug.Print "There are no existing entries in the selected DataSet, preparing to proceed..."
' - -- ---
stSQL = "UPDATE tblImportCleaned SET DataSetID=" & Me.lstDataSets
db.Execute stSQL, dbSeeChanges
If db.RecordsAffected < 1 Then errCount = errCount + 1
Me.frmImport_CleanedSubform.Requery
' - -- ---
If errCount = 0 Then
If MsgBox("There were no errors, would you like to COMMIT the changes?", vbYesNo) = vbYes Then
wrk.CommitTrans
Else
wrk.Rollback
End If
Else
wrk.Rollback
End If
wrk.Close
请知道为什么会发生这种情况以及如何避免它。
【问题讨论】:
-
表是 MS Access 还是从另一个 DB 链接?
-
如果是MS Access,是因为Transactions,但我不知道如何避免问题,但保留交易。
-
是的,它们是 MS Access 表。
-
有一个帖子我记不太清了,如果您正在更新,Access 在更新期间需要双倍的空间(记录数)。我怀疑您可能超出了记录限制,但我目前无法找到详细信息。
-
我会仔细阅读其他帖子,如果你解决了请告诉我;)
标签: vba transactions ms-access-2010