powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сохранить измененный документ Word в поле OLE
25 сообщений из 88, страница 2 из 4
Как сохранить измененный документ Word в поле OLE
    #37011361
George Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Access BeginnerИнтересно можно ли добавить хоть 5 OLE объекта, каждый из которых будет показывать отдельно взятый лист Word отчёта? В смысле сам отчёт состоит скажем из 5 листов. 1-OLE показывает 1-лист, а 2 соответственно 2-лист и т.д. Если заранее известно точное количество страниц отчёта.
Разбейте Ваш документ Word на 5 документов по одной странице.
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37011371
George Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Access BeginneralvkAccess Beginner,

Если речь идёт про шаблончик, то нафига тогда OLE? Сделайте шаблончик и открывайте его когда надо, хоть черех shell, хоть через выгрузку в Word. Вы же хотите только распечатать, а не хранить?

Т.е. программно открыть файл, изменить, распечатать, а потом закрыть и при этом не сохранить.
А такой тогда вопрос: если одновременно по сети 2 и более пользователя откроют один и тот же файл, то не будет никакого конфликта?

Сейчас попробую у себя поэкспериментировать.
Вы бы сформулировали Вашу задачу поподробней.
Может Вам действительно не нужно мудрить с отчётами, а просто открывать сам документ?
Или сделать всё в стандартном отчёте Access?
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37011450
Access Beginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
George Ru...
Вы бы сформулировали Вашу задачу поподробней.
Может Вам действительно не нужно мудрить с отчётами, а просто открывать сам документ?
Или сделать всё в стандартном отчёте Access?

Очень хотелось бы всё это сделать в Access без "посторонней" программы. Это в идеале!!! Но так я думаю голыми средствами только Access сделать "красивые" отчёты не получится.
Дело в том, что я тоже столкнулся с "Договорами". Но они у меня длинные (в смысле не один лист!). Так как документ официальный, то и выглядеть должен идеально! Выравнивание, жирные шрифты, нумерация пунктов и т.д.

А как Вы решили проблему? У Вас договор на 1 листе? Выглядят ли идеально "красивым"?
Если это возможно не могли бы Ваш файл скинуть! Меня данные не интересуют, можете стереть все данные и оставить какие-нибудь (хоть вымышленные) для наглядности. Я хотел бы посмотреть на базу и как это работает.
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37011471
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Access Beginner,

авторОчень хотелось бы всё это сделать в Access без "посторонней" программы. Это в идеале!!! Но так я думаю голыми средствами только Access сделать "красивые" отчёты не получится.
Дело в том, что я тоже столкнулся с "Договорами". Но они у меня длинные (в смысле не один лист!). Так как документ официальный, то и выглядеть должен идеально! Выравнивание, жирные шрифты, нумерация пунктов и т.д.


Сделайте Word шаблоны и заполняйте их из Аксесс программы. Идеальный вариант.
Плюс всегда можно изменить сам шаблон.

Если несколько типов договоров - сделайте несколько шаблонов.

Как выводить из Акса в шаблон могу подкинуть код, если нужно.
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37011513
Access Beginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NeboСделайте Word шаблоны и заполняйте их из Аксесс программы. Идеальный вариант.
Плюс всегда можно изменить сам шаблон.

Если несколько типов договоров - сделайте несколько шаблонов.

Как выводить из Акса в шаблон могу подкинуть код, если нужно.

Скорее всего всё идёт к этому. В таком случае мне придётся решить 2 проблемы:
1) не будет ли конфликта если по сети 2 и более юзера обратятся к одному и тому же шаблону
2) как запретить "сохранение" шаблона. Мне очень важно и просто необходимо оставить шаблон первозданном виде, т.к. нельзя давать возможность копирования договора пользователям. Они как бы конфиденциальные. Понимаю, что тот же юзер может распечатку сканировать и "привет" всем секретам. Но так всё равно надо.
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37011571
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Access Beginner,

авторСкорее всего всё идёт к этому. В таком случае мне придётся решить 2 проблемы:
1) не будет ли конфликта если по сети 2 и более юзера обратятся к одному и тому же шаблону
2) как запретить "сохранение" шаблона. Мне очень важно и просто необходимо оставить шаблон первозданном виде, т.к. нельзя давать возможность копирования договора пользователям. Они как бы конфиденциальные. Понимаю, что тот же юзер может распечатку сканировать и "привет" всем секретам. Но так всё равно надо.

