我正在尝试使用两个实时CSV对访问进行查询,这些CSV具有一个具有不同数据类型(数字和短文本)的公共字段。我发现您可以使用'CStr'连接不同的数据类型。我在SQL视图的代码中添加了“ CStr”。请找到下面的代码。
这给了我想要访问的输出,当我单击“数据表视图”时,现在可以看到输出。但是,当我尝试将数据导出(实际上是在尝试创建导出规范,以便可以使用宏导出csv)作为csv时,会收到“表达式中类型不匹配”的错误消息。
这是我的代码:
SELECT Sixthform_Reg_Year_Groups.Forename,
Sixthform_Reg_Year_Groups.Surname,
Sixthform_Reg_Year_Groups.Reg, Students.objectGUID
FROM Sixthform_Reg_Year_Groups INNER JOIN
Students
ON CStr(Sixthform_Reg_Year_Groups.Person_id) = Students.employeeID
WHERE (((Sixthform_Reg_Year_Groups.Reg)="12E"));`
我也尝试过在两边都添加“ CStr”。如下所示,但遇到相同的问题。
FROM Sixthform_Reg_Year_Groups INNER JOIN
Students
ON CStr(Sixthform_Reg_Year_Groups.Person_id) = CStr (Students.employeeID)
WHERE (((Sixthform_Reg_Year_Groups.Reg) = "12E"));`
当然,如果没有“ CStr”,我什至无法在“数据表视图”上查看输出。每当我单击数据表视图时,它就会显示“表达式中的类型不匹配”错误消息。
任何解决此问题的帮助将不胜感激。
先谢谢了。
其他信息:数据类型为EmpoyeeID为“短文本”,人员ID为“数字”
答案 0 :(得分:1)
好的,我设法解决了这个问题,最后证明很简单。这就是我所做的。
基本上,我重新导入了链接表。这次,在导入窗口中,我单击了“高级”,并在“人员ID”列上将数据类型更改为“短文本”,以与“ employeeID”数据类型匹配。然后所有问题都解决了。 (我不知道你能做到)
谢谢大家的答复。通过您的评论引导我走了正确的道路。
非常感谢。
答案 1 :(得分:0)
反过来尝试:
ON Sixthform_Reg_Year_Groups.Person_id = Val(Students.employeeID)
和/或防止 Null 错误:
ON CStr(Nz(Sixthform_Reg_Year_Groups.Person_id, 0)) = Nz(Students.employeeID)