关于下面提到的代码内存使用情况的建议,因为它在处理过程中占用了大量内存。请指导如何在每个url处理后释放momory,以便没有导航错误。下面给出了代码。
Dim RowCount As String
stDB = "Data Source=C:\off_Ch.accdb"
stProvider = "Microsoft.ACE.OLEDB.12.0"
With cn
.ConnectionString = stDB
.Provider = stProvider
.Open
Set ie = Nothing
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
RowCount = DMin("[id]", "url", "[Flag] = False")
maxid = DMax("[id]", "url", "[Flag] = False")
Do While RowCount <> ""
Set HTML = Nothing
url = DLookup("[url]", "url", "ID = " & ([RowCount]))
priceval = ""
ie.navigate url
On Error Resume Next
Do While ie.ReadyState <> 4 Or _
ie.Busy = True
On Error Resume Next
DoEvents
Loop
Set HTML = ie.Document
Set my_data = HTML.getElementById("breadcrumbResultArea")
selrem = my_data.innerText
stSQL = "INSERT INTO off (seller_identity, url,id) " & _
"Values ('" & selrem & "','" & url & "','" & RowCount & "')"
cn.Execute stSQL
If RowCount > maxid Then Exit Do
RowCount = RowCount + 1
On Error Resume Next
ie.Refresh2
Loop
Set ie = Nothing
Set HTML = Nothing
End With
ie.Quit
Set ie = Nothing
End Sub
错误代码如下所示
错误更多细节如下。
问题签名: 问题事件名称:APPCRASH 应用程序名称:IEXPLORE.EXE 应用版本:11.0.9600.18124 应用程序时间戳:5641278d 故障模块名称:jscript9.dll 故障模块版本:11.0.9600.18124 故障模块时间戳:56413027 例外代码:c0000005 例外抵消:0007772c 操作系统版本:6.1.7601.2.1.0.272.7 区域设置ID:1033 附加信息1:25c4 附加信息2:25c494805ba8021c831f7da5514f4335 附加信息3:3eda 附加信息4:3eda1b263b257f9fa235fc5fb2929be2
在线阅读我们的隐私声明: http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409
如果没有在线隐私声明,请离线阅读我们的隐私声明: C:\ WINDOWS \ SYSTEM32 \ EN-US \ erofflps.txt
答案 0 :(得分:0)
ie.Refresh2
是多余的 - 下一步操作是导航到新网址。
你应该摆脱所有那些On Error Resume Next
陈述 - 它们掩盖了错误。例如。 ie.Quit
因为ie
之前没有设置任何内容而无法工作。
Set my_data = Nothing
阅读其内部文本后可能会有所帮助,但不一定非必要。