powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / вывод отчета в word шаблон
25 сообщений из 59, страница 1 из 3
вывод отчета в word шаблон
    #36151870
ffflake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очень нужна помощь, есть список сотрудников, вывод которых осуществляется через форму, нужно на каждого сотрудника сохранить приказ, шаблон которого составлен в wordе, т.е. фио каждого сотрудника нужно подставить в определенное место в вордовском тексте, или может быть подобный отчет можно сделать в access, возможно ли это осуществить?
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #36152113
osmor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #36152254
franck_f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
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.
31.
32.
33.
34.
35.
36.
37.
38.
39.
'Экспорт в Word
Private Sub print_Click()
Dim app As Word.Application  'Приложение программы
Dim strDOC As String ' Имя документа
Dim strDOT As String ' Имя шаблона
Dim ctl As Control ' Управляющие элементы в форме
Dim s As String ' Вспомогательная строка
    On Error GoTo  999 
    ' Определяем имена шаблона и документа Word
    With Application.CurrentProject
        strDOT = "templates\template.dot"
        strDOC = "templates\template.doc"
    End With
    ' Управление документом Word
    Set app = New Word.Application 'Новое приложение Word
    app.Visible = False 'Отображаем документ
    app.Documents.Add strDOT 'Добавляем шаблон
    With app.ActiveDocument  'Выбираем активный документ
        On Error Resume Next ' Отключаем ошибки
        ' Просматриваем все элементы формы, если
        ' такой закладки нет, то очищаем поток от ошибки
        For Each ctl In Me.Controls
            If ctl.ControlType = acTextBox Then
                s = ctl.Name ' Определяем название элемента
                .Bookmarks.Item(s).Range.Text = Me(s) 'Устанавливаем текст
                err.Clear ' Очищаем поток от ошибки при отсутствии элемента
            End If
        Next ctl
        app.PrintOut (True)
        MsgBox "Печать..."
        app.Quit (False)
        Kill (strDOC)
        On Error GoTo  999  ' Включаем обработку ошибки
    End With
    Exit Sub
 999 :
    MsgBox "Ошибка"
    err.Clear
    app.Quit
