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

VBA-DAO Recordset:如何判断是否处于新建记录行位置

判断DAO Recordset是否处于新建记录行位置

在VBA的DAO Recordset中,执行AddNew方法后,AbsolutePosition、BOF和EOF属性不会发生变化,此时可以通过**EditMode属性**来判断是否处于新建记录行位置。

DAO Recordset的EditMode属性对应三个核心状态常量:

  • dbEditNone(值为0):无编辑或新建操作
  • dbEditInProgress(值为1):正在编辑现有记录
  • dbEditAdd(值为2):处于新建记录的状态

调用AddNew方法后,EditMode会立即切换为dbEditAdd,这就是判断新建记录行的直接依据。

代码示例

Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("YourTableName", dbOpenDynaset)

' 启动新建记录操作
rs.AddNew

' 判断是否处于新建记录行
If rs.EditMode = dbEditAdd Then
    Debug.Print "当前处于新建记录行位置"
    ' 为新建记录的字段赋值
    rs!FieldName1 = "测试内容1"
    rs!FieldName2 = "测试内容2"
End If

' 保存新建记录
rs.Update

rs.Close
Set rs = Nothing

注意:执行Update保存记录或CancelUpdate取消新建后,EditMode会恢复为dbEditNone状态。

内容的提问来源于stack exchange,提问作者Alex Boorjs

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 12:30:55