powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Экспорт в pdf, не получается присваивать название файла
9 сообщений из 9, страница 1 из 1
Экспорт в pdf, не получается присваивать название файла
    #39513104
ShultzMAN87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Знающие люди, помогите новичку
есть главная форма с данными о клиенте, в ней подчиненная с данными о сдачах отходов
по каждой сдаче можно вывести отчет на печать
задача: как бы сделать экспорт в pdf так, чтобы формировался файл вида Акт"НазваниеОрганизации".pdf
естесственно, что в этом случае создается переменная куда помещаются данные из поля главной формы
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Function ЭкспортPDF()
On Error GoTo ЭкспортPDF_Err

Dim organ As String
organ = Forms("ф_Клиент").КраткоеНаименование

    With CodeContextObject
        If (Not IsNull(.КодСдачаГЛ)) Then
            DoCmd.OpenReport "о_СоставСдачи", acViewPreview, "", "КодСдача=" & .КодСдачаГЛ, acNormal
        Else
            DoCmd.OpenReport "о_СоставСдачи", acViewPreview, "", "", acNormal
        End If
        DoCmd.OutputTo acOutputReport, "о_СоставСдачи", "PDFFormat(*.pdf)", _
        "C:\Users\Константин\Downloads\Акт " & organ & ".pdf", False, "", , acExportQualityPrint
        DoCmd.Close acReport, "о_СоставСдачи"
    End With


ЭкспортPDF_Exit:
    Exit Function

ЭкспортPDF_Err:
    MsgBox Error$
    Resume ЭкспортPDF_Exit

End Function
...
Рейтинг: 0 / 0
Экспорт в pdf, не получается присваивать название файла
    #39513144
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё это прекрасно... а вопрос-то какой? ну или проблема где?
...
Рейтинг: 0 / 0
Экспорт в pdf, не получается присваивать название файла
    #39513285
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
он у Вас и формируется
ShultzMAN87
Код: vbnet
1.
2.
3.
...
        DoCmd.OutputTo acOutputReport, "о_СоставСдачи", "PDFFormat(*.pdf)", _
        "C:\Users\Константин\Downloads\Акт " & organ & ".pdf", False, "", , acExportQualityPrint


немного подправить
Код: vbnet
1.
2.
3.
4.
5.
6.
rptName="о_СоставСдачи"' обозвали вначале
pathname="C:\Users\Константин\Downloads\Акт"' от имени пользователя лучше уйти, т.е. pathname="D:\Acts\Act"
pathname2=pathname & & organ & ".pdf"
 DoCmd.OutputTo acOutputReport, rptName, acFormatPDF, _
        pathname2 , False, "", , acExportQualityPrint
' все это закинули в функцию с параметрами и забыли...


а pathname2 уже поместили в поле в таблице, когда надо будет открыть этот акт, то
Код: vbnet
1.
2.
3.
4.
5.
Dim intResult%
intResult = ShellExecute(Application.hWndAccessApp, "open", pathname2 , 0, 0, SW_SHOWNORMAL)
If intResult = 31 Then
    MsgBox "Незарегистрированный тип файла"
End If



где-то в разделе объявлений модуля
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public Declare Function ShellExecute _
                Lib "shell32.dll" _
                Alias "ShellExecuteA" _
                (ByVal Hwnd As Long, _
                ByVal lpOperation As String, _
                ByVal lpFile As String, _
                ByVal lpParameters As String, _
                ByVal lpDirectory As String, _
                ByVal nShowCmd As Long) As Long
...
Рейтинг: 0 / 0
Экспорт в pdf, не получается присваивать название файла
    #39513402
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alecko,

Код: vbnet
1.
2.
DoCmd.OutputTo acOutputReport, "о_СоставСдачи", "PDFFormat(*.pdf)", _
        "C:\Users\Константин\Downloads\Акт " & organ & ".pdf", False, "", , acExportQualityPrint


Меняем False на True - и получившийся документ открывается в программе по умолчанию
...
Рейтинг: 0 / 0
Экспорт в pdf, не получается присваивать название файла
    #39513484
ShultzMAN87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alecko, воу-воу-воу, спасибо конечно, но я только понял на счет переменных
куда вставлять 2 и 3 куски вашего сообщения что то не пойму
нельзя ли просто обратиться к нужному полю формы и "вытащить" оттуда значение, присвоить его переменной, а через переменную перенести в название экспортируемого файла?
как исправить такое обращение
organ = Forms("ф_Клиент").КраткоеНаименование
чтобы оно заработало?
...
Рейтинг: 0 / 0
Экспорт в pdf, не получается присваивать название файла
    #39513675
