我在Access 2013中构建查询时遇到问题。数据库不是我的,我唯一能控制的就是这个查询。有一个表,我从中拉出7个字段,最后在查询中添加第8个字段来进行字符串操作。
但是,我不断收到“查询表达式'fieldname'中日期的语法错误。”每当我点击箭头对字段进行排序时出错。奇怪的是,在排序非日期字段时会弹出这些错误。排序日期字段时,我在查询表达式'发布日期'中得到“语法错误(缺少运算符)。”
这是在重新构建之后发生的。我没有WHERE条件,只有SELECT和FROM。想法?
这是sql查询,虽然我主要在查询设计视图中工作:
SELECT Transmissions.[Job#], Transmissions.[Part#], Transmissions.TransmissionSN, Transmissions.Status, Transmissions.[Release Date], Transmissions.[Build Book Printed], Transmissions.[ID Tags Required]
FROM Transmissions;
答案 0 :(得分:0)
通常,这意味着字段名称丢失或拼写错误。
尝试运行此内容以查看:
SELECT * FROM Transmissions;
答案 1 :(得分:0)
嗯......看起来你是设计糟糕的数据库的幸运继承者。
在字段名称中使用特殊字符只是在寻找麻烦。而且你已经找到了那个麻烦。
Access使用#
符号为查询比较指定日期类型。如:
dtSomeDate = #2/20/2017#
您使用#
标志围绕日期。
在您的情况下,查询认为[Job#]
和[Part#]
正在尝试换行日期。但当然,情况并非如此,因此失败了。
您可以尝试几种解决方法。 (我留给你试验。)
1)您可以尝试重命名查询中的问题字段。那样:
Transmissions.[Job#]
变为Transmissions.[Job#] as JobNum
和
Transmissions.[Part#]
变为Transmissions.[Part#] as PartNum
2)您可以尝试将[传输]表复制到您创建的新表 没有命名问题。
3)将[Transmissions]表导出为CSV文件,然后将其重新导入新文件 没有命名问题的表(或可能是新数据库)。
以下是微软文章的链接,该文章告诉您为什么要避免使用Access中的特殊字符:
希望能让你走上正轨。 :)