Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Экспорт в pdf, не получается присваивать название файла / 9 сообщений из 9, страница 1 из 1
31.08.2017, 03:44
    #39513104
ShultzMAN87
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт в pdf, не получается присваивать название файла
Здравствуйте!
Знающие люди, помогите новичку
есть главная форма с данными о клиенте, в ней подчиненная с данными о сдачах отходов
по каждой сдаче можно вывести отчет на печать
задача: как бы сделать экспорт в 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
31.08.2017, 08:24
    #39513144
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт в pdf, не получается присваивать название файла
Всё это прекрасно... а вопрос-то какой? ну или проблема где?
...
Рейтинг: 0 / 0
31.08.2017, 11:34
    #39513285
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт в pdf, не получается присваивать название файла
он у Вас и формируется
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
31.08.2017, 13:15
    #39513402
Игортан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт в pdf, не получается присваивать название файла
alecko,

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


Меняем False на True - и получившийся документ открывается в программе по умолчанию
...
Рейтинг: 0 / 0
31.08.2017, 14:57
    #39513484
ShultzMAN87
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт в pdf, не получается присваивать название файла
alecko, воу-воу-воу, спасибо конечно, но я только понял на счет переменных
куда вставлять 2 и 3 куски вашего сообщения что то не пойму
нельзя ли просто обратиться к нужному полю формы и "вытащить" оттуда значение, присвоить его переменной, а через переменную перенести в название экспортируемого файла?
как исправить такое обращение
organ = Forms("ф_Клиент").КраткоеНаименование
чтобы оно заработало?
...
Рейтинг: 0 / 0
31.08.2017, 20:11
    #39513675
alecko2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт в pdf, не получается присваивать название файла
ShultzMAN87,
а оно у Вас работает. чтобы открыть для просмотра сразу же после экспорта сделайте как сказано здесь
20761535
с двумя поправками
в пути без пробелов, и "PDFFormat(*.pdf)" - не знаю это работает(?)-лучше заменить на привычную константу acFormatPDF
т.е. с учетом
20761192
2 и 3-е это потом, когда будете вызывать этот отчет на просмотр, Вы его просматривать то собираетесь?
после экспорта не открываете чтоб просмотреть, значит оставляете "на потом".
...
Рейтинг: 0 / 0
01.09.2017, 02:12
    #39513759
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.
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
01.09.2017, 07:50
    #39513792
Экспорт в pdf, не получается присваивать название файла
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
01.09.2017, 08:33
    #39513806
ShultzMAN87
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт в pdf, не получается присваивать название файла
непоймучка, заработало!!!!!!! ))))
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Экспорт в pdf, не получается присваивать название файла / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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