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

Posted

技术标签:

【中文标题】无法加入备忘录、OLE 或超链接对象【英文标题】:Cannot join on Memo, OLE, or Hyperlink Object 【发布时间】:2015-06-18 16:59:18 【问题描述】:

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

【问题讨论】:

这应该被标记为 mysql 吗?对我来说似乎是一个访问问题 考虑更改新表中列的数据类型以匹配第一个中的列数据类型 短文本字段将接受 10 位数的字符串,并支持 JOIN 而不会出现该投诉。 HansUp 所说的。 10 位字符串的 Longtext 类型完全是多余的。 更改为短文本解决了这个问题。谢谢! 【参考方案1】:

改用 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

【讨论】:

【参考方案2】:

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

由于在本地 msAccess 表上左连接 msSQLserver 表视图,我遇到了同样的错误,SQLserver 表中的字段数据类型是 nvarchar(80000),并且在链接到 msAcces 时自动转换为 Memo 数据类型,所以我必须转换它从 SQLserver 到 nvarchar(25) 并刷新表链接以解决问题。

【讨论】:

事实证明,Memo 是旧版本 Access 中长文本的名称。似乎错误消息中的名称尚未更新,因此这些天错误如此令人困惑。【参考方案3】:

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

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

【讨论】:

【参考方案4】:

您只需将长文本转换为短文本,连接就可以工作

【讨论】:

【参考方案5】:

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

【讨论】:

以上是关于无法加入备忘录、OLE 或超链接对象的主要内容,如果未能解决你的问题,请参考以下文章

无法加入备注、OLE 或超链接对象 - Access 2007 - 外部联接

XtraGrid Suite - 有没有办法向单元格添加按钮或超链接?

点击按钮(或超链接)如何跳转到另外一个页面并执行目标页面的js函数

如何使用 sencha touch 2 中的按钮或超链接在轮播项目之间切换?

从子记录(或超链接)获取数据以在 netsuite 高级 html pdf 中打印

无法为链接服务器“(null)”初始化 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”的数据源对象