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

Access 2010 Error 3035 System Resources Exceeded on Update Query

我有一个例程可以导入一个 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. 将 480 MB 的文本文件拆分为两个 240 MB 的文件。
  2. 查看您的问题机器是否可以处理较小的数据块。

如果这行得通,我会编写代码来拆分这个文件,然后分别导入每个部分。

注意:每次加载前请务必退出并重新进入Access。

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

这让我认为 'Local Access Application Resources' 才是真正被超过的,而不是 'System Resources',正如错误所声称的那样。

我知道这个建议可能会让您难以实施,但该文本文件迟早会变得大到足以让您的任何计算机窒息。