Ms access Access生成数据更新/创建报告

Ms access Access生成数据更新/创建报告,ms-access,Ms Access,我正在尝试创建一个基于查询的报告,该查询将在每个 创建/更新我的数据库 我将报告附加到带有宏的按钮上, 问题是,如果没有任何更改,有人只是按下按钮,报告将被触发,但没有数据,如果数据插入到文本框中,我用宏按下按钮,数据不会附加到数据库中 我的宏行: OnError Next, OpenReport Accept, Report, , , Normal // Accept is the name of the report GoToRecord Next, [MacroError]<&

我正在尝试创建一个基于查询的报告,该查询将在每个 创建/更新我的数据库 我将报告附加到带有宏的按钮上, 问题是,如果没有任何更改,有人只是按下按钮,报告将被触发,但没有数据,如果数据插入到文本框中,我用宏按下按钮,数据不会附加到数据库中

我的宏行:

OnError    Next,
OpenReport Accept, Report, , , Normal // Accept is the name of the report
GoToRecord Next,
[MacroError]<>0 =[MacroError].[Description], Yes, None, 

提前感谢您的帮助

测试和跟踪这一点的一个好方法是,在查询中使用的一个表中添加一个名为“是/否”的字段,例如flgReported,然后在运行报告后,您可以将所有行更新为true。随后添加的任何新行都将为false,您可以将其引入select查询以仅报告false行,这还允许您在继续并运行报告之前,在单击按钮时测试是否有任何数据要返回

更新:如果突出显示有问题的宏,然后转到工具>宏>将宏转换为Visual Basic,然后单击“转换”,它将为您生成VB代码。然后可以从按钮而不是宏调用此命令,在主过程之前,可以插入此命令以检查是否有任何新记录:

Private Sub ButtonClick() "For Example"

Dim rs As Recordset

    Set rs = CurrentDb.OpenRecordset("SELECT * FROM queryname where flgReported = False")

    If rs.BOF And rs.EOF then 'No Records to report so we quit at this point
        rs.close
        set rs = Nothing
        Exit Sub
    End If

    'Remainder of Macro Code goes here

    'Then run a simple SQL here to update the flags to True

End Sub

确实不是一个坏方法,但我不知道如何编写VB代码来检查这一点,这方面的SQL代码将很容易ofc@NadavStern我已经用一些示例代码更新了我的答案,希望能有所帮助