ms-access - 在 JOIN 语句中执行 CStr() 表达式

标签 ms-access join type-conversion

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

...
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.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

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

关于ms-access - 在 JOIN 语句中执行 CStr() 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11142458/

相关文章:

ms-access - 我在哪里放置 Access vba 代码以仅在物理打印时触发?

mysql关系问题。当 M :N null 时获取结果

mysql - 左加入。字段列表中的列 'product_id' 不明确

go - 这是在 golang 中类型转换吗?

vb.net - 在 VB 2008 中查询 MS Access 数据库

vb.net - 添加内部联接语句时数据从列中消失

sql - 如何将 'group' docmd.runsql SQL (MS ACCESS) 写入事务并允许在失败时回滚

java - 我可以加入 ThreadPoolExecutor 创建的线程吗

mysql - 在sql中按升序对 "Apr-19" "Apr-18"日期类型进行排序

scala - 如何将单个字符转换为 Scala 的 Char 对象?