С Новым годом! Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/47: Рейтинг темы: голосов - 47, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 9
1

Слияние Word и Access

10.02.2017, 13:27. Показов 8634. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Прошу помочь - выполнить слияние данных таблицы и готового шаблона ворд как рассылка. Кол-во документов сколько строк в таблице.
Просмотрел все темы - обучение - везде выборка данных из формы, но из таблицы должно же быть как то проще?
Что нужно дописать в процедуре чтобы данные перекинулись из таблицы в ворд?
пример в архиве
Вложения
Тип файла: rar проба.rar (48.0 Кб, 38 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.02.2017, 13:27
Ответы с готовыми решениями:

Слияние Access и Word
Добрый день. Есть форма в access "оформление заказа". Она построена на основе таблицы....

Слияние Access c word
День добрый! Столкнулся с такой проблемой. Не могу запрос "Выписка свидетельства" выполнить...

Слияние Word c базой Access
Пытюсь слить в документ WORD данные из запроса ACCESS. Подключаюсь через ODBC, в результате выдает...

Слияние с WORD базы данных ACCESS (изменение вида передачи данных)
Уважаемые знатоки! В VBA новичок, прошу помощи, очень надо.

22
Модератор
Эксперт MS Access
12106 / 4966 / 791
Регистрация: 07.08.2010
Сообщений: 14,588
Записей в блоге: 4
10.02.2017, 20:58 2
слияние я не применяю, особенно при длинных значениях полей
вряд ли договора печатают пачкой --обычно по выбору(хотя и зациклить не проблема)


---
программа сделана на принципе замены некой метки типа (дата расчета) на значение поля из таблицы
одинаковых меток в шаблоне может быть любое количество(от 0 до 99999) и нормально заменяются мемо-поля
-----
распаковать с сохранением каталогов
Вложения
Тип файла: zip v170210proba.zip (170.8 Кб, 77 просмотров)
1
10916 / 5608 / 1425
Регистрация: 05.10.2016
Сообщений: 15,852
10.02.2017, 21:07 3
6 с гаком часов молчания ...
Не любят у нас задачки типа "Сделайте всё за меня пожалуйста!"

Решил уже вам написать:
А сами начать (ну хотя бы) не желаете попробовать?
Неужели не интересно?

Вот пара ссылок в помощь:
MS Word - Экспорт сложных отчетов по сохранённым шаблонам
MS Word - Пример экспорта списочных данных
А если воспользоваться поисковыми системами - то примеров немало и тут и снаружи ^
access экспорт word - От Yandex

Успехов!

Добавлено через 2 минуты
Цитата Сообщение от shanemac51 Посмотреть сообщение
программа сделана на принципе замены некой метки типа
Галь - Привет!
То же - смотрел ... смотрел... - решил отписать.
Ты меня на 3 минуты опередила (пока я ссылы оформлял).... - так бы и не писал бы.
1
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 9
12.02.2017, 11:00  [ТС] 4
Спасибо.
Ссылки просто отличные и помогут в дальнейшем.
Ни разу данные страницы не попадались, хотя и перевалил в яндексе за 20 страницу (регион наверное не тот).
В примере таблица является уже конечной и в нее данные добавляются в зависимости от выбранных актов уже раннее.
Может быть одна или 500 строк в таблице в зависимости от того что было отобрано и сформировано ранее.
актов может быть примерно до 800 одновременно.
Технически - можно не мучиться с программированием а воспользоваться стандартной
функцией слияния в аксес через основное меню, решив вопрос открытия таблицы с отобранными данными через стандартные макросы поставляемые с аксес.
Весь вопрос с этой кнопкой возник из-за непонимания как настроить вывод в ворд чтобы не искать через проводник путь к шаблону при использование стандартных функций. Очень утомляет, а через 3-4 дня и забывается.
И конечно это намного проще и эстетически приятнее).