Сделать надо так:

1. На каждом компьютере лежит шаблон Word.
2. На основе шаблона создаётся документ. Шаблон не затрагивается.
Чтобы его изменить это надо специально лезть и его открывать.
Ну и, наверное, на шаблон можно поставить пароль. Кстати точно можно поставить.
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37011611
alvk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Access BeginneralvkAccess Beginner,

Если речь идёт про шаблончик, то нафига тогда OLE? Сделайте шаблончик и открывайте его когда надо, хоть черех shell, хоть через выгрузку в Word. Вы же хотите только распечатать, а не хранить?

Т.е. программно открыть файл, изменить, распечатать, а потом закрыть и при этом не сохранить.
А такой тогда вопрос: если одновременно по сети 2 и более пользователя откроют один и тот же файл, то не будет никакого конфликта?

Сейчас попробую у себя поэкспериментировать.

Ну какой конфликт, если вы будете из Акцесса открывать шаблон? Word сам на основе шаблона создаст каждому юзеру документ и там уже хочешь сохраняй, хочешь нет. Да вы сами проэкспериментируйте хотя бы с помощью shell.
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37011638
Фотография Sator Arepo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NeboAccess Beginner,

.....................
Сделать надо так:

1. На каждом компьютере лежит шаблон Word.
............
Вот это верный путь к тому, чтобы шаблоны расползлись, как тараканы и мутировали. ИМХО, лучше - при условии, что шаблон должен быть единым, хранить его в общедоступном месте на файл-сервере (рид-онли).
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37011643
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sator Arepo,

:)

авторВот это верный путь к тому, чтобы шаблоны расползлись, как тараканы и мутировали. ИМХО, лучше - при условии, что шаблон должен быть единым, хранить его в общедоступном месте на файл-сервере (рид-онли).

Да можно и так:)
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37011848
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Access BeginnerПЕНСИОНЕРКА,

Вы примерчик какой-нибудь выложили бы! А то над бедными начинающими как издевательство: "А вот я это умею, то умею, но тебе не дам!!!". А если вы в этом деле "собаку съели", то написали бы что-то вроде FAQ, вообще цены бы не было!!! Уверен, что многих это заинтересует (если конечно при этом комментарии есть).
я уже выкладывала несколько образцов

один из них
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37013246
George Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Access BeginnerGeorge Ru...
Вы бы сформулировали Вашу задачу поподробней.
Может Вам действительно не нужно мудрить с отчётами, а просто открывать сам документ?
Или сделать всё в стандартном отчёте Access?

Очень хотелось бы всё это сделать в Access без "посторонней" программы. Это в идеале!!! Но так я думаю голыми средствами только Access сделать "красивые" отчёты не получится.
Дело в том, что я тоже столкнулся с "Договорами". Но они у меня длинные (в смысле не один лист!). Так как документ официальный, то и выглядеть должен идеально! Выравнивание, жирные шрифты, нумерация пунктов и т.д.

А как Вы решили проблему? У Вас договор на 1 листе? Выглядят ли идеально "красивым"?
Если это возможно не могли бы Ваш файл скинуть! Меня данные не интересуют, можете стереть все данные и оставить какие-нибудь (хоть вымышленные) для наглядности. Я хотел бы посмотреть на базу и как это работает.
У меня все файлы Word лежат в таблице Access, в поле OLE.
Договоры на несколько страниц, но они открываются из Access Word'ом.
Отчёты Access не используются. Зачем? Если можно и так открыть.
У Вас же, наверное, установлен Word?
Шаблоны хранятся в отдельной таблице, к ним нет доступа пользователям.
Документы в другой таблице появляются после запуска запроса на добавление (копируются из таблицы Шаблоны в таблицу Документы)
На форме Договор лежит подчиненная форма Документы, вот прямо из неё и открываются документы договора.
Для того чтобы не было возможности изменить документ, форма открывается в режиме acFormReadOnly.
Пример пока выложить не могу: во-первых, не доделал ещё, во-вторых, нужно вырезать этот кусок из базы, там помимо этого ещё очень много всего.
Надеюсь, по описанию и так будет понятно, но если что, спрашивайте - дополню.
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37013263
George Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NeboКак выводить из Акса в шаблон могу подкинуть код, если нужно.
Интересно было бы посмотреть как это делается.
Я вывожу через закладки в документе:
Код: plaintext
    oDoc.Bookmarks.Item("ДоговорНомер").Range.Text = Me.Договор№
