同学们,
我试图用 VBA 做 IE 自动化。在我遇到这个问题之前,一切都按我的意愿进行。 在输入文本字段中输入项目编号,然后单击链接“运行报告”以获取报告。
问题:点击“运行报告”后,没有为我在文本文件中输入的项目号提取报告。但是数据库中所有项目的报告。
可能原因: 链接中有onclick函数,不知道执行“ IE.Doucument.getElementById(runReportID).Click ”时是否调用了这个函数。我还尝试了“ IE.Document.getElementById(runReportID).FireEvent("onclick") ”和“ IE.Document.parentWindow.execScript("return ValidateDate();", "JavaScript") ”,不幸的是,他们没有工作。
当单击“运行报告”按钮时,我不知道如何将我在文本字段中输入的值传递给函数。提交的文本中有事件来完成这项工作吗?
链接“运行报告”和文本字段的 HTML 代码:
<A onclick="return ValidateDate();" id=spsCtrlDefault_ctl02_lbtn_run_qry_rpt title="Click to run report" style="CURSOR: hand; TEXT-DECORATION: none; HEIGHT: 14px; FONT-FAMILY: ariel; FONT-WEIGHT: bold; COLOR: #0033ff" href="javascript:__doPostBack('spsCtrlDefault$ctl02$lbtn_run_qry_rpt','')">[ Run Report ]</A>
<input id="spsCtrlDefault_ctl02_gvQueryColumns_ctl02_txtItem_Code" name="spsCtrlDefault$ctl02$gvQueryColumns$ctl02$txtItem_Code" size="20" class="riTextBox riEnabled" type="text" req_ind="N" tbl_idn="2" value="947519" controltype="text" datatype="varchar" col_idn="1" dbfld="item_revision.item_cde" style="text-transform: uppercase;">
<input id="spsCtrlDefault_ctl02_gvQueryColumns_ctl02_txtItem_Code_ClientState" name="spsCtrlDefault_ctl02_gvQueryColumns_ctl02_txtItem_Code_ClientState" type="hidden" autocomplete="off" value="{"enabled":true,"emptyMessage":"","validationText":"TESTVALUE","valueAsString":"TESTVALUE"}">
链接点击的VBA代码:
IE.Document.getElementById(runReportID).Click