- "вряд ли договора печатают пачкой --обычно по выбору(хотя и зациклить не проблема)"
вот как раз с зацикливанием и проблема. - не понимаю как. При использование примеров аксес уходит в несознанку, либо масса ошибок.
примером пользовался - http:// news.claw.ru/Office/Access_2002/Glava%2015/Index11. htm
но похоже в коде много ошибок
Есть ли возможность дать пример именно для одной этой таблицы? Без промежуточных форм и т.д.?
Нажали на кнопку в форме, открылся ворд с кучей актов для просмотра и редактирования по таблице "АСР для печати1"?
0
Модератор
Эксперт MS Access
12106 / 4966 / 791
Регистрация: 07.08.2010
Сообщений: 14,588
Записей в блоге: 4
12.02.2017, 13:20 5
Цитата Сообщение от Ssp15 Посмотреть сообщение
Есть ли возможность дать пример именно для одной этой таблицы? Без промежуточных форм и т.д.?
Нажали на кнопку в форме, открылся ворд с кучей актов для просмотра и редактирования по таблице "АСР для печати1"?
не совсем вас понимаю
--я сделала ленточную форму
--в нее надо дописать фильтр по основным полям
--при клике на неком полк(код в вашем случае) --печать конкретного договора

об актах и как они влияют на бланк --речи не было
видимо есть необходимость распечатать все акты по некому договору

да и ваши обозначения типа 1ша,2ша,,,,,,,,,999ша ясности не добавили
таблицу в шаблоне тоже можно заполнить(в вашем шаблоне я не видела таблицы)
---
видимо и таблиц у вас явно недостаточно, как минимум просматриваются
--справочник КЛИЕНТЫ
--справочник ДОГОВОРА ПО КЛИЕНТАМ
--справочник ТИПИЧНЫХ УСЛУГ
--таблица АКТЫ ПО ДОГОВОРУ
--таблица УСЛУГИ ПО АКТУ

в ексель большинство из них реализуются через ВПР
в аксесс подобное не пройдет, аксесс --программа, любящая предварительно заполненные справочники
0
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 9
12.02.2017, 14:24  [ТС] 6
Здравствуйте.

"не совсем вас понимаю
--я сделала ленточную форму - не надо формы
--в нее надо дописать фильтр по основным полям - таблица составлена по отфильрованным данным.
--при клике на неком полк(код в вашем случае) --печать конкретного договора" - отправить все записи в ворд для дальнейшего редактирования (подгонка под страницу).

Эта таблица есть конечные и отобранные сформированные данные (она уже сформирована по алгоритмам и является данными которые нужно вывести на печать).
Я рассматривал вариант с составлением ленточной формы как у Вас, и экспортом данных одной записи в ворд по выделению из формы. Но это избыточно и не нужно.
Никаких фильтров не надо. Надо всю эту таблицу (все записи таблицы) отправить в ворд.
Надо эту таблицу слить с ворд, желательно автоматически.
(тандартное слияние выбором из меню аксес раздражает длительностью процедуры и описывал выше).
Поля этой таблицы соответствуют полям шаблона ворд.
Я предполагю что алгоритм должен быть таким.
1. Нажатие на кнопку
2. Запуск приложения ворд и загрузка шаблона
3. Открытие таблицы "АСР для печати1;
3. Цикл слияния всех записей таблицы в соответствующие поля ворд шаблона.
4. Сколько строк в таблице столько и документов. Файд должен быть один для удобства

Я полагаю что мне нужна функция ActiveDocument.MailMerge но не знаю как сделать запись открыть таблицу и перенести из нее все данные в ворд и после закрыть эту таблицу чтобы все это происходило в фоне.
"видимо и таблиц у вас явно недостаточно, как минимум просматриваются"
Таблица "АСР для печати1" - сборная таблица заполняемая запросами из таблиц (контакты, фирмы, проекты, объекты, сертификаты, приложения, нормы и правила, виды работ, номера актов и запросами из других актов).
на выходе - куча документов в одном файле. как в примере на акт входного контроля
Вложения
Тип файла: rar акт входного контроля.rar (146.1 Кб, 27 просмотров)
0
Модератор
Эксперт MS Access
12106 / 4966 / 791
Регистрация: 07.08.2010
Сообщений: 14,588
Записей в блоге: 4
12.02.2017, 14:32 7
Цитата Сообщение от Ssp15 Посмотреть сообщение
куча документов в одном файле
в сколько это листов получится --ворд не очень любит длинные таблицы да и вопрос с табличной частью остался за кадром

по вашему первому примеру --это не определить
второй еще не смотрела
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
12.02.2017, 14:41 8
Цитата Сообщение от Ssp15 Посмотреть сообщение
Что нужно дописать в процедуре чтобы данные перекинулись из таблицы в ворд?
пример в архиве
ничего не нужно, осталось ворде на закладке Расссылки настроить источник данных и выполнить слияние.
Причем достаточно одного раза, если перемещать их не будете.