Но может быть есть ещё способы? Поделитесь опытом.
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37013317
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
George RuNeboКак выводить из Акса в шаблон могу подкинуть код, если нужно.
Интересно было бы посмотреть как это делается.
Я вывожу через закладки в документе:
Код: plaintext
    oDoc.Bookmarks.Item("ДоговорНомер").Range.Text = Me.Договор№
Но может быть есть ещё способы? Поделитесь опытом.

Правильно вы делаете. Именно так и я делаю при выводе в шаблон Word.

Может и не нужен мой код? У Вас тоже самое.
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37013430
George Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NeboМожет и не нужен мой код? У Вас тоже самое.
Да это Access Beginner спрашивал, мне просто тоже стало интересно.
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37015068
George Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вообще, в этой теме уже есть пример такого кода.
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37015209
Access Beginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
George RuУ меня все файлы Word лежат в таблице Access, в поле OLE.
Договоры на несколько страниц, но они открываются из Access Word'ом.
Отчёты Access не используются. Зачем? Если можно и так открыть.
У Вас же, наверное, установлен Word?
Шаблоны хранятся в отдельной таблице, к ним нет доступа пользователям.
Документы в другой таблице появляются после запуска запроса на добавление (копируются из таблицы Шаблоны в таблицу Документы)
На форме Договор лежит подчиненная форма Документы, вот прямо из неё и открываются документы договора.
Для того чтобы не было возможности изменить документ, форма открывается в режиме acFormReadOnly.
Пример пока выложить не могу: во-первых, не доделал ещё, во-вторых, нужно вырезать этот кусок из базы, там помимо этого ещё очень много всего.
Надеюсь, по описанию и так будет понятно, но если что, спрашивайте - дополню.

А как Вы решили проблему "корректировки" текста контракта? Как известно иногда тексты приходится вручную подкорректировать (склонение по падежам, особенности множественного числа и т.д.)
Если я правильно понял, то шаблон выгружаете из Access в Word и там все значения закладок (bookmark) заменяете с помощью VBA. Дальше, напечатать или подкорректировать перед печатью - решать юзеру. Всё происходит именно так или я что-то упустил?
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37015235
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Access Beginner,

авторА как Вы решили проблему "корректировки" текста контракта? Как известно иногда тексты приходится вручную подкорректировать (склонение по падежам, особенности множественного числа и т.д.)
Если я правильно понял, то шаблон выгружаете из Access в Word и там все значения закладок (bookmark) заменяете с помощью VBA. Дальше, напечатать или подкорректировать перед печатью - решать юзеру. Всё происходит именно так или я что-то упустил?

Да, именно так:)

Вот примерный код для вывода в шаблон Word:


Код: 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.
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.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
Public Sub ContractWord(ParID As Long)
'Печать договора
On Error GoTo Err_Handler

    Dim ParFile As String
    ParFile = Dir("C:\Договор.dot")
    
    If ParFile = "Договор.dot" Then

        Dim dbs As DAO.Database
        Set dbs = CurrentDb
    
        Dim strBookmark As String
    
        Dim rst As DAO.Recordset
        Dim qdf As DAO.QueryDef
        
        Set qdf = dbs.QueryDefs("qry1") 'Word Contract - данные для договора
        qdf.Parameters("ParID") = ParID
        
        Set rst = qdf.OpenRecordset(dbOpenForwardOnly)
     
        If rst.BOF = False And rst.EOF = False Then
        
            DoCmd.Hourglass True
            
            Dim objWord As New Word.Application
            
            Set objWord = CreateObject("Word.Application")
            
            objWord.Documents.Add Template:="C:\Договор.dot", _
                NewTemplate:=False, DocumentType:= 0 
            
