Access Update 3035更新查询时超出系统资源

时间:2015-05-15 14:41:47

标签: sql access-vba ms-access-2010 jet-sql

我有一个例程,可以在481 MB的文本文件中导入并执行一些转换。

例程在一个工作站的代码块上崩溃(但在我们的其他工作站上运行正常):

' All of the eleven-digit telephone numbers encountered end in 0. If we get rid of the ending 0,  
' we may end up with a valid telephone number.  
SQLString = "UPDATE " & sTableName & _  
            " SET [ServAddrPhone] = Int([ServAddrPhone]/10) WHERE [ServAddrPhone] >9999999999 ; "
RoboCallDB.Execute SQLString, dbFailOnError

[ServAddrPhone]是双倍的。代码块扫描大约800,000条记录,查找大于10位的电话号码,并且通常可以找到大约3,000条符合更新条件的记录。

如何优化此代码以避免错误3035?谢谢!

1 个答案:

答案 0 :(得分:1)

好的,假设这些机器都拥有大致相同的资源,我会尝试:

  1. 将480 MB文本文件拆分为两个240 MB的文件。
  2. 查看您的问题机器是否可以处理较小的块。
  3. 如果这样可行,我只会编写代码来拆分此文件,并分别导入每个部分。

    注意:在装入每件作品之前,请务必退出并重新输入Access。

    我在运行的大型ETL进程中遇到了这个错误的错误,并且我将这个过程拆分成更小的块来解决这个问题。

    这让我想到了本地访问应用资源'是真正被超越的,而不是系统资源'正如错误所声称的那样。

    我知道这个建议对您来说可能很难实现,但迟早该文本文件会变得足够大以阻塞您的任何计算机。