【问题标题】:ORA-00917: Missing Comma error in VBORA-00917: VB 中缺少逗号错误
【发布时间】:2013-07-17 19:24:58
【问题描述】:

在尝试写入数据库时​​,我在尝试让一些 VB 代码在 Excel 中工作时遇到了很多麻烦。我不断收到这个逗号错误,但我无法终生看到逗号在哪里丢失......这是代码......

While Not IsEmpty(startRange.Offset(i, 0))

    tentype = startRange.Offset(i, 0).Value
    tendelivery = "EMAIL"
    tenevent = startRange.Offset(i, 1).Value
    tentext = startRange.Offset(i, 2).Value
    tensubject = startRange.Offset(i, 3).Value
    tentrailer = startRange.Offset(i, 4).Value
    tenlanguage = startRange.Offset(i, 5).Value
    tenid = 10 + i




With objCommand
.ActiveConnection = "Driver={Microsoft ODBC for Oracle};Server=*;Uid=*;Pwd=*"
.CommandText = "INSERT INTO TEN_TEMPLATE VALUES (" & tenid & ", " & tendelivery & ", " & tentype & ", " & tenevent & ", " & tentext & ", " & tenlanguage & ", " & tensubject & ", " & tentrailer & ")"
.Execute

End With

    i = i + 1
Wend

如果有任何帮助,我将不胜感激。

谢谢, 布雷特

【问题讨论】:

  • 我建议您更改密码
  • np,顺便说一句,插入语句通常需要列名INSERT INTO TABLE (column1,column2) VALUES (value1,value2)。你的命令中没有那个吗?
  • 我认为这只是在您想指定要插入的数据时,将其他字段保留为 NULL。我所有的字段都是非空的。

标签: sql database excel vba odbc


【解决方案1】:

您的某个值是否可以嵌入逗号,或者更有可能是引号?即使你的建筑看起来不错,这也可能会搞砸生成的 SQL 字符串。

【讨论】:

  • 很有可能是这种情况 - 有什么办法可以处理吗?
  • 使用 Excel 替换功能将一个引号替换为两个引号,这将是一个。请参阅stackoverflow.com/questions/3975042/…(Word,但相同的 VBA 概念)。要验证发生了什么,您可以使用 MsgBox 查看完成字符串。在执行之前,把 MsgBox .CommandText
  • Brett,另外,从名字中我猜你的一些字段是文本。这些需要用 SQL 的引号括起来。因此,如果 TenText 具有“ABCDE”,则 SQL 语句应类似于“INSERT....., 'ABCDE', ...”。您的构建应该类似于(注意单引号) .CommandText = "INSERT ... & ", '" & tentext & "', " & ../ & ")"
  • 感谢 Asantaballa,额外的引语让一切变得不同。
猜你喜欢
  • 1970-01-01
  • 2015-11-21
  • 2018-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-07
  • 1970-01-01
相关资源
最近更新 更多