【发布时间】:2018-12-14 06:39:37
【问题描述】:
所以我对 SQL 编码有点陌生,我的公司有一个预先存在的采购订单系统,运行一个 .xlsx 启用宏的工作表。
我不断收到“靠近“,”的语法不正确,当我在这里或那里更改随机逗号时,我得到不同的错误。当它抛出错误并且我热调试时,它会突出显示@ 987654321@线
那么在每个受过良好训练的人眼中,有什么特别突出的吗? 谢谢!
Dim Report As Worksheet
Set Report = Excel.ActiveSheet
SQL = "insert into Purchases.dbo.POs values(" & Range("H12").Value & "," & Range("H30").Value & Excel.WorksheetFunction.Sum(Report.Range("F16:F29")) & "," & Range("A34").Value & _
"','" & Range("F7").Value & "','" & Range("C12").Value & "','" & Range("A38").Value & "',0,'" & Code & "')"
'MsgBox SQL
Set RS = Conn.Execute(SQL)
【问题讨论】:
-
你能打印出SQL语句是什么吗?您可以在调试器中检查变量或在即时窗口中打印它
-
我会将长 SQL 字符串分解为辅助变量,然后您可以在调试时更清楚地看到它们。 excel单元格中的值是否有逗号,例如单元格H12?还是空白?
-
你能包含'MsgBox SQL'的输出吗?另外,您使用的是什么 DBMS(MySQL、SQL Server 等)?
-
您包含的任何字段中是否有字符串?如果是,您将必须传递字符串文字。 (N'... ' 代表 NVARCHAR 和 '... ' 代表 VARCHAR)如果存在包含撇号的字符串,则必须将其加倍以对其进行转义。
-
您可能需要一个左撇号来表示您从 A34 获得的值,因为您有一个结束撇号。
标签: sql excel vba syntax-error