You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Access中VB编写的SQL插入记录至表中间而非末尾的原因排查

Access插入记录显示在中间的原因排查

核心原因

Access的表本质是无序的数据集合,不存在“默认按插入顺序存储”的规则。你看到新记录出现在中间,是因为Access会按以下优先级自动排序显示数据:

  • 表的聚集索引/主键(比如自动编号字段)的顺序
  • 你之前手动设置过的表排序规则(比如点击列表头排序后,Access会记住这个设置)

你的插入代码本身逻辑没有问题,插入的记录确实已经存入表中,只是显示顺序让你误以为在“中间”。

验证步骤

  1. 打开Audit_riskModelHistory表,检查是否有自动编号类型的主键,或者其他设置了索引的字段——这类字段会决定默认显示顺序。
  2. 点击Access顶部「开始」选项卡,找到「排序和筛选」组,点击清除所有排序,此时记录会回到无排序的状态,你可以看到新记录的实际位置。

代码优化建议(避免SQL注入)

当前拼接SQL字符串的写法存在SQL注入风险,建议改用参数化查询,示例代码:

Dim qd As QueryDef
Set qd = CurrentDb.CreateQueryDef("", _
    "INSERT INTO Audit_riskModelHistory (Action, User, modelKey, modelEventKey) " & _
    "VALUES (@Action, @User, @ModelKey, @ModelEventKey)")
    
qd.Parameters("@Action") = "New Record Inserted"
qd.Parameters("@User") = "Mike-Admin"
qd.Parameters("@ModelKey") = Me.cmb1.Value
qd.Parameters("@ModelEventKey") = Me.cmb2.Value

qd.Execute dbFailOnError
Set qd = Nothing

内容的提问来源于stack exchange,提问作者Lubomir Burian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 19:45:38