首页 > 解决方案 > Excel VBA SQL ADODB 未将行插入工作表(无错误)

问题描述

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

db 工作簿当前有大约 15,000 行之前已插入,但现在当我运行宏时,它没有插入任何内容,也没有错误。我已经单步执行了代码,并且每一行都正常执行。

我需要帮助弄清楚为什么之前没有插入任何东西。

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

编辑:我在我的数据库工作簿的前 8 行中设置了默认值,以免对数据类型造成任何限制,如下所示:

这是 Jet OLEDB 提供程序的问题。它查看电子表格的前 8 行以确定每列中的数据类型。如果该列在前 8 行中不包含超过 256 个字符的字段值,则假定数据类型为文本,其字符限制为 256 个。以下 KB 文章对此问题有更多信息:http:// support.microsoft.com/kb/281517

这个问题可能是由于工作表中有一些空白行,但我无法确认。

标签: sqlexcelvba

解决方案


推荐阅读