【问题标题】:How to Change Record Source with VBA in MS Access Report Macro如何在 MS Access 报表宏中使用 VBA 更改记录源
【发布时间】:2018-09-25 04:43:29
【问题描述】:

全部,

在 MS Access 2010 中,我有一个链接到报告的表(Today's Settled Jrnls)。我运行下面的 VBA 代码将报告导出为共享驱动器上的 pdf。

Public Function exporttopdf()

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim MyFileName As String
Dim mypath As String
Dim temp As String

mypath = "S:\Dan\" & Format(Date, "mm-dd-yyyy") & "\"

If Dir(mypath, vbDirectory) = "" Then MkDir mypath

Set db = CurrentDb()

Set rs = CurrentDb.OpenRecordset("SELECT distinct [Settlement No] FROM [Today's Settled Jrnls]", dbOpenDynaset)

Do While Not rs.EOF

temp = rs("[Settlement No]")
MyFileName = rs("[Settlement No]") & ".PDF"



DoCmd.OpenReport "Settlement Report", acViewReport, , "[Settlement No]='" & temp & "'"
DoCmd.OutputTo acOutputReport, "", acFormatPDF, mypath & MyFileName
DoCmd.Close acReport, "Settlement Report"
rs.MoveNext

Loop

Set rs = Nothing
Set db = Nothing

End Function

这可行,但我想将 [Today's Settled Jrnls] 表更改为不同的表 [New Jrnls]。新表具有完全相同的列和设置。但是,当我在上面的 select 语句中更改表时,代码运行但报告为空白。我认为这是因为报告(结算报告)仍然链接到旧表。您知道如何使用 VBA 将报表链接到新表吗?

【问题讨论】:

    标签: ms-access vba ms-access-2010


    【解决方案1】:

    在第一次打开报告后,只需添加一个RecordSource 调用以指向新表:

    ' OPEN REPORT
    DoCmd.OpenReport "Settlement Report", acViewReport
    ' ADJUST SOURCE
    Reports![Settlement Report].Report.RecordSource = "SELECT * FROM [New Jrnls]"
    
    ' FILTER AND OUTPUT
    DoCmd.OpenReport "Settlement Report", acViewReport, , "[Settlement No]='" & temp & "'"
    DoCmd.OutputTo acOutputReport, "", acFormatPDF, mypath & MyFileName
    DoCmd.Close acReport, "Settlement Report"
    

    【讨论】:

    • 太棒了!很高兴能提供帮助。
    【解决方案2】:

    您可以轻松地将 Reports 记录源属性设置为 SQL 字符串或将其绑定到表

    你甚至可以使用诸如 open 之类的事件来设置

    Me.RecordSource ="SELECT * FROM TBL"
    

    在这里查看这个链接:https://docs.microsoft.com/en-us/office/vba/api/access.report.recordsource

    对于 Parfat:

    【讨论】:

    • 代码可能不在报告后面,无法访问Me.RecordSource。使用绝对引用。
    • @Parfait IDK 它似乎对我有用
    猜你喜欢
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 2013-07-10
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多