5

我在不同的链接表中有两个字段,它们的数据相同,但数据类型不同。我无法更改表中的数据类型。我正在尝试基于此数据将两个表连接在一起的查询,但由于类型不同,我需要将数字转换为字符串。我一直在尝试的基本上是这样的:

...
FROM Table1 LEFT JOIN Table2 ON CStr([Table1].[Column]) = Table2.Column
...

我只是不断收到错误消息,主要是“不支持连接表达式”。

任何人都可以阐明我可能做错了什么/我可以做得更好吗?

谢谢你。

4

1 回答 1

1

这是您FROM重新格式化的子句:

FROM
    Table1.Column
    LEFT JOIN Table2.Column
    ON CStr([Table1].[Column]) = Table2.Column

请注意,它使用Table1.ColumnTable2.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

请注意,这些行继续字符(下划线、“_”)中的每一个都必须以空格开头,并且后面不能有任何字符。

于 2012-06-22T04:26:53.473 回答