fieldname中的连字符导致MS-Access中的INSERT语句失败

时间:2012-08-30 11:10:25

标签: ms-access ms-access-2007

我已经获得了一个MS-Access应用程序来维护和更熟悉Oracle作为dbms我偶尔遇到问题..

今天,当连字符用于列名时,MS-Access看起来有问题...

以下插入语句与NotInList事件相关联,以向列表框添加额外的条目。

  

INSERT INTO tblProductInfo(ProductInfo-Product)   “SELECT”“”& NewData& “”AS ProductInfo-Product;“

但它不能正常工作(第一次报告问题,不确定原始开发人员是否对其进行了测试)。

我用单记录追加查询对它进行了测试,看起来连字符是罪魁祸首,我找不到逃避它的方法..

  

INSERT INTO tblProductInfo(ProductInfo-Product)VALUES(“myData”)

给出的错误是“INSERT INTO语句中的语法错误”

似乎没有其他方法来指定MS-Access字段名,是吗? (方括号仅用于SELECT语句,

所以......我正在呼唤Stackoverflow众神的智慧,并希望有人知道如何解决这个问题......

提前致谢!!

1 个答案:

答案 0 :(得分:3)

你需要方括号:

"INSERT INTO tblProductInfo ([ProductInfo-Product]) Values (""" & NewData & """)"

或者更好的是,避免使用字段和表名中的奇数字符和空格。

方括号用于任何sql语句,其中字段或表名称有问题:

  • 这是保留字
  • 它包含空格
  • 它包含一个特殊字符

您甚至可以将它们与DDL一起使用:

Create Table  tblProductInfo ( [ProductInfo-Product]  Text(50))