'            On Error Resume Next ' это нужно чтобы программа не спотыкалась на отсутствующих закладках
            
            
            strBookmark = "НомерДоговора"
            objWord.Selection.GoTo What:=wdGoToBookmark, name:=strBookmark
            objWord.Selection.Bookmarks(strBookmark).Range = Nz(rst("ContractNo"), "")
            
            strBookmark = "ДатаДоговора"
            objWord.Selection.GoTo What:=wdGoToBookmark, name:=strBookmark
            objWord.Selection.Bookmarks(strBookmark).Range = Nz(rst("ContractDate"), "")
            
            strBookmark = "ДатаДогПрописью"
            objWord.Selection.GoTo What:=wdGoToBookmark, name:=strBookmark
            objWord.Selection.Bookmarks(strBookmark).Range = Nz(Format(rst("ContractDate"), "dd mmmm yyyyг."), "")
            
            
            strBookmark = "Клиент"
            objWord.Selection.GoTo What:=wdGoToBookmark, name:=strBookmark
            objWord.Selection.Bookmarks(strBookmark).Range = Nz(rst("Client"), "")
            
            

            objWord.Selection.HomeKey Unit:=wdStory 'наверх документа
            objWord.ActiveWindow.ActivePane.VerticalPercentScrolled =  0  'вверх верт. полосы прокрутки


            objWord.Visible = True
                    
            'передать управление в Word
            objWord.Activate
    
            
            DoCmd.Hourglass False
        
        Else
        
            MsgBox "Нет данных для вывода в Word.", vbExclamation, "Сообщение"
        
        End If
    Else
        MsgBox "Шаблон C:\Договор.dot отсутствует.", vbExclamation, "Сообщение"
        Exit Sub
    End If



Exit_Handle:

    DoCmd.Hourglass False
    
    If Not rst Is Nothing Then
        rst.Close
        Set rst = Nothing
    End If
    If Not qdf Is Nothing Then
        qdf.Close
        Set qdf = Nothing
    End If
    
    
    If Not dbs Is Nothing Then
        dbs.Close
        Set dbs = Nothing
    End If

    Exit Sub

Err_Handler:

    Select Case Err.Number
    Case  91  'ворд запущен, но нет документа
        objWord.Documents.Add
        Resume Next
    Case  429 
        Set objWord = CreateObject("Word.Application")
        objWord.Documents.Add
        Resume Next
    Case  4248 
        objWord.Documents.Add
        Resume
    Case  5101  'закладка не существует
        MsgBox Err.Description & vbCr & "Создайте в шаблоне документа Word закладку: " & strBookmark
        Resume Exit_Handle
    
    Case  5151  'шаблон отсутствует
        MsgBox "Шаблон C:\Договор.dot отсутствует", vbCritical
        
        objWord.Visible = True
        
        'передать управление в Word
        objWord.Activate
        
        Resume Exit_Handle
    
    
    Case Else
        MsgBox Err.Description
    End Select
    DoCmd.Hourglass False

End Sub
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37015447
George Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Access BeginnerА как Вы решили проблему "корректировки" текста контракта? Как известно иногда тексты приходится вручную подкорректировать (склонение по падежам, особенности множественного числа и т.д.)
Если я правильно понял, то шаблон выгружаете из Access в Word и там все значения закладок (bookmark) заменяете с помощью VBA. Дальше, напечатать или подкорректировать перед печатью - решать юзеру. Всё происходит именно так или я что-то упустил?
Шаблон из Access никуда не выгружаю. Все файлы Word хранятся в самой базе, в поле OLE.
Но можно, конечно, хранить и шаблоны и документы отдельно в файлах, а в поле OLE использовать ссылку на эти файлы. Кому как удобнее.
При создании нового договора копируются шаблоны (запросом) и открывается форма с возможностью вносить изменения.
На форме список документов Word. Каждый документ отображается в виде значка.
Двойной щелчок мыши открывает этот документ в Word'е. Т.е. программно Word я нигде не запускаю, это происходит автоматически.
Жаль только, что при таком способе нельзя открыть несколько документов одновременно.
Если при открытом документе из базы переключиться обратно в базу и открыть другой документ, то он откроется вместо предыдущего в том же окне Word.
Все изменения сделанные в предыдущем документе сохраняться автоматически.
На форме я поставил кнопку Оформить.
Когда пользователь завершил корректировку документов, он нажимает кнопку Оформить и форма открывается заново в режиме acFormReadOnly.
Для того чтобы в дальнейшем было понятно в каком режиме открывать тот или иной договор, в таблице Договоры есть поле Оформлен тип Логический Да/Нет.
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37016746
George Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как много не объясняй, но всё же легче всего разобраться на конкретном примере.
Сегодня уделил время и сделал пример базы, в которой:
шаблоны хранятся в базе в таблице Шаблоны в поле OLE;

документы также хранятся в базе в таблице Документы в поле OLE;

документы по несколько штук привязаны к договору (таблица Договоры);

на форме Договоры можно просмотреть список договоров;

