Access 2010运行追加查询时出现Error 3167‘记录已删除’问题求助
咱来帮你拆解这个问题——毕竟链接表和本地表的行为差异,大多和网络连接、后端约束或者隐藏的表损坏有关,给你几个实操的排查方向:
先刷新链接表的连接状态
有时候旧的链接缓存会导致异常,你可以先删除现有链接表,通过「外部数据」→「Access」重新建立链接,记得勾选“保存密码”(如果后端有密码的话)。另外要确认后端文件没被其他用户独占打开——独占模式会锁死写入权限,很容易伪装成“记录已删除”的错误,让所有用户关闭后端再测试。校验字段匹配与数据约束
虽然本地表正常,但链接表是实时和后端交互的,可能后端表的字段规则更严格:比如某个字段后端设为必填,但你追加的数据源里有空值;或者文本长度超过后端字段的最大限制;甚至是数字类型不匹配(比如前端是长整型,后端是单精度)。建议先把追加查询改成选择查询跑一遍,检查结果里有没有不符合后端规则的记录。深度排查后端表的损坏问题
你已经做了压缩修复,但可以试试单独修复后端:把后端文件复制到本地,关闭所有连接,打开后端执行「文件」→「信息」→「压缩和修复数据库」。如果还是不行,就在后端新建一个空表,把原表的所有数据追加到新表,然后用新表替换原表,再重新链接——这能解决很多隐藏的记录指针损坏问题。简化查询定位问题点
先写个极简的追加测试:INSERT INTO 你的链接表 (必填字段1, 必填字段2) VALUES ('测试内容', 123),看看能不能成功。如果没问题,再逐步增加字段和记录,找到具体哪条记录或哪个字段触发的错误。要是批量追加出错,试试分批次小量写入(比如每次100条),网络延迟也可能导致Access误判记录状态。检查版本兼容性
前端和后端的Access版本是否一致?比如前端是2016,后端是2003,版本差异可能导致链接表操作异常。尽量保持版本统一,或者把后端文件转换成前端对应的格式。
内容的提问来源于stack exchange,提问作者Russtopher

