У меня есть интересное требование. В Access (2010) Мне нужно создать отдельные отчеты в формате PDF, в котором уникальный идентификатор в отчете т.е. F9902_ReportName.pdfСоздание отдельных отчетов PDF - Доступ
Код ниже может успешно генерировать индивидуальные отчеты точно, как я хочу, чтобы они работали, только проблема заключается в том, что он удаляет ограничения ресурсов при запуске. В результате я получаю следующую ошибку: Ошибка времени выполнения '3035'. Системный ресурс превышен. Если я правильно понимаю, DoCmd.OpenReport
& DoCmd.OutputTo
являются открытыми отчетами, но только одна из них закрывается в команде DoCmd.Close
, другая остается скрытой и хранит ресурсы, и как только цикл обрабатывает около 400 раз, он достигает предела ресурса. Я просмотрел несколько веб-страниц, чтобы решить эту проблему, но каждый, кажется, останавливается на этой конкретной проблеме.
Проблема заключается в том, что я хочу использовать только функцию DoCmd.OutputTo
, но это не позволяет мне фильтровать на основе записи (насколько мне известно), поэтому я должен использовать DoCmd.OpenReport
перед этим.
Private Sub Command526_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim MyFileName As String
Dim mypath As String
Dim temp As String
mypath = "C:\location\"
Set db = CurrentDb()
Set rs = db.OpenRecordset("SELECT * FROM [NameOfTable]", dbOpenDynaset)
Do While Not rs.EOF
temp = rs("Ref#")
MyFileName = temp & "_PdfOutput.pdf"
DoCmd.OpenReport "ReportName", acViewReport, , "[Ref#]='" & temp & "'"
DoCmd.OutputTo acOutputReport, "", acFormatPDF, mypath & MyFileName
DoCmd.Close acReport, "ReportName"
rs.MoveNext
Loop
Set rs = Nothing
Set db = Nothing
End Sub
Любая помощь очень ценится.
Это исправляет проблему с ограничением ресурсов, теперь выводит полный объем отчетов и правильно их называет. Сейчас проблема заключается в том, что сами отчеты не содержат никаких данных, они просто пустой шаблон. Таким образом, кажется, проблема заключается в том, что OutputTo не получает никаких данных ... – rjmd
Включили ли вы «ReportName» в вызов DoCmd.OutputTo? Если да, сделайте 'DoCmd.OpenReport 'ReportName", acViewPreview' и установите точку останова после - показывает ли она выбранную запись? – Andre
Да. Я просто выполнил команду 'acViewPreview', отчет отображался как пустой. – rjmd