INSERT INTO 语句 RTE '-2147217900 (80040e14)' 中的语法错误:
Syntax error in INSERT INTO statement RTE '-2147217900 (80040e14)':
我已经尝试将 strSQL 缩减为只有一个字段并且一切正常。一旦我添加第二个字段,我就开始收到错误消息。这告诉我参考是正确的。我在 () 周围尝试了很多不同的间距,但也没有成功。
?strSQL
INSERT INTO tbl_buyer_column (ship_id, aels_id, buyer_wss, column, date_created)VALUES(23, 13, K, 1, #04/17/2015#)
Public Sub fun_insert_into(lngship_id As Long, lngAels_id As Long, strBuyer_wss As String, lngColumn As Long, datDate_created As Date)
Dim strSQL As String
Dim adoCon As ADODB.Connection
Dim adoCmd As ADODB.Command
Set adoCon = CurrentProject.Connection
Set adoCmd = New ADODB.Command
strSQL = "INSERT INTO tbl_buyer_column (ship_id, aels_id, buyer_wss, column, date_created)" & _
"VALUES(" & lngship_id & ", " & lngAels_id & ", " & strBuyer_wss & ", " & lngColumn & ", " & SQLDate(datDate_created) & ")"
With adoCmd
.ActiveConnection = adoCon
.CommandType = adCmdText
.CommandText = strSQL
.Execute
End With
adoCon.Close
Set adoCon = Nothing
Set adoCmd = Nothing
End Sub
Column
是一个 reserved word。这可能是语法错误的根源。如果是这样,您可以通过将字段名称括在方括号中来避免该错误。更好的是,如果可能的话,用非保留字重命名该字段。
如果该建议确实消除了第一个错误,您可以通过在 VALUES
列表中的字符 K 周围添加引号来避免以后的另一个错误。
在 Access 查询设计器中将其作为新查询进行测试。如果它工作正常,请调整您的 VBA 代码以生成相同的 INSERT
语句文本。
INSERT INTO tbl_buyer_column (ship_id, aels_id, buyer_wss, [column], date_created)
VALUES (23, 13, 'K', 1, #04/17/2015#)
另请注意,您可以对 INSERT
使用参数查询。这种方法的一个好处是您可以避免由于值定界符引起的问题。
我已经尝试将 strSQL 缩减为只有一个字段并且一切正常。一旦我添加第二个字段,我就开始收到错误消息。这告诉我参考是正确的。我在 () 周围尝试了很多不同的间距,但也没有成功。
?strSQL
INSERT INTO tbl_buyer_column (ship_id, aels_id, buyer_wss, column, date_created)VALUES(23, 13, K, 1, #04/17/2015#)
Public Sub fun_insert_into(lngship_id As Long, lngAels_id As Long, strBuyer_wss As String, lngColumn As Long, datDate_created As Date)
Dim strSQL As String
Dim adoCon As ADODB.Connection
Dim adoCmd As ADODB.Command
Set adoCon = CurrentProject.Connection
Set adoCmd = New ADODB.Command
strSQL = "INSERT INTO tbl_buyer_column (ship_id, aels_id, buyer_wss, column, date_created)" & _
"VALUES(" & lngship_id & ", " & lngAels_id & ", " & strBuyer_wss & ", " & lngColumn & ", " & SQLDate(datDate_created) & ")"
With adoCmd
.ActiveConnection = adoCon
.CommandType = adCmdText
.CommandText = strSQL
.Execute
End With
adoCon.Close
Set adoCon = Nothing
Set adoCmd = Nothing
End Sub
Column
是一个 reserved word。这可能是语法错误的根源。如果是这样,您可以通过将字段名称括在方括号中来避免该错误。更好的是,如果可能的话,用非保留字重命名该字段。
如果该建议确实消除了第一个错误,您可以通过在 VALUES
列表中的字符 K 周围添加引号来避免以后的另一个错误。
在 Access 查询设计器中将其作为新查询进行测试。如果它工作正常,请调整您的 VBA 代码以生成相同的 INSERT
语句文本。
INSERT INTO tbl_buyer_column (ship_id, aels_id, buyer_wss, [column], date_created)
VALUES (23, 13, 'K', 1, #04/17/2015#)
另请注意,您可以对 INSERT
使用参数查询。这种方法的一个好处是您可以避免由于值定界符引起的问题。