можно создать новый договор (кнопка Новый);

можно открыть на просмотр существующий договор (кнопка Открыть);
При открытии договора открывается форма Договор:

на ней есть кнопка Заполнить,
при нажатии на которую заполняется документ под названием Договор.
этот код приведён для примера, поэтому заполняется только один документ;
по идее документы должны заполняться сразу при создании договора и добавлении в него документов.

кнопка Добавить документ вызывает форму Выбор шаблона,
т.е. если какого-то документа не хватает, его можно добавить из шаблонов;

кнопка Оформить закрывает документы договора от изменений,
т.е. ставит галочку в поле Оформить таблицы Договоры.
а при открытии формы Договор это поле проверяется и форма открывается в режиме acFormReadOnly, если договор оформлен.
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37017191
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
George Ru,

За пример СПАСИБО:)

Маленькое замечание. Нажимаю на кнопку Заполнение
появляется ошибка как на картинке.
И ещё в другой раз ругается, что не найдена закладка.
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37017334
Access Beginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
George Ru,

Спасибо огромное ПРИОГРОМНОЕ!!! Читаю и анализирую Ваш файл.
Выглядит круто и лихо! То, что иногда на что-то Access ругается щас разбираюсь. Но в любом случае всё выглядит конкретно здорово!


P.S.
Думал, что я в Access "начинающий", оказывается я даже и не начинал! :)
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37017606
George Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NeboGeorge Ru,

За пример СПАСИБО:)

Маленькое замечание. Нажимаю на кнопку Заполнение
появляется ошибка как на картинке.
И ещё в другой раз ругается, что не найдена закладка.
То что ругается про закладку сделано нарочно, чтобы по несколько раз не заполнялись заполненные поля, закладки вставлены в виде полей.
Если их вставлять в документ в таком виде, то при заполнении они заменяются на подставляемые значения,
а если вставлять просто закладки, то после заполнения они остаются и можно заполнить ещё раз.
Можно сделать обработчик ошибки кому как удобно, я сделал вывод сообщения для наглядности примера, а можно просто игнорировать и поставить Resume Next.
По поводу Вашего скриншота затрудняюсь ответить. Может быть какой-то библиотеки не хватает в References? У меня такого сообщения не было ни разу.
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37017690
alvk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
George Ru,

У меня всё работает, никаких библиотек не подключал, кроме тех, что стоят:
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37017729
George Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alvkGeorge Ru,

У меня всё работает, никаких библиотек не подключал, кроме тех, что стоят:
Надо бы посмотреть какой список у Nebo.
Либо, может быть дело в самом Word'е.
...
Рейтинг: 0 / 0
Как сохранить измененный документ Word в поле OLE
    #37017809
George Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NeboНажимаю на кнопку Заполнение появляется ошибка как на картинке.
Есть ещё предположение:
Судя по коду, который Вы здесь выкладывали у Вас должно работать выражение:
{.Range =} вместо {.Range.Text =}
Попробуйте заменить в коде две строчки
Код: plaintext
1.
2.
    oDoc.Bookmarks.Item("ДоговорНомер").Range.Text = Me.Договор№
    oDoc.Bookmarks.Item("ДоговорДата").Range.Text = Format(Me.Дата, "dd mmmm yyyy")
на
Код: plaintext
1.
2.
    oDoc.Bookmarks.Item("ДоговорНомер").Range = Me.Договор№
    oDoc.Bookmarks.Item("ДоговорДата").Range = Format(Me.Дата, "dd mmmm yyyy")
хотя пока писал засомневался, что это сработает.
Ведь в Вашем коде работа идёт с видимым объектом Word.
Код: plaintext
1.
2.
3.
4.
5.
Dim objWord As New Word.Application
    Set objWord = CreateObject("Word.Application")
    objWord.Documents.Add Template:="C:\Договор.dot", NewTemplate:=False, DocumentType:= 0 
    strBookmark = "НомерДоговора"
    objWord.Selection.GoTo What:=wdGoToBookmark, name:=strBookmark
    objWord.Selection.Bookmarks(strBookmark).Range = Nz(rst("ContractNo"), "")
а конструкции {.Range =} и {.Range.Text =} по сути своей ничем не отличаются,
но может всё-равно стОит попробовать...
...
Рейтинг: 0 / 0
25 сообщений из 88, страница 2 из 4
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сохранить измененный документ Word в поле OLE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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