首页 > 解决方案 > 错误 3021:尝试通过表单编辑表格列中的值时没有当前记录

问题描述

我正在按照本教程创建一个添加/减去按钮,用于修改 Stock 表的“Qty_Avail”值 https://www.youtube.com/watch?v=88erYOa8cmg

Private Sub cmdIN_Click()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Set db = CurrentDb

Set rst = db.OpenRecordset("Select Qty_Avail from Stock where ID_Item =' " & Me.ID_Item & " ' ")

With rst
    .Edit
    !Qty_Avail = !Qty_Avail + Nz(Me.Quantity, 0)
    .Update
End With
Me.QOH.Requery
Me.Quantity = "'"
End Sub

标签: ms-access

解决方案


尝试使用RecordsetClone - 更快并立即更新:

Private Sub cmdIN_Click()

    Dim rst As DAO.Recordset

    Set rst = Me.RecordsetClone
    
    With rst
        ' Locate current record.
        .Bookmark = Me.Bookmark
        ' Edit the record.
        .Edit
        !Qty_Avail.Value = !Qty_Avail.Value + Nz(Me!Quantity.Value, 0)
        .Update
        .Close
    End With

    Me!Quantity.Value = 0   ' Or = Null
    
End Sub

推荐阅读