Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 连接具有不同数据类型的两个表MS ACCESS-';表达式中的类型不匹配';错误_Sql_Ms Access - Fatal编程技术网

Sql 连接具有不同数据类型的两个表MS ACCESS-';表达式中的类型不匹配';错误

Sql 连接具有不同数据类型的两个表MS ACCESS-';表达式中的类型不匹配';错误,sql,ms-access,Sql,Ms Access,我正在尝试使用两个实时CSV运行access查询,这两个CSV有一个具有不同数据类型(数字和短文本)的公共字段。我发现可以使用“CStr”连接不同的数据类型。我已经在sql视图中将“CStr”添加到我的代码中。请查找以下代码 这为我提供了访问所需的输出,现在我可以在单击“数据表视图”时看到输出。但是,当我尝试将数据(实际上我正在尝试创建一个导出规范,以便可以使用宏导出csv)导出为csv时,我会收到一条“表达式中的类型不匹配”错误消息 这是我的密码: SELECT Sixthform_Reg_Y

我正在尝试使用两个实时CSV运行access查询,这两个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”,我甚至无法在“数据表视图”上查看输出。每次单击数据表视图时,它都会显示“表达式中的类型不匹配”错误消息

如果您能帮助解决此问题,我们将不胜感激

提前谢谢


附加信息:数据类型为EmpoyeId为“短文本”,Person ID为“数字”

请尝试另一种方法:

ON Sixthform_Reg_Year_Groups.Person_id = Val(Students.employeeID)
和/或防止空错误:


好了,伙计们,我已经设法解决了这个问题,结果很简单。这就是我所做的

基本上,我重新导入了链接表。这次在导入窗口中,我单击了“高级”,并将“人员ID”列上的数据类型更改为“短文本”,以与“employeeID”数据类型匹配。然后所有的问题都解决了。(我不知道你能做到这一点)

谢谢大家的回复。仔细阅读你的评论引导我走上了正确的道路


非常感谢

这不仅仅是CSTR——如果学生是学生。employeeID是一个长数据类型,则保持原样,并将加入更改为CLNG(第六个表单注册年组。个人id)。查看完整的列表。请记住,这将减慢查询速度,因为它需要转换每个值,而且正如您所发现的,您无法以图形方式查看。仅供参考,第六个表单的EmpoyeId为“短文本”,Person ID为“数字”。Person\u ID=CLNG(Students.employeeID)应该可以工作了。@DarrenBartrup Cook-当我今天需要在Access查询中从文本转换为双精度时,对类型转换函数(VB)的引用帮我节省了时间。非常感谢。我的工作还有一天是安全的。谢谢你。同样,这两种方法都有效。并在单击“数据表视图”时显示Access上的预期结果。但是,当我尝试导出CSV时,会出现“表达式中的类型不匹配”错误。要导出,我转到:外部数据-->文本文件-->name.csv并单击“确定”,弹出错误。(我实际上正在尝试创建导出规范,以便使用宏导出csv)您可以尝试使用工作查询将数据导入表,然后导出此表。@Gustav
Nz()
在查询中应避免使用。使用
Iif(…为空…)
。请看这一页:(必读:-)
ON CStr(Nz(Sixthform_Reg_Year_Groups.Person_id, 0)) = Nz(Students.employeeID)