Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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
HTML/Java表单到Oracle数据库的IE自动化:输入数据不保存到数据库_Html_Excel_Oracle_Vba - Fatal编程技术网

HTML/Java表单到Oracle数据库的IE自动化:输入数据不保存到数据库

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

我已经创建了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()", "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”功能找到了该函数,并检查了在检查文本框元素时列出的事件侦听器