[英]How to Change Record Source with VBA in MS Access Report Macro
所有,
在MS Access 2010中,我有一個鏈接到報表的表(今日已結算)。 我運行下面的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將報告鏈接到新表嗎?
擔
只需在首次打開報告后添加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"
您可以輕松地將Reports的記錄源屬性設置為SQL String或將其綁定到表
您甚至可以使用諸如open之類的事件來設置
Me.RecordSource ="SELECT * FROM TBL"
在這里檢查此鏈接: https : //docs.microsoft.com/en-us/office/vba/api/access.report.recordsource
對於Parfat:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.