Tim*_*Tim 5 ms-access join type-conversion
我在具有相同数据但不同数据类型的单独链接表中有两个字段.我无法更改表中的数据类型.我正在尝试基于此数据将两个表连接在一起的查询,但由于类型不同,我需要将数字转换为字符串.基本上,我一直在尝试的是:
...
FROM Table1 LEFT JOIN Table2 ON CStr([Table1].[Column]) = Table2.Column
...
Run Code Online (Sandbox Code Playgroud)
我只是不断收到错误消息,主要是"不支持连接表达式".
任何人都可以了解我可能做错了什么/我能做得更好吗?
谢谢.
这是您的FROM条款重新格式化:
FROM
Table1.Column
LEFT JOIN Table2.Column
ON CStr([Table1].[Column]) = Table2.Column
Run Code Online (Sandbox Code Playgroud)
请注意,它使用Table1.Column和Table2.Column作为数据源。这些是列(字段),而不是表(真实的或虚拟的)。
尝试用这种方法代替:
FROM
Table1
LEFT JOIN Table2
ON CStr([Table1].[Column]) = Table2.Column
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
请注意,每个行继续字符(下划线、“_”)前面必须有一个空格,并且后面不能有任何字符。