【发布时间】:2018-10-03 12:09:49
【问题描述】:
我正在尝试使用两个具有不同数据类型(数字和短文本)的公共字段的实时 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 是 'Short Text' 和 Person ID 是 'Number'
【问题讨论】:
-
不仅仅是
CSTR- 如果Students.employeeID是一个长数据类型,那么保持原样并将连接更改为CLNG(Sixthform_Reg_Year_Groups.Person_id)。查看Type Conversion Functions 以获取完整列表。请记住,这会降低查询速度,因为它需要转换每个值 - 正如您所发现的,您无法以图形方式查看。 -
仅供参考,数据类型是 EmpoyeeID 是 'Short Text' 而 Person ID 是 'Number'
-
ON Sixthform_Reg_Year_Groups.Person_id = CLNG(Students.employeeID)应该可以工作。 -
@DarrenBartrup-Cook - 今天需要在 Access 查询中从 Text 转换为 Double 时,对类型转换函数 (VB) 的引用为我提供了帮助。谢谢你。我的工作又安全了一天。