alecko2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShultzMAN87,
а оно у Вас работает. чтобы открыть для просмотра сразу же после экспорта сделайте как сказано здесь
20761535
с двумя поправками
в пути без пробелов, и "PDFFormat(*.pdf)" - не знаю это работает(?)-лучше заменить на привычную константу acFormatPDF
т.е. с учетом
20761192
2 и 3-е это потом, когда будете вызывать этот отчет на просмотр, Вы его просматривать то собираетесь?
после экспорта не открываете чтоб просмотреть, значит оставляете "на потом".
...
Рейтинг: 0 / 0
Экспорт в pdf, не получается присваивать название файла
    #39513759
ShultzMAN87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем, кто откликнулся, но видимо я неправильно всё объясняю, прошу прощения
Итак, есть форма, в ней главная и подчиненная форма (см. картинку)

к кнопке "В .pdf" привязан код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
Function ЭкспортPDF()

On Error GoTo ЭкспортPDF_Err

Dim organ As String
organ = Forms("ф_Клиент").КраткоеНаименование
rptName = "о_СоставСдачи"
pathname2 = "C:\Users\Константин\Downloads" & organ & ".pdf"


    With CodeContextObject
        If (Not IsNull(.КодСдачаГЛ)) Then
            DoCmd.OpenReport rptName, acViewPreview, "", "КодСдача=" & .КодСдачаГЛ, acNormal
        Else
            DoCmd.OpenReport rptName, acViewPreview, "", "", acNormal
        End If
        DoCmd.OutputTo acOutputReport, rptName, acFormatPDF, _
        pathname2, True, "", , acExportQualityPrint
        DoCmd.Close acReport, rptName
    End With


ЭкспортPDF_Exit:
    Exit Function

ЭкспортPDF_Err:
    MsgBox Error$
    Resume ЭкспортPDF_Exit

End Function



в связи с тем, что с программированием я не силен, и это моя первая БД, я сделал сначала макрос, а потом перевел его в код. НО в связи с тем, что я не знаю как сделать так чтобы напрямую осуществить экспорт в pdf, минуя открытие отчета, я сделал так, как подсказала мне логика, то есть открываю нужный отчет и произвожу экспорт открытого отчета и тут же его закрываю, и всё работало замечательно до тех пор, пока я не ввёл кусок кода

Dim organ As String
organ = Forms("ф_Клиент").КраткоеНаименование
...." & organ & ".....

стала появляться такая ошибка


поэтому, возможно, проблема в том, что некорректно помещаются данные в переменную organ
потому как кнопка находится в подчиненной форме а нужное поле - в главной
...
Рейтинг: 0 / 0
Экспорт в pdf, не получается присваивать название файла
    #39513792
ShultzMAN87к кнопке "В .pdf" привязан код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Function ЭкспортPDF()

On Error GoTo ЭкспортPDF_Err

Dim organ As String
organ = Forms("ф_Клиент").КраткоеНаименование
rptName = "о_СоставСдачи"
pathname2 = "C:\Users\Константин\Downloads" & organ & ".pdf"



в связи с тем, что с программированием я не силен, и это моя первая БД, я сделал сначала макрос, а потом перевел его в код. НО в связи с тем, что я не знаю как сделать так чтобы напрямую осуществить экспорт в pdf, минуя открытие отчета, я сделал так, как подсказала мне логика, то есть открываю нужный отчет и произвожу экспорт открытого отчета и тут же его закрываю, и всё работало замечательно до тех пор, пока я не ввёл кусок кода

Dim organ As String
organ = Forms("ф_Клиент").КраткоеНаименование
...." & organ & ".....

стала появляться такая ошибка


поэтому, возможно, проблема в том, что некорректно помещаются данные в переменную organ
потому как кнопка находится в подчиненной форме а нужное поле - в главной

нет, проблема не в этом
ваша ошибка возникает из-за того, что генерируемое имя pdf-файла (в данном конкретном случае) содержит недопустимый символ - кавычки, который попадает туда из значения поля Forms("ф_Клиент").КраткоеНаименование (для показанной на скриншоте записи).

попробуйте убрать эти кавычки, например
Код: vbnet
1.
organ = Replace(Forms("ф_Клиент").КраткоеНаименование,Chr(34),"")


P.S.
и кстати, раз уж вы используете значение поля как (часть) имени файла, имейте в виду, что любое текстовое поле может содержать не только кавычки, но и ряд других символов, которые НЕ допускаются в именах файлов - по-хорошему их все надо оттуда исключать/заменять.
...
Рейтинг: 0 / 0
Экспорт в pdf, не получается присваивать название файла
    #39513806
ShultzMAN87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
непоймучка, заработало!!!!!!! ))))
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Экспорт в pdf, не получается присваивать название файла
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]