Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Access 2007中使用VB自动提交HTML表单_Html_Vba_Forms_Ms Access - Fatal编程技术网

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

在Access 2007中使用VB自动提交HTML表单,html,vba,forms,ms-access,Html,Vba,Forms,Ms Access,在这件事上我束手无策 我正在处理的项目的一部分需要与HTML表单交互,以便在外部基于web的工具上显示正确的页面。我已经设法使此表单接受输入的变量,并使用document.write动态生成,但我无法可靠地触发“提交”操作,而不会抛出错误91 到目前为止,我一直在使用一个简单的getelementbyid.click调用。。。以下是我试图让它触发的几件事: TestLoop: Pause (1) BrowserControl.document.getelementbyid("Subm

在这件事上我束手无策

我正在处理的项目的一部分需要与HTML表单交互,以便在外部基于web的工具上显示正确的页面。我已经设法使此表单接受输入的变量,并使用document.write动态生成,但我无法可靠地触发“提交”操作,而不会抛出错误91

到目前为止,我一直在使用一个简单的getelementbyid.click调用。。。以下是我试图让它触发的几件事:

TestLoop:
   Pause (1)
   BrowserControl.document.getelementbyid("Submit").click
   On Error Goto TestLoop
*(错误循环策略根本不起作用。)

(这实际上效果最好,但因为不同的PC可能有不同的硬件规格和开放式应用程序,可能会减慢速度,对我有效的东西对另一个测试人员不起作用。如果时间太长,我最终会在一个我已经担心过慢的表单上增加额外的延迟。)

(出于某种疯狂的原因,使用debug.print我发现它说导航在实际完成之前就已经完成了,所以这根本不起作用。)

我可能错过了一些。。。我从不同的角度对此进行了探讨。诀窍是我必须使用HTML表单与这个我没有管理员权限的系统进行交互,因此更改信息接收方式实际上不是一个选项

我的最后一个思路是看看是否可以使用纯VB模拟表单提交,绕过“单击”事件的需要,但搜索与Access 2007表单交互的HTML表单相关的内容异常困难:P


任何帮助都将不胜感激

好吧,经过7个月的测试和数千次的激活,拆分“工作”似乎成功了

Form_Open:初始化浏览器对象并将其地址设置为大约:空白

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

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

错误91会给你更多的错误信息吗?很抱歉,我认为错误91是非常标准的,不想给初始帖子增加太多额外的混乱。“Object variable或With block variable not set”(对象变量或未设置块变量)我认为这意味着调用“单击”操作时尚未绘制“提交”按钮。我找到了一个似乎有效的解决方案,但我不能100%相信它不会再次崩溃。。。我将原本都是Form_Open的代码分为Form_Open和Form_Current。Form_Open结束时,浏览器控件导航到大约:空白,然后Form_Current开始于document.write代码和单击操作。到目前为止,我还没有出现任何错误91。这似乎是一个正确的修复方法,还是有更好的建议?很多时候,我发现表单的控件在表单打开时可能不可靠。因此,我习惯性地推迟处理其控件的任何事情,以形成负载。表单加载之后,表单流发生得更晚。因此,到那时,它们都应该可用。我不确定这是问题的根源,但你的结果听起来很有希望。:-)是 啊我发现了一个困难的方法,我需要将回车键切换到下一行而不提交评论。除息的
<script type="text/javascript">
    window.onload = function(){
     document.getElementById('Submit').click();;
    }
</script>
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
TestLoop:
   BrowserControl.document.getelementbyid("Submit").click
   On Error Goto TestLoop