使用不带ID的元素提交表单

时间:2016-05-10 08:11:36

标签: forms vba excel-vba internet-explorer excel

背景:嗨社区。我有个问题。我的老板让我用员工的ID从某个数据库中提取姓名。只有在不使用PHP编写的表单访问数据库时,这才会成为问题。第二个是我必须提取大约10k的结果。我计算了所需的时间,并得到了55个小时的沉闷工作。我说的是我和我即将连接的服务器的完美性能。我认为如果vba可以为我做这件事会很完美。情况如下。

问题:表单位于Intranet上的页面上。用户输入id,当单击“确定”按钮时,将生成一个表(提交前不存在),其中显示员工的姓名。问题是“确定”按钮没有ID,因此使用GetElementById是不可能的。我需要以某种方式提交表格。有人会帮忙吗?

代码:

Sub submitFeedback3()
    Application.ScreenUpdating = False
    Dim IE As Object

    Set IE = New InternetExplorerMedium
    IE.Visible = True
    IE.navigate "SomePHP.php"

    Application.StatusBar = "Submitting"

    While IE.Busy
        DoEvents
    Wend
    Dim doc As Object
    Dim formx As Object
    Set doc = IE.document

    IE.document.getElementById("search_usrn").Value = "someID"

    IE.document.all.Item("Ok").Click

    Application.StatusBar = "Form Submitted"
    IE.Quit
    Set IE = Nothing

    Application.ScreenUpdating = True
End Sub

我在IE.document中设置了一个监视器,它显示了结构。我能找到提交按钮,但我无法触发它。

是在IE.document>表格>项目1>第5项

这有以下属性我可以找到它:

outerHTML "INPUT type=submit value=Ok"
type "submit"
unique id "ms__id3"
value "Ok"

我能以某种方式触发它吗?或者还有其他方法吗? 希望你能帮帮我

1 个答案:

答案 0 :(得分:0)

在我发布问题几分钟后能够管理它。只为其他人试图解决这个问题。如果提交按钮没有ID,您可以强制文档仅使用

提交
document.forms(numberOfForm).submit

我知道但我做得很差。不要重复我的错误,数字从0开始而不是1.所以页面上只有表格的正确数字是0。