VBA“插入到”错误-从Excel导入数据

时间:2018-11-13 16:44:59

标签: ms-access-2013

我在excel中使用VBA代码来选择一些数据并将其插入Access DB。我需要几个表。

问题是:对于其中的某些表,出现类似“ INSERT INTO语法错误”的错误。但是,如果我得到了代码生成并用于插入的字符串,并以Access模式以Access模式在SQL模式下使用,则查询工作正常。因此,这没有任何意义。这是其中的一部分:

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

出了什么问题?

1 个答案:

答案 0 :(得分:0)

您是否考虑过更改与Access DB的链接方式,以便可以使用如下语句:

db.execute SQLStr

这应该可以解决您的问题