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

Ms access fieldname中的连字符导致MS Access中的INSERT语句失败,ms-access,ms-access-2007,Ms Access,Ms Access 2007,我已经得到了一个MS Access应用程序来维护,并且更加熟悉Oracle作为dbms,我偶尔会遇到一些问题 今天,当使用连字符作为列名时,MS Access似乎出现了问题 下面的insert语句与NotInList事件耦合,以向列表框添加额外的条目 插入TBLPProductInfo(ProductInfo产品) 选择“&NewData&”作为ProductInfo产品 但是它不起作用了(再也不起作用了?第一次报告问题时,不确定最初的开发人员是否测试了它) 我已经用一个记录追加查询测试了它,看

我已经得到了一个MS Access应用程序来维护,并且更加熟悉Oracle作为dbms,我偶尔会遇到一些问题

今天,当使用连字符作为列名时,MS Access似乎出现了问题

下面的insert语句与NotInList事件耦合,以向列表框添加额外的条目

插入TBLPProductInfo(ProductInfo产品) 选择“&NewData&”作为ProductInfo产品

但是它不起作用了(再也不起作用了?第一次报告问题时,不确定最初的开发人员是否测试了它)

我已经用一个记录追加查询测试了它,看起来连字符是罪魁祸首,我就是找不到逃避的方法

插入TBLPProductInfo(ProductInfo产品)值(“myData”)

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

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

所以…我呼吁诸神的智慧,希望有人知道如何解决这个问题


提前感谢!!

您需要方括号:

"INSERT INTO tblProductInfo ([ProductInfo-Product]) Values (""" & NewData & """)"
或者更好的是,避免字段和表名中出现奇数字符和空格

方括号用于字段或表名有问题的任何sql语句:

  • 这是一个保留字
  • 它包含一个空格
  • 它包括一个特殊的字符
您甚至可以将它们与DDL一起使用:

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

谢谢你的快速回答!!我觉得自己很愚蠢,因为我不知道你可以在括号内使用方括号…啊!