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

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

【问题讨论】:

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

标签: ms-access


【解决方案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 在以前的版本中使用的术语,但他们没有更新显示的错误语句。

        【讨论】:

          猜你喜欢
          • 2012-12-08
          • 2016-11-04
          • 1970-01-01
          • 2013-12-01
          • 1970-01-01
          • 2019-07-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多