powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как из Access2007 передать данные в Word2007 для их вставки в документ
17 сообщений из 17, страница 1 из 1
Как из Access2007 передать данные в Word2007 для их вставки в документ
    #38085783
dbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите.
Суть проблемы: есть таблица Аксесс2007, ну скажем таблица clients,
с полями id, name, address.
Курсором в таблице отмечена запись.

При этом в файле Договор.docx лежит типовой договор,
в который и нужно вставить отмеченные id, name, address.
Как это сделать в офисе 2007?

Раньше в офисе 2003 я делал такие вещи через вызов Word с помощью VBA Аксеса.
После использовалось имя .doc-файла с текстом договора и предварительно вставленных закладок.
Затем в каждую закладку (в свойство .text я засылал соответствующие данные, ну, те же id, name, address).
После этого большой Вордовский многостраничный документ сохранялся с необходимым содержимым и распечатывался.

Подскажите, как сделать нечто подобное в офисе2007 ?
...
Рейтинг: 0 / 0
Как из Access2007 передать данные в Word2007 для их вставки в документ
    #38086030
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dbc,
пользуйтесь теми же закладками, вот пример программы из одной очень популярной книги по access 2007

Код: 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.
75.
Public Sub MergetoWordf()
' This method creates a new document in
'  MS Word using Automation
On Error Resume Next
Dim rsCust As New ADODB.Recordset
Dim sSQL As String
Dim WordObj As Word.Application
Dim iTemp As Integer
sSQL = "SELECT * FROM Customers  " _
& "WHERE CustomerNumber = " _
& Forms I Orders![CustomerNumber]
rsCust.Open sSQL,  CurrentProject.Connection
If rsCust.EOF Then
MsgBox "Invalid customer", vbOKOnly
Exit Function

End If
DoCmd.Hourglass True
'Try to get a running instance of Word:
Set WordObj  = GetObject(,   "Word.Application")
If Err.Number <> 0 Then
'An error is thrown if Word is not running,
'so use CreateObject to start up Word:
Set WordObj = CreateObject("Word.Application")
End If
'Make sure the user can see Word: WordObj.Visible = True
'Warning:
'Specify the correct drive and path to the 'file named Thanks.dotx in the line below.
WordObj.Documents.Add _
Template:= "C:\Thanks.dotx",  NewTemplate:=False
With WordObj.Selection
.GoTo what :=wdGoToBookmark,  Name : = "FullName" 
.TypeText rsCust![ContactName]
.GoTo what:=wdGoToBookmark, Name:="CompanyName" 
.TypeText rsCust![CompanyName]
.GoTo what:=wdGoToBookmark,  Name:="Address1" 
.TypeText rsCust![Addressl]
.GoTo what:=wdGoToBookmark, Name:="Address2" 
If IsNull(rsCust![Address2])  Then
.TypeText  " "
Else
.TypeText rsCust![Address2] 
End If
 
.GoTo what:=wdGoToBookmark,  Name:="City"
.TypeText rsCust![City]
.GoTo what:=wdGoToBookmark,  Name:="State"
.TypeText rsCust![State]
.GoTo what:=wdGoToBookmark, Name:="Zipcode"
.TypeText rsCust![Zipcode]
.GoTo what:=wdGoToBookmark, Name:="PhoneNumber"
.TypeText rsCust![PhoneNumber]
.GoTo what:=wdGoToBookmark, Name:="NumOrdered" 
.TypeText FormsiOrders![Quantity]
.GoTo what:=wdGoToBookmark, Name:="Productordered" 
If FormsIOrders![Quantity]  > 1 Then
WordObj.Selection.TypeText Forms!Orders![Item] & "s" 
Else
WordObj.Selection.TypeText Forms!Orders![Item] 
End If
.GoTo what:=wdGoToBookmark, Name:="FName"
iTemp = InStr(rsCust![ContactName],   "  ")
If iTemp > 0 Then
.TypeText Lefts(rsCust![ContactName], iTemp - 1) 
End If
.GoTo what:=wdGoToBookmark, Name:="LetterName" 
.TypeText rsCust![ContactName]
DoEvents
WordObj.Activate 
.MoveUp wdLine,  6 
End With
'Set the Word Object to Nothing to free resources: 
Set WordObj = Nothing 
DoCmd.Hourglass False
End Sub
...
Рейтинг: 0 / 0
Как из Access2007 передать данные в Word2007 для их вставки в документ
    #38088236
dbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_rusimport,

спасибо, буду пробовать
...
Рейтинг: 0 / 0
Как из Access2007 передать данные в Word2007 для их вставки в документ
    #38089024
Фотография Папа Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbcПодскажите.
Суть проблемы: есть таблица Аксесс2007, ну скажем таблица clients,
с полями id, name, address.
Курсором в таблице отмечена запись.

При этом в файле Договор.docx лежит типовой договор,
в который и нужно вставить отмеченные id, name, address.
Как это сделать в офисе 2007?

Раньше в офисе 2003 я делал такие вещи через вызов Word с помощью VBA Аксеса.
После использовалось имя .doc-файла с текстом договора и предварительно вставленных закладок.
Затем в каждую закладку (в свойство .text я засылал соответствующие данные, ну, те же id, name, address).
После этого большой Вордовский многостраничный документ сохранялся с необходимым содержимым и распечатывался.

Подскажите, как сделать нечто подобное в офисе2007 ?

Попробуйте не "впихивать" данные в документ, а затянуть их. Другими словами создаете источник данных, разрабатываете нужный документ для слияния и все. В результате можно получить и один документ, и целый набор с разными данными. Да и проще это - никакого кода VBA не надо.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как из Access2007 передать данные в Word2007 для их вставки в документ
    #38600037
amethyst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста, а как именно "затягивать" данные в документ? У меня та же проблема - вставить значения полей из Access 2007 в Word 2007. Пробовала способы с закладками, описанные здесь на форуме, но ни один из них не работает. Я так понимаю, что этот способ не подходят для Access 2007. Мне необходимо вставить значения конкретных полей формы в документ. Я пробовала делать это через поле Database в Word. При этом в источнике данных указывается БД Access. Затем предлагается отобрать записи из таблиц:

При этом ничего не происходит. Если вместо [Формы]![Люди]![Фамилия] вставить конкретную фамилию, напр. "Иванов", то все будет работать. Подскажите пожалуйста, что я неправильно делаю? И как вместо всей записи вставить только конкретные поля? При попытке удалить из вставленной записи об Иванове ненужные поля возникает ошибка "Это поле используется в основном документе, но отсутствует в источнике данных. Удалите это поле из основного документа или замените полем из источника данных". Заранее спасибо!
...
Рейтинг: 0 / 0
Как из Access2007 передать данные в Word2007 для их вставки в документ
    #38600041
amethyst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения, вторая часть вопроса, как вставить конкретные поля вместо все записи, снимается )) Остается только вопрос, как указать ссылку на конкретное поле формы
...
Рейтинг: 0 / 0
Как из Access2007 передать данные в Word2007 для их вставки в документ
    #38769734
AlexLad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
amethyst, как же Вам удалось решить вопрос с ненужными полями
...
Рейтинг: 0 / 0
Как из Access2007 передать данные в Word2007 для их вставки в документ
    #38769769
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
amethystЯ так понимаю, что этот способ не подходят для Access 2007

Я спокойно решал вопрос через закладки в 2007.
ТОлько один момент у меня остался - данные в разных шаблонах ворда могут повторяться, например: № договора, может быть в шапке и потом гденибудь в теле шаблона.
Создать 2 закладки на номер договора, некатит, т.к. шаблоны будут создаваться не мной и может возникать разная вариация по повторам полей. Не делать же по несколько копий закладок.
Так все пока и осталось
Вопрос не решил, но сильно не рыл в ворде(может там можно закладки в поле скопировать), отпала необходимость в конкретном случае.
Пробовал маил мегре из ворда, но так и не победил. то нормально возьмет данные то пустой шаблон.
Было ограничено время, проблема "решилась" сама собой.
Но хотелось бы услышать другие мнения.
...
Рейтинг: 0 / 0
Как из Access2007 передать данные в Word2007 для их вставки в документ
    #38770042
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

посмотрите пример
--может быть любое количество одинаковых меток
--метки может не быть
--могут быть лишние
http://www.sql.ru/forum/actualfile.aspx?id=16674676
...
Рейтинг: 0 / 0
Как из Access2007 передать данные в Word2007 для их вставки в документ
    #38770044
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игортан,

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

