无法加入备忘录、OLE 或超链接对象

问题描述 投票:0回答:6

我在 Access 数据库中有一个基本表。在该表中,我有一个 10 位数字字段,该字段存储为长文本(前导零很重要)。我从表中的该字段中提取了唯一值,并创建了一个具有相同长文本数据类型的新表/字段。当我尝试将该字段连接回原始表时,出现错误:无法连接备注、OLE 或超链接对象。是否有解决此问题的方法,或者我需要解决的已知问题?

ms-access
6个回答
4
投票

使用 ANSI JOIN 代替。它对我有用

        SELECT A.A, B.B, C.C
           FROM aaa AS A, bbb AS B, ccc AS C
       WHERE A.B = B.ID
            AND B.C = C.ID

3
投票

Access 不允许基于长文本字段的联接。这就是它所指的“备忘录”。我认为微软的理由是基于一段文本的连接是不合理的。

更多信息:https://kb.tableau.com/articles/issue/error-cannot-join-on-memo-ole-or-hyperlink-object-when-joining-access-tables


2
投票

尝试将存储为长文本的 10 位数字字段转换为短文本。长文本用于备忘录,这就是您收到此错误的原因。

我遇到了同样的错误,因为在本地 msAccess 表上 LEFT JOINING a msSQLserver 表视图,SQLserver 表中的字段数据类型为 nvarchar(80000),并且在链接到 msAcces 时自动转换为 Memo 数据类型,因此我必须将其转换为 nvarchar (25) 从SQLserver刷新表链接解决问题。


0
投票

您只需将长文本转换为短文本,连接就会起作用


0
投票

将其切换为短文本,然后不要忘记点击刷新链接或重新导入表格,然后尝试加入,它应该可以工作。 MEMO 是 Access 在以前版本中用来引用的术语,但他们没有更新显示的错误语句。


0
投票

在我的例子中,问题是由长文本字段和短文本字段之间的联接引起的,我通过对联接中的长文本字段进行转换操作 (CStr) 解决了该问题。

错误:

FROM table1 LEFT JOIN table2 ON table1.LONGTEXT_field = table2.SHORTTEXT_field;

已解决:

FROM table1 LEFT JOIN table2 ON CStr(table1.LONGTEXT_field) = table2.SHORTTEXT_field;

© www.soinside.com 2019 - 2024. All rights reserved.