执行以下子程序时出现错误3035:“系统资源已超出”:
Private Sub delete_result_staging()
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Set db = CurrentDb
Set qdf = db.QueryDefs("qryWQPassthrough")
qdf.Connect = Me.con_str.Value
qdf.ReturnsRecords = False
qdf.SQL = "TRUNCATE TABLE tblWQResultStaging;"
qdf.Execute
Set qdf = Nothing
Set db = Nothing
End Sub
我正在使用MS Access 2013和SQL Server 2012。
此代码以前有效;当我根据How to increase performance for bulk INSERTs to ODBC linked tables in Access?重构另一个子时,它停止工作。我已将Internet上其他建议中的注册表中的MaxLocksPerFile更改为1,000,000。我重新启动了Access和我的计算机,每次子激发时仍然出现错误。在SQL Server Profiler中,执行代码后,服务器上没有任何活动。指向同一服务器上链接表但通过GUI(而不是通过VBA)连接的表单和报表仍然可以正常工作。
答案 0 :(得分:0)
我发现问题是我在VBA中多次重用了一个直通查询。它不喜欢我上次在代码中使用它时在查询中使用的SQL语句,因此它引发了错误。看起来我需要对使用该查询的早期VBA代码更加谨慎,或者对每个VBA子项使用单独的查询,或者同时使用两者。