Access 2016 - 连接的Excel Tbl制作成Qry - 尝试不匹配时获取数据类型不匹配

时间:2017-07-27 17:33:32

标签: sql excel ms-access

这似乎是一个非常简单的问题,但是,我仍然没有摆脱数据类型不匹配。情形:

- > Excel文件链接在表[tbl_Mast_CC_List]中,我通过查询将可能的成本中心编号转换为安全值,在成本中心或前面的000之前没有文本变量,下一个箭头

- > qry_CC_Clean是CostCenter:Val([tbl_Mast_CC_List.CostCenter])

- >然后我创建了不匹配的查询,这里是SQL:

SELECT 
    qry_CC_S1_Clean_F2F_Alloc.DataName
    , qry_CC_S1_Clean_F2F_Alloc.Year
    , qry_CC_S1_Clean_F2F_Alloc.CostCenter
FROM qry_CC_S1_Clean_F2F_Alloc 
LEFT JOIN qry_CC_S1_Clean_Mast_CC_List 
    ON qry_CC_S1_Clean_F2F_Alloc.CostCenter = qry_CC_S1_Clean_Mast_CC_List.CostCenter
WHERE (((qry_CC_S1_Clean_Mast_CC_List.CostCenter) Is Null))
ORDER BY qry_CC_S1_Clean_F2F_Alloc.CostCenter;

我唯一能让它发挥作用的是,如果我制作查询表,我真的不想这样做。任何建议都会非常感激,因为我必须针对众多表格运行这种无与伦比的查询,以确保公司不会错过任何成本中心。谢谢!

1 个答案:

答案 0 :(得分:0)

您的问题可能是由于使用val()函数并尝试针对空值进行测试。我的理解是val()没有返回空值,当它找不到任何东西时它返回0。您可能最好以相反的方向运行转换,即在数字CostCenter字段上使用CStr()并将其与Excel中的文本数据进行比较。

或者,您可以将Excel字段本身更改为数字格式而不是文本。