Потом достаточно поменять данные в Таблице и при сличнии получите новые документы.

P/S/ Тут нужен форум MS Word
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
12.02.2017, 14:45 9
вот ваши файлы из примера
Миниатюры
Слияние Word и Access  
0
Модератор
Эксперт MS Access
12106 / 4966 / 791
Регистрация: 07.08.2010
Сообщений: 14,588
Записей в блоге: 4
12.02.2017, 14:48 10
Цитата Сообщение от YuryK Посмотреть сообщение
Тут нужен форум MS Word
табличной части в примере нет --можно и слиянием в ворде
но искать нужный акт в простыне из 800 актов --не подарочек(уж не говорю о выборке по какому-то условию)
0
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 9
12.02.2017, 14:58  [ТС] 11
тогда остается вариант слияния данных и работ средствами ворд как с рассылкой писем.
но вопрос как по нажатию кнопки перекинуть в ворд - остался.
повторюсь может быть - все примеры по слиянию с ворд рассматривают слияние данных выбранных из формы и отправкой в ворд. у меня получается очень сложная форма с кучей под запросов. на рисунке
Мне надо отправить данные в ворд из таблицы все записи
ША1 - условное обозначение прописанное в других таблицах, т.к. полное наименование очень длинное и различается лиш в деталях.
Миниатюры
Слияние Word и Access  
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
12.02.2017, 14:59 12
просто таблица называется '... для печати'. Было логично предположить, что в БД просто подготовили эту таблицу именно для печати стопкой, т.к. на БД одна ненормализованная плоская таблица вообще никак не тянет
0
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 9
12.02.2017, 15:05  [ТС] 13
как по кнопке перекинуть данные из таблицы в шаблон ворда?
не соображу. не хватает времени на эксперименты.
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
12.02.2017, 15:25 14
в существующий шаблон ничего перекидывать не нужно, он и так сделан для того, чтобы взять данные из таблицы.
В режиме рассылки (слияния)
0
Модератор
Эксперт MS Access
12106 / 4966 / 791
Регистрация: 07.08.2010
Сообщений: 14,588
Записей в блоге: 4
12.02.2017, 16:15 15
Цитата Сообщение от Ssp15 Посмотреть сообщение
как по кнопке перекинуть данные из таблицы в шаблон ворда?
и какой вариант вам более приемлен
--открываем ворд и через слияние получаем 700 страниц, при этом --если нужен поиск --обучаем пользователя писать запросы к базе аксесс
--работа из аксесс, поиск по некому перечню полей, пользователь может просмотреть, а то ли он выбрал(может и печать не потребуется), далее печать акта по клику на строке или всей выборки или всести столбик для галочки печати; от пользователя --не требуется изучения составления запросов

Добавлено через 9 минут
похоже, что таблица все-же есть --видимо спрятана в мемо-поле
пункт 3.При выполнении работ применены .....метка м-19аср


в конце вроде есть таблица сертификатов(27аср)
----
0
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 9
12.02.2017, 17:46  [ТС] 16
Вариант из аксес.

Взял пример обработал, виснет на строке For i = 0 To rst.Fields.Count - 1
Можно ли этот пример заставить работать?

