我在 Access 数据库中有一个基本表。在该表中,我有一个 10 位数字字段,该字段存储为长文本(前导零很重要)。我从表中的该字段中提取了唯一值,并创建了一个具有相同长文本数据类型的新表/字段。当我尝试将该字段连接回原始表时,出现错误:无法连接备注、OLE 或超链接对象。是否有解决此问题的方法,或者我需要解决的已知问题?
使用 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
Access 不允许基于长文本字段的联接。这就是它所指的“备忘录”。我认为微软的理由是基于一段文本的连接是不合理的。
尝试将存储为长文本的 10 位数字字段转换为短文本。长文本用于备忘录,这就是您收到此错误的原因。
我遇到了同样的错误,因为在本地 msAccess 表上 LEFT JOINING a msSQLserver 表视图,SQLserver 表中的字段数据类型为 nvarchar(80000),并且在链接到 msAcces 时自动转换为 Memo 数据类型,因此我必须将其转换为 nvarchar (25) 从SQLserver刷新表链接解决问题。
您只需将长文本转换为短文本,连接就会起作用
将其切换为短文本,然后不要忘记点击刷新链接或重新导入表格,然后尝试加入,它应该可以工作。 MEMO 是 Access 在以前版本中用来引用的术语,但他们没有更新显示的错误语句。
在我的例子中,问题是由长文本字段和短文本字段之间的联接引起的,我通过对联接中的长文本字段进行转换操作 (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;