HTML/Java表单到Oracle数据库的IE自动化:输入数据不保存到数据库
我已经创建了VBA代码,它可以将web表单打开到Oracle数据库,操纵页面以使所有相关文本框都可见,并从Excel电子表格中输入值。这一切都很好,正如预期的那样HTML/Java表单到Oracle数据库的IE自动化:输入数据不保存到数据库,html,excel,oracle,vba,Html,Excel,Oracle,Vba,我已经创建了VBA代码,它可以将web表单打开到Oracle数据库,操纵页面以使所有相关文本框都可见,并从Excel电子表格中输入值。这一切都很好,正如预期的那样 x = 1 For Each i In Range("dailyCV") IE.document.all(col_1.Item(x)).Value = i Call IE.document.parentWindow.execScript("$('.allowedValues').keyup()", "JavaScrip
x = 1
For Each i In Range("dailyCV")
IE.document.all(col_1.Item(x)).Value = i
Call IE.document.parentWindow.execScript("$('.allowedValues').keyup()", "JavaScript")
IE.document.all(col_2.Item(x)).Value = col_5(x)
Call IE.document.parentWindow.execScript("$('.allowedValues').keyup()", "JavaScript")
x = x + 1
Next i
当我提交表格时,我收到一条祝贺信息,告知我的数据已被接受并更新。但当我去查看这些数据时,它就不见了。当我手动更新网页时,数据会按预期更新
关于这种行为的起因以及如何克服它,你有什么想法吗
它位于内部网上,因此我无法共享URL。我个人认为,网页上的内容区别于我如何输入数据和何时输入数据
x = 1
For Each i In Range("dailyCV")
IE.document.all(col_1.Item(x)).Value = i
IE.document.all(col_2.Item(x)).Value = col_5(x)
x = x + 1
Next i
有没有办法让VBA模拟数字的实际输入,或者更简单的处理方法?问题的根本原因是输入值没有启动检查输入有效性的函数。然后,此函数将数据馈送到一个数组中,该数组最终保存到数据库中。当我试图在字段中键入小数或字符时,我被卡住了;它们自动变为零。下面是有问题的代码片段:
$('.allowedValues').keyup(function(){
var n = this.value;
if(this.value.length >0 && !(isNaN(this.value)) && !(n.indexOf(".")>0) ){
//Nothing
}else {
this.value="0";
}
});
启动此功能可以在提交数据后将其保存到数据库中。我用下面的方法修改了上面的代码。然后代码按预期工作
x = 1
For Each i In Range("dailyCV")
IE.document.all(col_1.Item(x)).Value = i
Call IE.document.parentWindow.execScript("$('.allowedValues').keyup()", "JavaScript")
IE.document.all(col_2.Item(x)).Value = col_5(x)
Call IE.document.parentWindow.execScript("$('.allowedValues').keyup()", "JavaScript")
x = x + 1
Next i
我使用Google Chrome的“Inspect Elements”功能找到了该函数,并检查了在检查文本框元素时列出的事件侦听器