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

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

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

Подскажите, как сделать нечто подобное в офисе2007 ?
...
Рейтинг: 0 / 0
20.12.2012, 00:27
    #38086030
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из Access2007 передать данные в Word2007 для их вставки в документ
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
21.12.2012, 14:59
    #38088236
dbc
dbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из Access2007 передать данные в Word2007 для их вставки в документ
guest_rusimport,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Игортан,

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

Прошу помощи с примером из 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
23.09.2019, 08:10
    #39865379
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как из Access2007 передать данные в Word2007 для их вставки в документ
Nikolay135Если это имеет значение, сам код, я добавлял через "Просмотреть код" во вкладке "Конструктор" при редактировании формы в режиме "Конструктора".

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


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