powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / печать данных из Access в Word (OLE)
1 сообщений из 1, страница 1 из 1
печать данных из Access в Word (OLE)
    #33673712
Matroz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Office2000. База в Access.
Требуется создать нетабличный (одна запись) отчет (бланк договора на 2 стр.). Заготовка предоставлена в Word. Решение, сохранив форматирование, добавить текст. поля, дать им закладки (совпадающие с именами полей запроса), включить защиту "Только ввод данных в поля форм" и сохранить это в виде шаблона. Затем из Access создать ворд док. с этим шаблоном и заполнить поля.Рисовать этот бланк в Access - гемор. Вот код
для заполнения полей
Код: 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.
Sub AddDataToWordField(Doc As Word.Document, FieldBookmark As String, Data As String)
    Dim rng As Word.Range
    For i =  1  To Doc.Fields.Count
        Set rng = Doc.Fields(i).Result
        If rng.Bookmarks( 1 ) = FieldBookmark Then
            rng.Text = Data
            i = Doc.Fields.Count
        End If
    Next
End Sub

Sub PrintDogovor(DogovorID As Integer)
    Dim oWord As Word.Application
    Dim oDoc As Word.Document
  ...
    Set oDoc = oWord.Documents.Add(Template:=CurrentProject.Path + "\" + "договор.dot", NewTemplate:=False, DocumentType:= 0 )
...
    Dim rst As ADODB.Recordset
    Set rst = cmd.Execute
    
    oDoc.Unprotect ""
    If Not (rst.EOF Or rst.BOF) Then
        For i =  0  To rst.Fields.Count -  1 
            If Not IsNull(rst.Fields(i)) Then
                AddDataToWordField oDoc, rst.Fields(i).name, CStr(rst.Fields(i).Value)
            End If
        Next
    End If
...
    oDoc.Protect wdAllowOnlyFormFields, True, ""
End Sub

оставил только основное
Вопрос по Word.
Почему мне приходится снимать защиту /oDoc.Unprotect ""/ перед печатью данных?
Если не снять, то ругань по поводу rng.Text = Data, что-то типа "не могу использовать это свойство в защищенном режиме". Но ведь я руками могу вводить текст в поля ИМЕННО В ЗАЩИЩЕННОМ РЕЖИМЕ. А если снять, то надо обратно ставить oDoc.Protect wdAllowOnlyFormFields, True, "".
или rng.Text = Data - не наш метод? Непнятно
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / печать данных из Access в Word (OLE)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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