ms-access-2013 - VBA“INSERT INTO”错误 - 从 Excel 导入数据
问题描述
我在 excel 中使用 VBA 代码来选择一些数据并将其插入 Access DB。我需要这个用于几张桌子。
问题是:对于其中一些表,我收到如下错误:“INSERT INTO 语法错误”。但是,如果我得到代码生成并用于插入的字符串,并在 SQL 模式表单 Access 中使用它,查询就可以正常工作。所以这没有任何意义。这是其中的一部分:
For j = 6 To lastrow
SQLStr = "INSERT INTO TENSILE(REFERENCE, REF_ID, POSITION, RATIO, YSL0, YSL90, YSL180, YSL270, YST0, YST90, YST180, YST270, UTSL0, UTSL90, UTSL180, UTSL270, UTST0, UTST90, UTST180, UTST270, EL0, EL90, EL180, EL270, ET0, ET90, ET180, ET270, ARL0, ARL90, ARL180, ARL270, ART0, ART90, ART180, ART270) SELECT '" & ws3.Cells(j, 1) & "', REF.ID,'" & ws3.Cells(j, 60).Value & "'"
For i = 61 To 93
SQLStr = SQLStr & "," & ws3.Cells(j, i).Value
Next i
SQLStr = SQLStr & " FROM REF WHERE REF.REFERENCE LIKE '" & ws3.Cells(j, 1) & "'"
ws3.Cells(7, 3).Value = SQLStr
MsgBox (SQLStr)
'rs.Open SQLStr, con, adOpenStatic, adLockOptimistic 'Opening the query
Next j
重要的是要注意,其他表也使用相同的结构并且可以正常工作,例如:
For j = 6 To lastrow
SQLStr = "INSERT INTO METALOGRAPHY(REFERENCE, REF_ID, AUSTGRAINSIZE) SELECT '" & ws3.Cells(j, 1) & "',REF.ID ," & ws3.Cells(j, 18).Value & " FROM REF WHERE REF.REFERENCE LIKE '" & ws3.Cells(j, 1) & "'"
'MsgBox (SQLStr)
'ws3.Cells(2, 3).Value = SQLStr
rs.Open SQLStr, con, adOpenStatic, adLockOptimistic 'Opening the query
Next j
出了什么问题?
解决方案
您是否考虑过更改链接到 Access DB 的方式,以便可以使用如下语句:
db.execute SQLStr
这应该可以解决您的问题
推荐阅读
- jenkins - 指定用于升级安装命令的 Helm 图表名称
- ssh - VS Code SSH-Remote to Rapberry Pi 说:VS Code Server 无法启动
- c# - 在 C# 的 main 方法中创建类实例,错误 CS0120 和警告 CS0169
- java - 有没有办法将日期划分为月份及其每日价值的总和?
- fwrite - fwrite() 大文件大小损坏,我需要脚本帮助
- html - 谁使用 Canvas API 绘制和填充两条略微偏移的曲线
- vue.js - 在鼠标悬停时更改 :src
- python - 使用 Selenium 和 Python 在连接超时时使用 while 循环从头开始
- javascript - 将键分配给 JSON 对象
- javascript - 具有依赖关系的多个调用 redux-thunk