在Access 2007中使用VB自动提交HTML表单

时间:2013-08-23 15:19:51

标签: html forms ms-access-2007 access-vba performance-testing

我在这个方面已经结束了。

我正在处理的项目的一部分需要与HTML表单进行交互,以在基于Web的外部工具上显示正确的页面。我已经设法使这个表单接受输入的变量并使用document.write动态生成,但是我无法可靠地执行的操作是以不会抛出错误的方式触发'Submit'操作

到目前为止,我一直在使用一个简单的getelementbyid.click调用...这里列出了一些我试图让它触发的事情:

TestLoop:
   Pause (1)
   BrowserControl.document.getelementbyid("Submit").click
   On Error Goto TestLoop

*(“错误循环”策略根本不起作用。)

   Pause (3)
   BrowserControl.document.getelementbyid("Submit").click

(这实际上效果最好,但是因为不同的PC可能有不同的硬件规格和打开的应用程序可能会降低它的速度,对我来说有用的东西并没有为另一个测试人员工作。如果我做的太长了,我最终增加了一个表格,我已经担心太慢了。)

<script type="text/javascript">
    window.onload = function(){
     document.getElementById('Submit').click();;
    }
</script>

(在生成的HTML中嵌入自动触发器,令人沮丧,在嵌入式Web浏览器控件的外部工作,但不在其中。)

Private Sub wb_NavigateComplete2(ByVal pDisp As Object, URL As Variant)

 If Me.BrowserControl.Document.URL= "about:blank" Then
        BrowserControl.document.getelementbyid("Submit").click
 End If
End Sub

(由于一些疯狂的原因,使用debug.print我发现导航在实际完成之前已完成,所以这根本不起作用。)

我可能错过了一些......我从一堆不同的角度一直在攻击这个问题。诀窍是我必须使用HTML表单与我没有管理员权限的系统进行交互,因此改变收到信息的方式并不是真正的选择。

我的最后一句思路是看看我是否可以使用直接VB模仿FORM提交,绕过了对“点击”事件的需求,但是搜索与Access 2007表单的HTML FORM交互相关的内容非常困难。 :P

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

那么,在经过7个月的测试和数千次激活之后,拆分“工作”似乎已经成功了。

Form_Open:初始化浏览器对象并将其地址设置为about:blank

Form_Current:使用Document.Write调用“绘制”Web表单的公式,然后进入循环...

TestLoop:
   BrowserControl.document.getelementbyid("Submit").click
   On Error Goto TestLoop