如何在vba导航期间释放内存

时间:2016-02-24 06:32:41

标签: vba ms-access access-vba

关于下面提到的代码内存使用情况的建议,因为它在处理过程中占用了大量内存。请指导如何在每个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

1 个答案:

答案 0 :(得分:0)

ie.Refresh2是多余的 - 下一步操作是导航到新网址。

你应该摆脱所有那些On Error Resume Next陈述 - 它们掩盖了错误。例如。 ie.Quit因为ie之前没有设置任何内容而无法工作。

Set my_data = Nothing阅读其内部文本后可能会有所帮助,但不一定非必要。