非日期字段的查询表达式中的日期语法错误

时间:2018-01-05 17:06:50

标签: ms-access

我在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;

2 个答案:

答案 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中的特殊字符:

Big Bad Special Chars

希望能让你走上正轨。 :)