Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/43: Рейтинг темы: голосов - 43, средняя оценка - 4.88
2 / 2 / 0
Регистрация: 11.01.2013
Сообщений: 260

Word и mergefield

14.03.2016, 20:52. Показов 9337. Ответов 50
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В базе данных Access есть таблица, в одном из полей которой хранится имя поля шаблона word, в которое должны выводиться данные. Как запрограммировать подстановку данных в это поле?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.03.2016, 20:52
Ответы с готовыми решениями:

Word. BDE. Вставка при открытии, mergefield
Форумчане! Не могу уже как полгода понять одну очень важную тему. В документ Word выгружаются из БД данные, БД на BDE. Не могу вообще...

Настройка MERGEFIELD
Предысторию опускаю.) Не получается получить результат для такого вот синтаксиса кода поля: { MERGEFIELD "Название_поля_даты"...

Есть ли ограничение на количество полей MergeField
Добрый день! Добавляю поля типа MergeField и начиная с 66 поля, поле №65 и 66, и последующие склеиваются между собой. Получается больше 65...

50
Модератор
Эксперт MS Access
 Аватар для shanemac51
12511 / 5085 / 814
Регистрация: 07.08.2010
Сообщений: 14,959
Записей в блоге: 4
19.10.2018, 09:46
Студворк — интернет-сервис помощи студентам
смотрите
Вложения
Тип файла: zip Клиент181019.zip (282.1 Кб, 44 просмотров)
0
0 / 0 / 0
Регистрация: 20.09.2018
Сообщений: 7
22.10.2018, 09:47
Телефон в Word не передается. Не понял как прописанный код соединить с шаблоном.
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12511 / 5085 / 814
Регистрация: 07.08.2010
Сообщений: 14,959
Записей в блоге: 4
22.10.2018, 09:48
проверьте имя замены в шаблоне

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
 mrepl "ДОГОВОР1", договор
            mrepl "дата1", Дата_подписи
            mrepl "владелец", Forms![квартиры]!НаименованиеПолн
            mrepl "адрес", Forms![квартиры]!Адрес
 
''' НЕТ СТРОКИ ЗАМЕНЫ
            mrepl "ТЕЛЕФОН", Me.Телефоны
            mrepl "Объект", Объект
            mrepl "дата2", Действует_с
            mrepl "дата3", Действует_до
            mrepl "зарегестрирован", Forms![квартиры]!зарегестрирован
            mrepl "документ", Forms![квартиры]!Документ
            mrepl "Серия", Forms![квартиры]!РеквизитыДокумента
0
0 / 0 / 0
Регистрация: 20.09.2018
Сообщений: 7
22.10.2018, 11:23
Пробовал и такой вариант со строкой замены, "Me.Телефоны" видимо старая ссылка из формы квартиры в VBA осталась, но передача данных согласно отбора телефонов из формы Доверенные лица не происходит.

Добавлено через 10 минут
Попробовал
mrepl "ТЕЛЕФОН", Forms![квартиры]![Доверенные лица].Form![сотовый телефон]
Все заработало Спасибо.

Добавлено через 37 минут
рано радовался
(DL) выводит все значения из таблицы "Доверенные лица", а
mrepl "ТЕЛЕФОН", Forms![квартиры]![Доверенные лица].Form![сотовый телефон] - выводит только первое значение,
Нужен "телефон" только статус= "собственник" соответствующего договора
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12511 / 5085 / 814
Регистрация: 07.08.2010
Сообщений: 14,959
Записей в блоге: 4
22.10.2018, 13:29
Цитата Сообщение от Aleksgal Посмотреть сообщение
Нужен "телефон" только статус= "собственник" соответствующего договора
у большинства ваших квартир нет лица со статусом собственник
0
0 / 0 / 0
Регистрация: 20.09.2018
Сообщений: 7
22.10.2018, 14:00
позже добавятся, будет у каждого
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
23.10.2018, 01:33
Кликните здесь для просмотра всего текста
Цитата Сообщение от shanemac51 Посмотреть сообщение
нет лица со статусом собственник
Цитата Сообщение от Aleksgal Посмотреть сообщение
будет у каждого
А статистика говорит, что 15% квартир не приватизированы и принадлежат муниципалитетам.
Мало того, прошла волна деприватизации, пока только первая. В следующем году налог поднимут до процента с рыночной стоимости и будет 25% неприватизированных квартир
0
0 / 0 / 0
Регистрация: 20.09.2018
Сообщений: 7
23.10.2018, 16:52
если не собственник то и договор заключен не будет
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
24.10.2018, 02:17
Цитата Сообщение от Aleksgal Посмотреть сообщение
если не собственник то и договор заключен не будет
Ха-ха-ха!
0
0 / 0 / 0
Регистрация: 20.09.2018
Сообщений: 7
24.10.2018, 16:04
Лучше бы подсказали как сделать ("телефон" только статус= "собственник" соответствующего договора)
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,383
25.10.2018, 01:26
Я как нибудь сам решу, что лучше, спасибо.
0
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
17.05.2020, 21:42
Здравствуйте! Решил написать в эту тему, поскольку использую решение shanemac51 для вставки в шаблон Wordа
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
53
54
55
56
57
58
59
60
61
62
63
Function funOutputWord(strPathDot As String, strPathWord As String) As Boolean
On Error GoTo Err_
Dim DlgUser As Integer
    If Dir(strPathWord) <> "" Then
        DlgUser = MsgBox("Документ с таким именем ранее уже был создан. Заменить его?", vbYesNo, "admin")
        If DlgUser = vbNo Then
            Set app = CreateObject("Word.Application")
            With app
                .Visible = True
                .Documents.Open strPathWord
            End With
            Set app = Nothing
        Else
            GoTo nn
        End If
    Else
nn:
        Set app = CreateObject("Word.Application")
        app.Visible = True
        app.Documents.Add strPathDot
        
        With app.ActiveDocument
        .SaveAs strPathWord
            mrepl "Прізвище", SurnameP
            mrepl "Ім'я", NameP
            mrepl "По-Батькові", MiddleNameP
            mrepl "РікНародження", DateBirth
            'mrepl "ОбластьПрописки", qry_Address_Residence.RegionResidence
            mrepl "ОбластьПрописки", Forms!form_Patients!form_Address_Residence.Form!RegionResidence
            mrepl "РайонПрописки", Forms!form_Patients!form_Address_Residence.Form!DistrictResidence
            mrepl "м.селоПрописки", Forms!form_Patients!form_Address_Residence.Form!CityDesignationResidence
            mrepl "МістоПрописки", Forms!form_Patients!form_Address_Residence.Form!СityResidence
            mrepl "ВулицяПрописки", Forms!form_Patients!form_Address_Residence.Form!StreetResidence
            mrepl "НомерБудинкуПрописки", Forms!form_Patients!form_Address_Residence.Form!HouseNumberResidence
        If Forms!form_Patients!form_Address_Residence.Form!HouseNumber2Residence <> "" Then
            mrepl "КосаЧерта", "/"
            mrepl "НомерБудинку2Прописки", Forms!form_Patients!form_Address_Residence.Form!HouseNumber2Residence
            mrepl "ІндексБудинкуПрописки", ", кв. "
        Else
            If Forms!form_Patients!form_Address_Residence.Form!StreetIndexResidence <> "" Then
            mrepl "КосаЧерта", " "
            mrepl "НомерБудинку2Прописки", " "
            mrepl "ІндексБудинкуПрописки", Forms!form_Patients!form_Address_Residence.Form!StreetIndexResidence + ", кв. "
        Else
            mrepl "КосаЧерта", ","
            mrepl "НомерБудинку2Прописки", " "
            mrepl "ІндексБудинкуПрописки", "кв. "
        End If
        End If
            mrepl "НомерКвартириПрописки", Forms!form_Patients!form_Address_Residence.Form!ApartmentNumberResidence
            
        End With
        Set app = Nothing
    End If
    funOutputWord = True
Exit_:
    Exit Function
Err_:
    funOutputWord = False
    Err.Clear
    app.Quit
    Resume Exit_
End Function
Но столкнулся с проблемой: вставляется всё в таком виде
Адреса реєстрації за паспортом: 10 обл., 9, 1 1, 15761 5 А, кв. 177.
А нужно то вот так: Київська обл., Солом'янський район, м. Київ, Ентузиастів Вулиця 5 А, кв. 177. Как это можно исправить? И можно ли использовать запрос, а не из полей формы тащить данные?
P.S. Брал код вот тут
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12511 / 5085 / 814
Регистрация: 07.08.2010
Сообщений: 14,959
Записей в блоге: 4
17.05.2020, 22:35
Цитата Сообщение от matva Посмотреть сообщение
Но столкнулся с проблемой: вставляется всё в таком виде
Адреса реєстрації за паспортом: 10 обл., 9, 1 1, 15761 5 А, кв. 177.
это влияние подстановки

Visual Basic
1
2
3
mrepl "ОбластьПрописки", Forms!form_Patients!form_Address_Residence.Form!RegionResidence.column(1)
mrepl "РайонПрописки", Forms!form_Patients!form_Address_Residence.Form!DistrictResidence.column(1)
mrepl "м.селоПрописки", Forms!form_Patients!form_Address_Residence.Form!CityDesignationResidence.column(1)
1
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
17.05.2020, 23:51
shanemac51, О! Спасибо! Забыл, что так нужно с этим бороться.
Однако выдает ошибку:
0
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
17.05.2020, 23:56
Цитата Сообщение от shanemac51 Посмотреть сообщение
это влияние подстановки
И подстановок нет у меня (
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12511 / 5085 / 814
Регистрация: 07.08.2010
Сообщений: 14,959
Записей в блоге: 4
18.05.2020, 06:33
Цитата Сообщение от matva Посмотреть сообщение
И подстановок нет у меня (
они видимо все-же есть, в форме
иначе: выложите ПРИМЕР базы

пример же применения
Миниатюры
Word и mergefield  
0
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
18.05.2020, 19:28
Цитата Сообщение от shanemac51 Посмотреть сообщение
они видимо все-же есть, в форме
иначе: выложите ПРИМЕР базы
Да, в форме они есть (куда же без них то). Выкладываю вариант БД. Фамилия: Первак. Там все необходимые данные введены. На Форме Patient кнопка (значок Word) по которому и выводятся данные (как у Вас) в Папку Word.
Вложение 1147604
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12511 / 5085 / 814
Регистрация: 07.08.2010
Сообщений: 14,959
Записей в блоге: 4
18.05.2020, 20:18
если меняете имена контролов(добавили тхт), то меняйте и код
не уверена, что все корректно исправила
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
'''''''''''''''''''''дляпроверки типов и именконтролов''''''''''''''''''
            Dim cnt As Control
            For Each cnt In Me.form_Address_Residence.Form.Controls
            Debug.Print cnt.ControlType, cnt.Name
            Next cnt
            ''109 поле
            ''111 подстановка
            '''''''''''''''''''''''''''''fin prov'''''''''''''''''''''''''''''''''''
            mrepl "ОбластьПрописки", Me!form_Address_Residence.Form!txtRegionResidence.Column(1)
                       
            
            
            mrepl "РайонПрописки", Me.form_Address_Residence.Form!DistrictResidence
            mrepl "м.селоПрописки", Me.form_Address_Residence.Form!txtCityDesignationResidence.Column(1)
            mrepl "МістоПрописки", Me.form_Address_Residence.Form!txtСityResidence.Column(1)
            mrepl "ВулицяПрописки", Me.form_Address_Residence.Form!txtStreetResidence.Column(1)
            mrepl "НомерБудинкуПрописки", Me.form_Address_Residence.Form!txtHouseNumberResidence ''.Column(1)
        If Me.form_Address_Residence.Form!HouseNumber2Residence <> "" Then
Миниатюры
Word и mergefield  
Вложения
Тип файла: zip MyPatients V3.0.01_mm.zip (1.30 Мб, 26 просмотров)
1
385 / 86 / 16
Регистрация: 08.12.2012
Сообщений: 645
18.05.2020, 20:50
shanemac51, Спасибо! Всё правильно. Задам еще такой вопрос по теме: А как сделать, чтобы в шаблоне не было пробелов если что-то мне не нужно выводить при проверке? Пробовал (как Вы видели) , например так делать, но если ставлю "" - то в шаблоне остается то, что не должно. Например мне косая черта нужна не всегда. И когда она не нужна, то в шаблоне остается надпись КосаЧерта, а не пусто. Если ставлю " " (пробел), то всё нормально - пробел. Вот пришлось поизголяться и таки добился, что один только пробел выводится. Но это же не нормально (
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  If Me.form_Address_Residence.Form!HouseNumber2Residence <> "" Then
            mrepl "КосаЧерта", "/"
            mrepl "НомерБудинку2Прописки", Me.form_Address_Residence.Form!txtHouseNumber2Residence
            mrepl "ІндексБудинкуПрописки", ", кв. "
        Else
        If Me.form_Address_Residence.Form!StreetIndexResidence <> "" Then
            mrepl "КосаЧерта", " "
            mrepl "НомерБудинку2Прописки", " "
            mrepl "ІндексБудинкуПрописки", Me.form_Address_Residence.Form!StreetIndexResidence.Column(1) + ", кв. "
        Else
            mrepl "КосаЧерта", ","
            mrepl "НомерБудинку2Прописки", " "
            mrepl "ІндексБудинкуПрописки", "кв. "
        End If
        End If
P.S. Еще раз - Спасибо!
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12511 / 5085 / 814
Регистрация: 07.08.2010
Сообщений: 14,959
Записей в блоге: 4
18.05.2020, 21:10
предположим, надо вывести косую для корпуса
mrepl "номердома", дом & ("/"+корпус) --- здесь именно + в скобке

если дом=12 корпус 3 выведется 12/3
если дом=10 корпуса нет выведется 10

mrepl допускает и вложенные замены, небольшой комментарий есть в блоге на примере фамилии
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.05.2020, 21:10

Word.Application. Взаимодействие с word. Добавить общие шаблоны *.dot в папку appdata и в word
Добрый день! Подскажите, пожалуйста, возможно ли средствами делфи активировать кнопку &quot;Добавить&quot; (ниже поясняющие скрины) и...

Проблема с $word=new COM("word.application") or die("Couldn ''t start Word!");
Наблюдаю такую штуку - создаю объект Word $word=new COM(&quot;word.application&quot;) or die(&quot;Couldn ''t start Word!&quot;);выполяню всякие там приблуды...

Макрос Word 2016 замена шрифта рандомных символов на выбранный - MS Word
Есть обычный текст, только буквы и цифры Нужно, чтобы после обработки макроса выбирались случайные символы (примерно четверть от общего...

Работа метода Word.Selection.Find при поиске в документе Word
Дорого времени суток! никак не могу разобраться в механизме работы range.find Запускаю: ......................... ...

Нарушение форматирования документов word 2010 при открытии в word 2013
Здравия коллеги! Столкнулся с такой проблемой у человека W8+office2013 всё легальное, документы от офиса 2010 криво открываются, все!...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru