sql - 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
这个问题可能是由于工作表中有一些空白行,但我无法确认。
解决方案
推荐阅读
- node.js - 如何在不使用 iisnode 的情况下从 IIS/Windows Server Edition OS 提供 NodeJS 应用程序?
- image - Flutter 保存和加载图像 - 图像选择器/图像裁剪
- html - 增加框标题内行的宽度
- reactjs - 如何在syncfusion的甘特图中动态更新任务(只有一个任务)
- python-3.x - 为什么除了输出之外我没有得到任何东西?
- graphql - 如何在 Hasura GraphQL 中插入嵌套表值?
- access-control - 是否可以更改 wia 访问权限 (4102)
- autodesk-forge - Autodesk 转换为 svf 失败
- php - 使用 .htaccess 从特定位置加载索引文件且 url 不存在
- c - 链接 C 库时出错:无法识别 libsodium.la 文件