SQL insert语句给出3134运行时错误。为什么呢?
Private Sub Command0_Click()
Open "C:\Users\steven.EOPESTATE\Desktop\Sharp Sales\TRMSAVE01.txt" For Input As #1
Do Until EOF(1)
Dim TranSQL As String
Line Input #1, varLine
testvarline = Split(varLine, ",")
If testvarline(0) = "$Tran" Then
Debug.Print testvarline(0), testvarline(1), testvarline(2), testvarline(3), testvarline(4), testvarline(5), testvarline(6), testvarline(7), testvarline(8), testvarline(9)
TranSQL = "Insert into Transaction ([Tran ID], [1], [2], [3], [4], [5], [6], [Date], [Time], [9]) Values (testvarline(0), testvarline(1),testvarline(2),testvarline(3),testvarline(4), testvarline(5),'testvarline(6)',# " & Format(testvarline(7), "MM/DD/YY") & "#,# " & Format(testvarline(8), "HH:MM:SS") & "#,testvarline(9)"
DoCmd.RunSQL TranSQL
End If
Loop
Close #1
答案 0 :(得分:1)
您实际上是在尝试将testvarline(0)
插入tran ID
而不是值,即为了简化您尝试运行的插入语句:
INSERT INTO Transaction ([Tran ID])
VALUES (testvarline(0));
哪个是无效的SQL,您需要正确构建插入语句:
TranSQL = "INSERT .... VALUES(" & testvarline(0) & ", " & testvarline(1) & ...
因此,您实际上将数组中的值放入insert语句中。
不幸的是,我对VBA的了解并没有延伸到使用参数化查询,如果可能的话,我会推荐它,因为你可以通过SQL Injection