MS ACCESS---通过VBA刷新所有

Chr*_*son 5 forms ms-access

如何通过 vba 刷新所有内容?我想刷新所有打开的表单...

Tod*_*wen 5

@CodeSlave的答案可能没有满足您的需要,原因是您需要的VBA方法是requery,而不是刷新。刷新将显示对现有记录所做的更改,但只有重新查询才会显示新添加的记录。

这是代码的更简洁版本(将其放入模块中,以便您可以从任何形式调用它):

Public Sub RequeryOpenForms()
    Dim f as Form

    For Each f In Access.Forms
        f.Requery
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

注意:不幸的是,重新查询会产生丢失当前所选记录的副作用。如果有很长的记录列表,这对于用户来说尤其令人沮丧,因为他们可能必须向下滚动很长一段距离才能找到他们之前查看的记录。


BIB*_*IBD 1

像这样的事情怎么办?

Sub AllForms()
Dim obj As AccessObject
dim dbs As Object
Dim i As Integer
dim intFormCount as Integer

    Set dbs = Application.CurrentProject
    intFormCount  = dbs.AllForms.Count - 1

    For i = 0 To intFormCount
        If dbs.AllForms(i).isloaded = True Then
            dbs.AllForms(i).refresh
        End If
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)