标准表达式中的数据类型不匹配'在Access中

时间:2015-10-16 00:47:40

标签: ms-access

我在Access2013中有一个运行良好的查询。然后我添加了一个标准表达式" AND item_name = '553046514'"。它看起来像下面。后来我决定删除添加的标准,但后来我收到了错误。我试图以多种方式改变这个标准,但大多数都带来了同样的错误:

AND item_name Not Like '000*'
AND item_name <> '0'
AND item_name like '000*'
AND item_name not in ('0')
AND item_name not in ('a', 'b')
AND item_name like '5*'

但那些工作: AND item_name like '0*'(什么都不返。但没有错误) AND item_name like '4*'(什么都不返回。但没有错误)

当我删除条件但将DataValue函数更改为Format()函数时,它甚至可以工作。但是在查询之上查询时会出现同样的错误。

我不知道出了什么问题,以及为什么数据类型有问题。

查询:

SELECT i.item_name AS ITEM, s.site_name AS DC, sum(r_quantity) AS R_DAY, sum(p_quantity) AS P_DAY, DateValue(r_ship_date) AS RQST_SP_DATE, DateValue(p_ship_date) AS PRMS_SP_DATE
FROM s, sos, i
WHERE sos.site_id = s.site_id
AND sos.item_id = i.item_id
AND item_name = '553046514'
AND s.site_name not like 'Agg-*'
AND sos.state = 'Open'
GROUP BY i.item_name, site_name, DateValue(r_ship_date), DateValue(p_ship_date)
ORDER BY i.item_name, site_name, DateValue(r_ship_date), DateValue(p_ship_date);

2 个答案:

答案 0 :(得分:0)

我知道NOT IN通常与子查询的期望相关联。您可能想要从

更改
AND item_name Not Like '000*'
AND item_name <> '0'
AND item_name like '000*'
AND item_name not in ('0')
AND item_name not in ('a', 'b')
AND item_name like '5*'

AND NOT item_name Like '000*'
AND item_name <> '0'
AND item_name like '000*'
AND NOT item_name in ('0')
AND NOT item_name in ('a', 'b')
AND item_name like '5*'

答案 1 :(得分:0)

我想我发现了这个问题。对于某个项目(553046512),r_ship_date为NULL,不能由DateValue或CDate处理。因此,在这种情况下,将会出现数据类型不匹配错误。

我的不同标准的审判行为不同,因为它们可能包括也可能不包括第553046512项。