MS Access VBA代码在第二次运行时无法运行

时间:2011-09-27 17:25:42

标签: ms-access vba

以下代码绑定到一个按钮。由于某种原因,下面的代码第一次正确执行。第二次,对于某些用户,它不会填充网站上的字段。问题是什么?

Me!WebBrowser0.Navigate "http://bk00app0001/PMD Image Upload/"

While Me.WebBrowser0.Busy
    DoEvents
Wend

Me!WebBrowser0.Document.getElementById("MainContent_Year").Value = Forms![Main Menu]![SeasonList].Value
Me!WebBrowser0.Document.getElementById("MainContent_ItemNumber").Value = Me.OpenArgs
Me!WebBrowser0.Document.getElementById("MainContent_btnLock").Click

我相信我需要设置我!WebBrowser0 =关闭事件没有任何内容。 但是,我!WebBrowser0 = Nothing引发错误。有关如何做到这一点的任何想法?

更新

第二次调用此代码时MS Access会在遇到此行时抛出以下错误:

Me!WebBrowser0.Document.getElementById("MainContent_Year").Value = Forms![Main Menu]![SeasonList].Value

'Object variable or With block variable not set'  

看起来这是一个时间问题。在设置网页上的任何值之前,我可以通过添加以下代码来解决它:

While Me!WebBrowser0.Document.getElementsByTagName("p").Length < 10
     DoEvents
Wend

我现在收到错误:“运行时错误'430'类不支持自动化或不支持预期的接口”

此错误指的是以下代码行:

Set Cnxn = New ADODB.Connection

以下是上述代码行的屏幕截图: http://postimage.org/image/2v7p8diis/

当我关闭具有调用浏览器代码的按钮的表单时,将调用上面的代码。

1 个答案:

答案 0 :(得分:1)

While Me!WebBrowser0.Document.getElementsByTagName("p").Length < 10
 DoEvents
Wend

解决了第一个问题。

第二个问题是由于引用了用户计算机上不存在的DLL。