Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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
Excel VBA SQL ADODB未将行插入工作表(无错误)_Sql_Excel_Vba - Fatal编程技术网

Excel VBA SQL ADODB未将行插入工作表(无错误)

Excel VBA SQL ADODB未将行插入工作表(无错误),sql,excel,vba,Sql,Excel,Vba,我的insert语句一直在工作,但随机停止插入,直到我进入要插入的工作簿并手动更改某些内容并保存 db工作簿当前大约有15000行以前插入过,但现在当我运行宏时,它不会插入任何内容,也没有错误。我已经仔细阅读了代码,每一行都正常执行 我需要帮助弄清楚为什么什么都没有被插入,当它以前的工作 Sub Insert Dim con As ADODB.Connection Dim InsertSQL As String InsertSQL = "INSERT INTO [She

我的insert语句一直在工作,但随机停止插入,直到我进入要插入的工作簿并手动更改某些内容并保存

db工作簿当前大约有15000行以前插入过,但现在当我运行宏时,它不会插入任何内容,也没有错误。我已经仔细阅读了代码,每一行都正常执行

我需要帮助弄清楚为什么什么都没有被插入,当它以前的工作

Sub Insert
    Dim con As ADODB.Connection
    Dim InsertSQL As String

    InsertSQL = "INSERT INTO [Sheet1$] ([FIELD1],[FIELD2],[FIELD3],[FIELD4],[FIELD5]) VALUES( 1234567895,9350.00,#9/12/2019#,'username',#9/12/2019 10:05 AM#)"
    Set con = New ADODB.Connection
    con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbpath & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=0""; Mode=ReadWrite;"
    con.Execute InsertSQL
    con.Close
End Sub
编辑: 我已在db工作簿的前8行中设置了默认值,以避免对以下中指定的数据类型造成任何限制:

这是Jet OLEDB提供程序的一个问题。它看的是前8个 用于确定每列中的数据类型的电子表格行。如果 列中不包含超过256个字符的字段值 前8行,然后它假定数据类型为text,它具有 字符限制为256。下面的知识库文章提供了更多信息 关于这个问题:


此问题可能是由于工作表中的一些空行造成的,但我无法确认。

删除InsertSql周围的括号。不更改结果在插入时目标工作簿是否打开或关闭?它将始终关闭可能是网络写入权限已更改?