End Sub
+ надо создать этот самый template.dot и расставить в нем BookMark`и с именами полей, данные из которых туда надо вставить
если что-то недопонятно - пишите
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #36152521
ffflake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно подробнее о BookMark, что это?
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #36152530
franck_f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создаете файл в ворде.
Пишите всякую информацию, которая меняться не будет. Оставляете места для вставки данных из формы.
Выделяете оставленное место для вставки, нажимаете Insert -> Bookmark... вводите имя (такое же как и у поля в форме), жмете Add... Всё. Вот вы создали BookMark для одно из полей... То же делаете и со всеми остальными полями...
Потом Сохраняете Как... в формате DOT (шаблон)
Что-то еще пояснить?
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #36152804
Фотография CoolMind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
franck_f, маленькие уточнения по коду.
1) app.Visible = False 'Отображаем документ
в конце или сразу надо не забыть установить в True.

2) With Application.CurrentProject
strDOT = "templates\template.dot"
strDOC = "templates\template.doc"
End With
это вообще не требуется :)

3) app.Documents.Add strDOT
здесь тонкое место. надо бы, наоборот, создать объект в виде
Set oDoc = app.Documents.Add(strDOT)
и в дальнейшем обращаться не к ActiveDocument, а к oDoc.

ну и не забыть в этом случае подключить библиотеку Microsoft Word.
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #36152859
franck_f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В начале скажу - этот кусок я взял с этого же форума и слегка подправил...
CoolMindfranck_f, маленькие уточнения по коду.
1) app.Visible = False 'Отображаем документ
в конце или сразу надо не забыть установить в True.
Я использовал чуть-чуть для другой задачи (печать дока без просмотра), поэтому мне видеть документ не надо было... если человеку надо - пусть есессно поставит Тру
CoolMind2) With Application.CurrentProject
strDOT = "templates\template.dot"
strDOC = "templates\template.doc"
End With
это вообще не требуется :)
Тут у меня был относительный адрес к файлу шаблона и выходному файлу ДОК... я для примера кусок обрезал... думаю не трудно дописать path...
CoolMind3) app.Documents.Add strDOT
здесь тонкое место. надо бы, наоборот, создать объект в виде
Set oDoc = app.Documents.Add(strDOT)
и в дальнейшем обращаться не к ActiveDocument, а к oDoc.
Для простейшего экспорта, на мой взгляд хватит и такой формулировки, но чтоб обезопаситься - можно (и лучше, согласен) как вы написали.
CoolMindну и не забыть в этом случае подключить библиотеку Microsoft Word.
Само собой

Итог: спасибо за корректировки. Я дааалеко не профи, скорее новичек... так что критика мне только на пользу...
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #36152931
ffflake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
franck_fСоздаете файл в ворде.
Пишите всякую информацию, которая меняться не будет. Оставляете места для вставки данных из формы.
Выделяете оставленное место для вставки, нажимаете Insert -> Bookmark... вводите имя (такое же как и у поля в форме), жмете Add... Всё. Вот вы создали BookMark для одно из полей... То же делаете и со всеми остальными полями...
Потом Сохраняете Как... в формате DOT (шаблон)
Что-то еще пояснить?

простите, может я плохо соображаю, но не могу понять где найти этот Bookmark, может на русском есть?
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #36152937
franck_f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если Ворд русский - то видимо Вставка -> Закладка...
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #36152940
ffflake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
franck_f,
огромное спасибо!!!
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #36152972
Фотография CoolMind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
franck_f, как говорится, раз пошла такая пьянка, режь последний огурец.
Я так понял, ничего нового вам не рассказал))) тем не менее, приятно, что вы это всё знаете.
Ну тогда ещё 1 фокус от производителя...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
' Устанавливает закладке sBookmarkName значение sBookmarkValue,
' если закладка существует в документе (Word.Document) oDoc.
Public Sub SetBookmark(oDoc As Object, sBookmarkName As String, sBookmarkValue As Variant)
    If oDoc.Bookmarks.Exists(sBookmarkName) Then
        oDoc.Bookmarks(sBookmarkName).Range.Text = sBookmarkValue & ""
    End If
End Sub
Это чуток получше, чем такая вещь:
On Error Resume Next ' Отключаем ошибки
...
.Bookmarks.Item(s).Range.Text = Me(s) 'Устанавливаем текст

Извините, что критикую, я не ради критики, просто, чтобы новичку было понятнее. Ну а в целом, рад, что вы помогли человеку.
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #36153749
franck_f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CoolMind,
авторИзвините, что критикую
ну что вы! я ж только рад! серьезно. я только изучаю акс... но если вижу, что человеку не хватает куска кода, который у меня есть и при том рабочий - пытаюсь помочь, отнюдь не претендуя на 100% правильность своего совета...
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #36604215
Сергей846
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста, а как реализовать такую выгрузку в шаблон из запроса, так чтобы сразу создавалось столько документов сколько строк в запросе?
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #36604226
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рекордсетом. И на кажой записи выгружать в отдельный документ.
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #36604240
Сергей846
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пришла в голову мысль, но думаю такое реализовавть невозможно. Есть шаблон с бланком ордера и база с запросом (каждая строка в котором - это информация про операцию: сумма, назначение, ФИО,дата и т д).Можно реализовать так чтобы при экспорте создавался документ по шаблону - заполнялся бланк по заранее раставленным закладкам из первой строки запроса, потом ниже заполнялся следующий бланк из след строки запроса и т.д.? Как такое реализовать, чтобы все бланки были созданы в одном документе. немного по эксперементировал, получается заполнять только первый бланк! Не судите сильно, я учусь. За помощь буду очень благодарен.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
вывод отчета в word шаблон
    #38631338
Фотография nezhensky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё работает но, у меня одно выводимое в WORD поле MEMO имеет формат RTF(там сочетание жирного шрифта и курсива).
В итоге оно у меня выводится таким образом:
"Шакуров Ю.В. амб .02.2013г.
<div><font face="Times New Roman" size=3 color=black><strong>PANCREAS</strong>- головка   см, тело    см, хвост    см, контуры неровные, эхогенность    обычная, структура  однородная, проток не расширен.</font></div>
<div><font face="Times New Roman" size=3 color=black><strong>ПЕЧЕНЬ </strong>– ККР     не  увеличена, контуры ровные, эхогенность  обычная, структура однородная,   вены желч. ходы не расширены, </font></div>
<div> </div>
<div><font face="Times New Roman" size=3 color=black>уплотнены стенки внутрипеченочных сосудов.</font></div>
<div><font face="Times New Roman" size=3 color=black><strong>ЖЕЛЧНЫЙ ПУЗЫРЬ</strong> –   см,  </font></div>
"
Что поменять в коде чтобы выводилось без этих тэгов?
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #38631349
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nezhensky,

лучше базу и шаблон приложите
понятнее будет
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #38631357
Фотография nezhensky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
База огроменная.
Вот поле MEMO в формате RTF. Как его выгрузить также в шаблон WORD
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #38631358
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nezhensky,

тогда хотя бы шаблон
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #38631361
Фотография nezhensky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BOOKMARK Protokol
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #38631364
Фотография nezhensky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам код экспорта в шаблон:
Код: 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.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
Private Sub Вид_исследования_AfterUpdate()
Dim Filt As String
    Filt = "[код] = " & [Forms]![Заполнение]![Основная].[Form]![Вид исследования]
Me![Протокол] = DLookup("[Протокол]", "Исследования", Filt)
End Sub



Private Sub Кнопка28_Click()
On Error GoTo Err_Кнопка28_Click

    Dim stDocName As String

    stDocName = ChrW(1054) & ChrW(1090) & ChrW(1073) & ChrW(1086) & ChrW(1088) & ChrW(95) & ChrW(1087) & ChrW(1077) & ChrW(1095) & ChrW(1072) & ChrW(1090) & ChrW(1080)
    DoCmd.OpenQuery stDocName, acNormal, acEdit

Exit_Кнопка28_Click:
    Exit Sub

Err_Кнопка28_Click:
    MsgBox Err.Description
    Resume Exit_Кнопка28_Click
    
End Sub

Private Sub Кнопка29_Click()
Dim app As Word.Application
Dim strFilter2, strFilter3 As String
Dim strPathDot As String, strPathWord As String
 
strPathDot = CurrentProject.Path & "\template.dotx"
strPathWord = CurrentProject.Path & "\DOC " & Forms![Заполнение]![ФИО] & ".doc"
 
'Если есть документ с таким же названием и местом расоложения, выдается сообщение о замене
If Dir(strPathWord) <> "" Then
DlgUser = MsgBox("Документ с таким именем ранее уже был создан. Заменить его?", vbYesNo, "admin")
 
'Если нет, открывается старый документ
If DlgUser = vbNo Then
Set app = CreateObject("Word.Application")
With app
.Visible = True
.Documents.Open strPathWord
End With
Set app = Nothing
Else
GoTo nn
End If
Else
 
'Если такого документа нет или, если человек выбрал "да", то создается новый документ взамен старого на основе шаблона
nn:
Set app = New Word.Application
app.Visible = True
app.Documents.Add strPathDot
With app.ActiveDocument
    ' Определяет фильтр перед его передачей в функцию DLookup.
    strFilter2 = "[код] = " & [Forms]![Заполнение]![Основная].[Form]![Вид исследования]
    strFilter3 = "[код] = " & [Forms]![Заполнение]![Основная].[Form]![Врач]

'Вставка данных
    .Bookmarks("FIO").Range.Text = Forms![Заполнение]![ФИО]
    .Bookmarks("Protokol").Range.Text = [Forms]![Заполнение]![Основная].[Form]![Протокол]
    
    .Bookmarks("Zaklu4enie").Range.Text = [Forms]![Заполнение]![Основная].[Form]![Заключение]


.SaveAs strPathWord
End With
Set app = Nothing
End If
funOutputWord = True
Exit_:
End Sub
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #38631395
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nezhensky,

отчет в НТМ-формате
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
вывод отчета в word шаблон
    #39427557
Здравствуйте форумчане!
Прошу помочь с кодом. Сам его не писал, нашел на просторах интернета. Он работает, но мне бы его подточить под себя. Смысл в том, чтоб не выбирался указанный в коде файл шаблона, а выводилось диалоговое окно, где я бы указывал нужный мне файл .dotx
Вот код который работает по клику кнопки:
Код: 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.
31.
32.
33.
34.
35.
36.
37.
38.
Private Sub Кнопка25_Click()
Dim app As Word.Application  'Приложение программы
Dim strDOC As String ' Имя документа
Dim strDOT As String ' Имя шаблона
Dim ctl As Control ' Управляющие элементы в форме
Dim s As String ' Вспомогательная строка
    
    On Error GoTo 999
        With Application.CurrentProject
        strDOT = .path & "\" & "1.dotx"
        strDOC = .path & "\" & "1.docx"
    End With
    
    ' Управление документом Word
    Set app = New Word.Application 'Новое приложение Word
    app.Visible = True 'Отображаем документ
    app.Documents.Add strDOT 'Добавляем шаблон
    With app.ActiveDocument  'Выбираем активный документ
        On Error Resume Next ' Отключаем ошибки
        ' Просматриваем все элементы формы, если
        ' такой закладки нет, то очищаем поток от ошибки
        For Each ctl In Me.Controls
            If ctl.ControlType = acTextBox Then
                s = ctl.Name ' Определяем название элемента
                .Bookmarks.Item(s).Range.Text = Me(s) 'Устанавливаем текст
                Err.Clear ' Очищаем поток от ошибки при отсутствии элемента
            End If
        Next ctl
    
        On Error GoTo 999 ' Включаем обработку ошибки
    End With
    ' app.Quit 'Закрываем приложение
    Exit Sub
999:
    MsgBox Err.Description  'Ошибка
    Err.Clear
    app.Quit
End Sub



Вот этот код нашел для вывода диалогового окна, но куда его вставить в основной код не пойму:
Код: 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 GetFileName(Optional ByVal Title As String = "Выберите файл для обработки", _
                     Optional ByVal InitialPath, _
                     Optional ByVal MyFilter As String = "Книги Excel (*.xls*),") As String
    ' функция выводит диалоговое окно выбора папки с заголовком Title,
    ' начиная обзор диска с папки InitialPath
    ' возвращает полный путь к выбранной папке, или пустую строку в случае отказа от выбора
    If Not IsMissing(InitialPath) Then
        On Error Resume Next: ChDrive Left(InitialPath, 1)
        ChDir InitialPath    ' выбираем стартовую папку
    End If
    res = Application.GetOpenFilename(MyFilter, , Title, "Открыть")  ' вывод диалогового окна
    GetFileName = IIf(VarType(res) = vbBoolean, "", res)    ' пустая строка при отказе от выбора
End Function
 
Sub ПримерИспользования_GetFileName()
    ИмяФайла = GetFileName("Заголовок окна", ThisWorkbook.Path)   ' запрашиваем имя файла
    ' ===================== другие варианты вызова функции =====================
    ' текстовые файлы, стартовая папка не указана
    '       ИмяФайла = GetFileName("Выберите текстовый файл", , "Текстовые файлы (*.txt),")
    ' файлы любого типа из папки "C:\Windows"
    '       ИмяФайла = GetFileName(, "C:\Windows", "")
    ' ==========================================================================

    If ИмяФайла = "" Then Exit Sub    ' выход, если пользователь отказался от выбора файла
    MsgBox "Выбран файл: " & ИмяФайла, vbInformation
End Sub



Подскажите уважаемые, как это сделать? Спасибо!
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #39427566
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Калмыков,

Код: vbnet
1.
res = Application.GetOpenFilename(MyFilter, , Title, "Открыть")  ' вывод диалогового окна



я не знаю такого метода GetOpenFilename , где вы взяли код
...
Рейтинг: 0 / 0
вывод отчета в word шаблон
    #39427578
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Калмыков,

Application.GetOpenFilename есть в екселе
...
Рейтинг: 0 / 0
25 сообщений из 59, страница 1 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / вывод отчета в word шаблон
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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