Access中Long Text字段关联报错:无法连接备注/OLE/超链接对象
问题解决方法
错误原因
Access的**长文本(Long Text,原备注Memo类型)**字段不支持作为JOIN的连接条件,这就是你收到Cannot join on Memo, OLE, or Hyperlink Object错误的根源。
两种解决方案
方案一:修改字段类型(推荐,性能更优)
将AudioInfo表的file_id和Dev表的sourceid字段类型从长文本改为短文本:
- 你的数据示例是
1_1这类短字符串,完全适配短文本字段的使用场景。 - 修改时若遇到提示
将字段更改为备注或OLE数据类型需要移除指定的索引,直接确认即可;改完后如果需要索引,可重新为这两个字段创建。
方案二:在SQL中转换字段类型(无需修改表结构)
使用CStr()函数将长文本字段转换为字符串后再执行连接,修正后的SQL如下:
SELECT AudioInfo.file_id, Dev.language, AudioInfo.duration_sec FROM Dev INNER JOIN AudioInfo ON CStr(Dev.sourceid) = CStr(AudioInfo.file_id);
注:因为file_id和sourceid满足连接相等的条件,查询结果只保留file_id即可,无需重复选择sourceid。
附注(翻译后)
使用「导入文本向导」导入.tsv文件时,我将所有「短文本」字段改为「长文本」;当字段索引设置为「是」时,修改类型会触发警告:「将字段更改为备注或OLE数据类型需要移除指定的索引。」
内容的提问来源于stack exchange,提问作者mak
相关产品推荐
相关产品推荐

