我有一个例程,可以在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?谢谢!
答案 0 :(得分:1)
好的,假设这些机器都拥有大致相同的资源,我会尝试:
如果这样可行,我只会编写代码来拆分此文件,并分别导入每个部分。
注意:在装入每件作品之前,请务必退出并重新输入Access。
我在运行的大型ETL进程中遇到了这个错误的错误,并且我将这个过程拆分成更小的块来解决这个问题。
这让我想到了本地访问应用资源'是真正被超越的,而不是系统资源'正如错误所声称的那样。
我知道这个建议对您来说可能很难实现,但迟早该文本文件会变得足够大以阻塞您的任何计算机。