访问2010错误3035系统资源超出更新查询



我有一个例程,它导入并对一个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]是双精度对象。代码块扫描大约80万条记录,寻找大于10位数字的电话号码,通常会找到大约3000条符合更新条件的记录。

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

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

  1. 将480mb的文本文件拆分为两个240mb的文本文件。
  2. 查看您的问题机器是否可以处理较小的块。

如果这有效,我将编写代码将该文件拆分,并分别导入每个部分。

注意:在加载每个片段之前,请务必退出并重新进入Access。

我在运行的一个大型ETL进程中遇到了这个确切的错误,我最终将进程分成更小的块来解决这个问题。

这使我认为真正超出的是"本地访问应用程序资源",而不是错误声明的"系统资源"。

我知道这个建议对你来说可能是一个痛苦的实现,但迟早这个文本文件会变得足够大,足以阻塞你的任何一台计算机。

最新更新