Как изменить источник записи с VBA в макросе MS Access Report - PullRequest
0 голосов
/ 24 сентября 2018

Все,

В MS Access 2010 у меня есть таблица (Сегодняшние установленные 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

Это работает, но я бы хотел изменить таблицу [Сегодняшние установленные Jrnls] на другую таблицу [Новые Jrnls].Новая таблица имеет те же столбцы и настройки.Однако, когда я изменяю таблицу в приведенном выше операторе выбора, код выполняется, но отчет остается пустым.Я предполагаю, что это потому, что отчет (Расчетный отчет) все еще связан со старой таблицей.Знаете ли вы, как я могу связать отчет с новой таблицей с помощью VBA?

Дан

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Просто добавьте вызов 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"
0 голосов
/ 24 сентября 2018

Вы можете легко установить свойство источника отчетов в строку SQL или связать его с таблицей

Вы можете даже использовать май из событий, таких как open, чтобы установить

Me.RecordSource ="SELECT * FROM TBL"

enter image description here

Здесь проверьте эту ссылку: https://docs.microsoft.com/en-us/office/vba/api/access.report.recordsource

Для Парфата:

enter image description here

...