Ms access 如何在MS Access报表宏中使用VBA更改记录源
全部, 在MS Access 2010中,我有一个链接到报告的表(今天已结算的JRNL)。我运行下面的VBA代码将报告导出到共享驱动器上的pdfMs access 如何在MS Access报表宏中使用VBA更改记录源,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,全部, 在MS Access 2010中,我有一个链接到报告的表(今天已结算的JRNL)。我运行下面的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(D
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
这是可行的,但我想将[今天已解决的Jrnls]表更改为另一个表[新的Jrnls]。新表具有完全相同的列和设置。但是,当我在上面的select语句中更改表时,代码将运行,但报告为空。我假设这是因为报告(结算报告)仍然链接到旧表。您知道如何使用VBA将报表链接到新表吗
Dan您可以轻松地将Reports recordsource属性设置为SQL字符串或将其绑定到表 您甚至可以使用opentoset之类的事件
Me.RecordSource ="SELECT * FROM TBL"
点击此处查看此链接:
对于帕尔法特:
只需添加一个
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"
代码可能不在报表后面,无法访问
Me.RecordSource
。使用绝对引用。@Parfait IDK它似乎有它给meGreat!很乐意帮忙。