1

我有一个按钮,当按下它时,会打开一个关于在该表单中选择的记录的报告。这是按钮的代码:

blnSave = MsgBox("Are you sure you want to exit this student?", vbYesNo, "Exit Confirmation")
If blnSave = True Then
            DoCmd.OpenReport "rptExitNotice", acViewPreview, , "[BehaviourID]=" & Me.BehaviourID
            DoCmd.Close acForm, "frmExitStudent"
            End If

当窗体关闭并打开报表时,报表中的所有字段都是空白的: 空报告 当您按 F5 时,数据完美地显示在适当的位置: 完成报告

我尝试将 Me.Refresh、DoCmd.Requery 和 DoCmd.Refresh 都放在 Open、No Data 和 Activate 事件中,但它们给出了以下错误: 找不到方法或数据成员 命令或动作

如何让报告首次显示数据?按钮的代码有问题吗?或者我应该在不同的事件中添加一个 Me.Refresh 或类似的东西?

4

1 回答 1

0

我废弃了 On Load、On Open 等中的代码,并创建了一个计时器为 1000 的表单,计时器事件执行此代码:

Private Sub Form_Timer()
Dim rpt As Report

With Reports
    ' Iterate over all open reports...
    For Each rpt In Reports
        rpt.Requery
    Next
End With
lblStatus.Caption = "Generation Complete"
DoCmd.Close acForm, "frmRefreshReport"
End Sub

表单刷新报表,然后关闭。刷新完成时,有一个小的状态标签会更改文本(以使其对最终用户看起来更好)。当报表打开时表单会打开,因此报表会被表单刷新,然后会自行关闭,从而节省了用户按 F5 的时间。资料来源:如何在 MS Access 中自动重新加载报告?

于 2017-11-11T22:01:43.897 回答