Visual Basic
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
Private Sub Кнопка0_Click()
Dim wda As Word.Application
Dim rstNew As Recordset
Dim db As Database
Dim i As Integer
Set db = CurrentDb()
Set rstNew = db.OpenRecordset("АСР для печати1")
Do While Not rstNew.EOF
rstNew.AddNew
For i = 0 To rst.Fields.Count - 1
rstNew.Fields(i) = rst.Fields(i)
Next i
rstNew.Update
rst.MoveNext
Loop
' создаем объект Application Word
On Error GoTo err_StartWord
Set wda = GetObject(, "Word.Application")
wda.Visible = True
' открываем документ на основе шаблона - он добавляется в семейство Documents
wda.Documents.Add (CurrentProject.Path & "\формы\АСР для базы1.dotx")
' выполняем слияние основного документа и данных из источника
With wda.ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.Execute
End With
' печатаем приглашения wda.ActiveDocument.Printout
Do While wda.BackgroundPrintingStatus <> 0
DoEvents
Loop
' сохраняем получившийся документ
wda.ActiveDocument.SaveAs "C:\Doc\MailMergeDoc.doc"
' закрываем окно с новым документом
wda.ActiveWindow.Close False
' закрываем, не сохраняя, окно с первоначальным документом
wda.Documents(1).Close False
' если нет больше открытых документов, то закрываем Word
If wda.Documents.Count = 0 Then wda.Quit
' End If
Set wda = Nothing
Set rst = Nothing
Set rstNew = Nothing
Exit Sub
err_StartWord:
If Err = 429 Then ' Word не запущен
Set wdd = CreateObject("Word.Application")
Resume Next
Else
MsgBox Err.Description & " " & Err.Number, vblnformation
Exit Sub
End If
End Sub
Добавлено через 2 минуты
YuryK, Так и делал.
Это понимаю и настроил шаблон по этой схеме.
вопрос в том чтобы из формы аксес при нажатии кнопки открылся этот шаблон с заполненными данными из этой таблицы.
0
459 / 246 / 15
Регистрация: 29.10.2014
Сообщений: 1,079
12.02.2017, 17:49 17
Ssp15, в последнем коде на перв взгляд-где определение перемен rst?
0
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 9
12.02.2017, 17:52  [ТС] 18
она не нужна.
сейчас удалю
0
Модератор
Эксперт MS Access
12106 / 4966 / 791
Регистрация: 07.08.2010
Сообщений: 14,588
Записей в блоге: 4
12.02.2017, 18:40 19
путаница в rst/rstnew --непонятно, что требуется

возможно
--форма настроена на основную таблицу АСР
--чем-то выбранные/помеченные выбираются в таблицу для печати [АСР для печати1]

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Dim wda As Word.Application
Dim rstNew As dao.Recordset
Dim rst As dao.Recordset
Dim db As Database
Dim i As Integer, s1
Set db = CurrentDb()
''очистка рабочей таблицы
s1 = "delete * from [АСР для печати1] "
db.Execute s1
Set rst = db.OpenRecordset("select * from [АСР] where код=" & Me.Код)
 
Set rstNew = db.OpenRecordset("select * from [АСР для печати1]")
 
Do While Not rst.EOF
rstNew.AddNew
For i = 0 To rst.Fields.Count - 1
Debug.Print i;
rstNew.Fields(i) = rst.Fields(i)
Next i
rstNew.Update
rst.MoveNext
Loop
0
0 / 0 / 0
Регистрация: 10.02.2017
Сообщений: 9
12.02.2017, 19:00  [ТС] 20
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Кнопка0_Click()
Dim wda As Word.Application
Dim rstNew As Recordset
Dim db As Database  ' [COLOR="Red"]нужно ли этот массив создавать?[/COLOR]
Set db = CurrentDb()
Set rstNew = db.OpenRecordset("АСР для печати1")
' создаем объект Application Word
Set wda = CreateObject("Word.Application")
With wda
wda.Visible = True
' открываем документ на основе шаблона - он добавляется в семейство Documents [COLOR="Red"] нужно ли вообще создавать это семейство[/COLOR]
wda.Documents.Add (CurrentProject.Path & "\формы\АСР для базы2.dotx")
 
' выполняем слияние основного документа и данных из источника
With wda.ActiveDocument.MailMerge
End With
 
End Sub
Подскажите что осталось дописать чтобы ворд остался открытым и данные вставлены
ругается на End With - ошибка компилирования
0
12.02.2017, 19:00
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.02.2017, 19:00
Помогаю со студенческими работами здесь

Слияние с Word
Есть такая проблемма, Аксессе сделана собственная функция при слиянии Word ругаеться что не...

Слияние с word
Добрый день. Прошу помощи. Есть запрос, который собирает данные для документа из разных таблиц....

??? программное слияние с Word ???
access 2000, задача: получить слияние c Word и заполнить шаблон данными из этой же базы. в...

Слияние между SQL-запросом и таблицей в Word-e
У меня есть в Access-e запрос (таблица) имя | цена | дата ааа | 50 | 01.02.2017 bbb | 100 |...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­­­­­­­­­­­­­­­­­­­­­­­х­р­о­н­­н­­­ы­­й счётчик с управляющим сигналом зад
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru