我在单独的链接表中有两个字段,它们具有相同的数据,但数据类型不同。我无法更改表中的数据类型。我正在尝试基于此数据将两个表连接在一起的查询,但由于类型不同,我需要将数字转换为字符串。我一直在尝试的,基本上是这样的:
...
FROM Table1 LEFT JOIN Table2 ON CStr([Table1].[Column]) = Table2.Column
...
我只是不断收到错误消息,主要是“不支持加入表达式”。
任何人都可以阐明我可能做错了什么/我可以做得更好吗?
谢谢你。
最佳答案
这是您的 FROM
条款重新格式化:
FROM
Table1.Column
LEFT JOIN Table2.Column
ON CStr([Table1].[Column]) = Table2.Column
注意它使用
Table1.Column
和 Table2.Column
作为数据源。这些是列(字段),而不是表(真实的或虚拟的)。试试这种方式:
FROM
Table1
LEFT JOIN Table2
ON CStr([Table1].[Column]) = Table2.Column
Access 的查询设计器无法处理在 ON 表达式中包含函数的 JOIN。虽然我没有看到混淆您问题中的问题的证据,但我建议您通过将以下语句粘贴到“立即”窗口并在那里执行来排除这种可能性。
Set rs = CurrentDb.OpenRecordset( _
"SELECT Count(*) AS row_count" & vbCrLf & _
"FROM Table1 AS t1" & vbCrLf & _
"LEFT JOIN Table2 AS t2" & vbCrLf & _
"ON CStr(t1.[Column])=t2.[Column];") : _
? rs(0) : _
rs.Close : _
Set rs = Nothing
请注意,这些行继续符(下划线、“_”)中的每一个都必须以空格开头,并且后面不能有任何字符。
关于ms-access - 在 JOIN 语句中执行 CStr() 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11142458/