Нужна помощь в получении параметра, который я ввел, чтобы получить отчет для отправки в формате PDF с фактическим именем файла PDF - PullRequest
1 голос
/ 26 сентября 2019

Я новичок в VBA со вчерашнего дня ... никогда не занимался кодированием, пока пользователям не нужно было отправлять электронную почту, не имея приложения электронной почты на ПК.В небольшом разделе кодирования, который вы видите при выполнении команды DoCmd, он создает PDF отчета «VRRrep222», когда он выполняется, я должен ввести «VRR #», который мне нужно создать.После этого электронное письмо создается и отправляется.В имени файла = имя PDF будет просто "VRRrep222" и сегодняшняя дата, но мне нужно, чтобы введенный мной номер VRR для извлечения отчета также представлял собой номер в имени файла и строку темы в моем коде, который я сделал.не вставляйте сюда.Есть ли способ связать извлекаемый отчет #, чтобы его можно было добавить к имени PDF и строке темы, не вводя его вручную?

Dim filename As String, todaydate As String
Dim Msg As Object
Dim Supplier As String

Supplier = InputBox("Supplier E-mail?")
todaydate = Format(Date, "MMDDYYYY")
filename = Application.CurrentProject.Path & "\VRRrep222_" & todaydate & ".pdf"
DoCmd.OutputTo acReport, "VRRrep222", acFormatPDF, filename, False
Set Msg = CreateObject("CDO.Message")
    With Msg
           Msg.To = Supplier
           Msg.From = ""
           Msg.cc = ""
           Msg.bcc = ""
           Msg.Subject = ""
           Msg.TextBody = "This is an automated email that is being sent as an ALERT only. If the disposition is RETURN TO VENDOR, you will be notified with another email."
           Msg.addattachment filename
           Msg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
           Msg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = ""
           Msg.Configuration.Fields.Update
           Msg.Send
    End With
Kill filename

Set Msg = Nothing
End Sub

1 Ответ

0 голосов
/ 26 сентября 2019

Извлечение значения из данных отчета потребует, чтобы отчет был открыт первым.Текущий код не делает этого.

Не использовать динамический параметризованный запрос с всплывающей подсказкой.Всплывающие входные данные запроса имеют плохой дизайн, потому что входные данные не могут быть проверены и на них нельзя ссылаться для других целей, таких как ваше требование.Используйте элемент управления в форме для ввода параметра критерия.Либо используйте элемент управления формы ссылки на параметр запроса, либо примените фильтр к отчету с помощью метода OpenReport.Затем код может ссылаться на этот элемент управления для создания имени файла и темы.Возможно, лучше всего использовать комбинированный список, тогда пользователи могут выбрать только действительный VRR #.

filename = Application.CurrentProject.Path & "\" & Me.cbxVRR & "_" & todaydate & ".pdf"
DoCmd.OpenReport "VRRrep222", acViewPreview, , "YOURfieldname=" & Me.cbxVRR, acHidden 
DoCmd.OutputTo acReport, "VRRrep222", acFormatPDF, filename, False
DoCmd.Close acReport, "VRRrep222", acSaveNo
...
    .Subject = Me.cbxVRR

Я никогда не использую динамические параметры в запросе.

...