Спасибо!
Скачиваю, буду посмотреть!
...
Рейтинг: 0 / 0
Как из Access2007 передать данные в Word2007 для их вставки в документ
    #38774075
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКА,

Ух, класное решение!

Спасибо от души.
Теперь даже проще делать шаблоны будет(закладки не видны по умолчанию) и человек далекий от всего этого тоже сможет сделать шаблон сам.
Прям насроение поднялось)))
Почему здесь рейтинга нет... поставил бы +10
...
Рейтинг: 0 / 0
Как из Access2007 передать данные в Word2007 для их вставки в документ
    #38774992
ИВП.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тоже посмотрел базу, но как осуществляется связь Word и Access не понял ((((
...
Рейтинг: 0 / 0
Как из Access2007 передать данные в Word2007 для их вставки в документ
    #38775204
Игортан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИВП.,

Я в подробности не вникал пока, оставил до реальной переделки своего экспорта, чуть позже.
Меня обрадовало
1. Теги вставлешь в ворд - они заметны и однозначны(при названии правильном)
2. Множественный экспорт одного и того же поля данных.
3. Работа напрямую из акса - не так как маил мегре.
Сделал запрос с данными для экспорта, обозвал теги, как и поля в запросе, и циклом пробежал по полям запроса и циклом вставил в ворд. Клас.

Подключение к ворду стандартное, через апликейшн, на основе шаблона.
А после выделяются участки(Теги) и меняются на данные из запроса.
Там еще форматирование выбранного участка, но мне не нужно пока.
Правда сделано через массивы. Я попробую в цикле, как писал выше.
...
Рейтинг: 0 / 0
Как из Access2007 передать данные в Word2007 для их вставки в документ
    #38775375
ИВП.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Я не увидел кнопку внизу и не посмотрел в VBA ))))))))))))))
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как из Access2007 передать данные в Word2007 для их вставки в документ
    #39865296
Nikolay135
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игортан,

Игортан,

Есть тут кто живой в этой теме.

Прошу помощи с примером из protokol10

Не понимаю сам код. Только недавно нашел его.

Поставил в свою базу. Разметил все поля, подписи под таблице.

Также я не понимаю назначение Form копия Данные_лица
Я так понимаю, что она имеет функциональное назначение, но не понимаю принципа действия и строение.

Я полагаю моя проблема почему программа НЕ выполняется из-за отсутствия Form копия ГЛ-Дов-РЕ, а также, вероятно, в том, что я не могу понять, что и как мне изменить в данном участке кода:
S1 = Me.[ФИО]
S1 = S1 & "_D=" & Me.[Дата_]
S1 = Replace(S1 & "_W=" & Me.[Время_], ":", "-")
S1 = S1 & "_R=" & Me.[Рейс_]
Debug.Print S1
objWord.ActiveDocument.SaveAs CurrentProject.Path & "\WORD\" & S1 & ".doC"


Как вариант, может ли проблема быть заключена в дефисах в наименованиях надписей и полей, а также самой таблицы.
Либо же в формате, так пример в ".mdb", а моя БД в ".accdb".

Я раньше в среде Apache&PHP&MySQL&CMS (wordpress, joomla, drupal) работал, и более менее знаком с программирование, однако, это было уже лет 6 назад и многое по-выветривалось основательно так. Сейчас я работаю юристом и мне необходимо из БД MS Access выгружать данные в word. Код, что показан в примере, а также само действие и выдаваемый программой результат, очень изящны и мне понравились. Но приспособить и интегрировать его не успеваю. Также я не до конца понимаю среду Access и VBA.

Если это имеет значение, сам код, я добавлял через "Просмотреть код" во вкладке "Конструктор" при редактировании формы в режиме "Конструктора".

Прошу Вашей подсказки, это может очень помочь, если Вы укажите на то, в чем моя ошибка.

Заранее благодарю!
...
Рейтинг: 0 / 0
Как из Access2007 передать данные в Word2007 для их вставки в документ
    #39865379
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay135Если это имеет значение, сам код, я добавлял через "Просмотреть код" во вкладке "Конструктор" при редактировании формы в режиме "Конструктора".

строка On Error Resume Next мешает вам увидеть ошибки да и код не привязан к вашей кнопке(у кнопки другое имя, чем в коде)
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как из Access2007 передать данные в Word2007 для их вставки в документ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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