Access VBA 记录集更新运行正常,但不更新

问题描述 投票:0回答:2

我无法弄清楚我的代码出了什么问题。请注意,直到上周,代码一直运行良好。我们没有对代码进行任何更改...所以这是一个谜。

我有一个 Access VBA,可以使用 recordset.update 将记录加 1 来更新记录。 代码看起来像这样......

Sub UpdateQuarter(PersonName As String)
Dim dB As Database
Dim rst As DAO.Recordset
Dim Quarter As Integer

Set dB = CurrentDb
Set rst = db.OpenRecordset("table")

rst.MoveFirst
Do Until rst.EOF
    rst.Edit
    If Name = rst!NameofPerson Then
        Quarter = rst!CurrentQuarter
        Quarter = Quarter + 1
        rst!CurrentQuarter = Quarter
        rst.Update
    End If
    rst.MoveNext
Loop
rst.Close
Set rst = Nothing

End Sub

我有其他 Access 数据库,其代码非常相似(结构完全相同),运行得很好。这段代码也运行得非常好,当我逐行调试时,它表明正在捕获并递增正确的值。但是,它不会更新表格!!

这让我发疯。任何人都知道为什么会发生这种情况??

提前致谢。

vba recordset
2个回答
0
投票

您必须手动打开数据库并按 Ctrl+S 并将其关闭。 之后 SQL qwery 就可以工作了。

然后就无法再工作了。 重复第一步...


0
投票

我认为这是因为你正在调用编辑,但逻辑不会总是调用更新;如果您这样做,则需要将更新移到“If Name =”逻辑之外,即使没有匹配,编辑也将始终与编辑配对。

© www.soinside.com 2019 - 2024. All rights reserved.