Создание отчета access в word

Экспорт данных Access в документ Word

Access для Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Еще…Меньше

С помощью мастера экспорта в RTF-файл можно экспортировать данные из базы данных Access в документ Microsoft Word. В этой статье объясняется, как использовать мастер и как сохранить параметры экспорта в виде спецификации для дальнейшего использования.

В этой статье

  • Основы экспорта данных в Word

  • Экспорт данных в Word

  • Как Access экспортирует объекты в Word

  • Дополнительные сведения

Основы экспорта данных в Word

В Microsoft Word можно экспортировать таблицу, запрос, форму или отчет. При экспорте объекта с помощью мастера экспорта в RTF-файл Access создает копию его данных в файле Microsoft Word формата RTF. Отображаемые поля и записи таблиц, запросов и форм экспортируются в документ Word в виде таблицы. При экспорте данных отчета и их представления мастер пытается обеспечить как можно более точное соответствие документа Word отчету.

  • Начало операции.    Для экспорта данных из Access в Word необходимо открыть Access. В Word нет средства импорта данных из базы данных Access. Вы также можете сохранить базу данных или таблицу Access в виде документа Word с помощью команды Сохранить как в Access.

  • Объекты, поддерживающие экспорт.    Вы можете экспортировать таблицу, запрос, форму или отчет. Можно также экспортировать только записи, выбранные в определенном представлении. Макросы и модули экспортировать нельзя. При экспорте формы или таблицы с подчиненными формами или подтаблицами экспортируется только основная форма или таблица. Все подчиненные формы и подтаблицы следует экспортировать в Word отдельно. При экспорте отчета, напротив, все подчиненные формы и вложенные отчеты экспортируются вместе с главным отчетом.

  • Результат операции.    Мастер экспорта в RTF-файл всегда экспортирует форматированные данные. Это означает, что экспортируются только видимые в объекте или представлении поля и записи, а также параметры формата отображения. Столбцы и записи, скрытые из-за применения фильтра, не экспортируются. Макет отчета при экспорте также сохраняется.

  • Слияние с существующим документом.    При экспорте данных из Access в документ Word всегда создается новый файл Word. Если вы хотите вставить данные в существующий документ Word, необходимо сначала экспортировать данные из Access в новый документ Word, а затем скопировать их из нового документа и вставить в имеющийся. Можно также скопировать строки непосредственно из таблицы, запроса, формы или отчета Access и вставить их в документ.

Экспорт данных в Word

Процесс экспорта данных в документ Word включает следующие основные этапы:

  • Подготовка источников данных к экспорту. На этом этапе необходимо убедиться, что данные не содержат ошибок, а также решить, экспортировать все данные в исходной таблице или их часть.

  • Запуск мастера экспорта в RTF-файл.

  • Сохранение параметров в виде спецификации экспорта для последующего использования (необязательно).

В следующих разделах описано, как выполнить каждую из этих задач.

Подготовка к экспорту

  1. Откройте исходную базу данных Access.

  2. На панели навигации выберите объект с данными, которые вы хотите экспортировать.

    Экспортировать можно таблицу, запрос, форму или отчет.

  3. Просмотрите исходные данные, чтобы убедиться в отсутствии индикаторов ошибок (треугольников зеленого цвета) или значений ошибок, таких как #ЧИСЛО!.

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

  4. Если конечный документ Word существует и открыт, закройте его перед выполнением операции. Перед перезаписью файла мастер запрашивает подтверждение.

    Примечание: Добавить данные в существующий документ Word невозможно.

  5. Если вы хотите экспортировать только часть таблицы, запроса или формы, откройте нужный объект в базе данных Access и выделите записи.

Экспорт данных

  1. На вкладке «Внешние данные» в группе «Экспорт» нажмите кнопку Word.

  2. Откроется мастер Экспорт – Файл RTF.

    Выберите назначение и параметры экспорта в диалоговом окне "Экспорт – Файл RTF".

    Примечание: Команды Экспорт доступны только в том случае, если открыта база данных.

  3. В мастере Экспорт – Файл RTF укажите имя конечного файла.

  4. Мастер всегда экспортирует форматированные данные. Чтобы просмотреть документ Word после экспорта, установите флажок Открыть целевой файл после завершения операции экспорта.

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

    Примечание: Если записи не выделены, этот флажок недоступен (неактивен).

  6. Нажмите кнопку ОК.

  7. Если документ назначения существует, вам будет предложено нажать кнопку «Да», чтобы переписать файл. Нажмите кнопку «Нет», чтобы изменить имя конечного файла, а затем нажмите кнопку «ОК» еще раз.

Access экспортирует данные и откроет конечный документ в Word, если вы установили соответствующий флажок в мастере. Кроме того, на последней странице мастера будет отображено состояние операции.

Как Access экспортирует объекты в Word

В следующей таблице описано, как Access экспортирует разные объекты и значения в Word. Это поможет определить причину проблемы, если экспорт будет выполняться не так, как ожидается.

Элемент

Что нужно учитывать при экспорте

Имена полей

При экспорте таблиц, запросов и форм имена полей помещаются в первую строку таблицы в документе Word. В случае экспорта отчета расположение имен полей зависит от макета отчета.

Многозначные поля

Многозначное поле Access экспортируется в один столбец в Word. Значения разделяются запятыми (,).

Рисунки, объекты и вложения

Все графические элементы, такие как логотипы, данные в полях объектов OLE и вложения, не экспортируются.

Графы

Объекты Microsoft Graph не экспортируются.

Выражения

Выражения не экспортируются в документ Word. Экспортируются только их результаты.

Подчиненные формы и подтаблицы

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

Дополнительные сведения

  • Сведения о том, как сохранить сведения об экспорте в виде спецификации, которую можно использовать повторно, см. в статье Сохранение параметров операции импорта или экспорта в виде спецификации.

  • Дополнительные сведения о запуске спецификаций см. в статье Выполнение сохраненной операции импорта или экспорта.

  • Дополнительные сведения о запуске спецификаций в определенное время см. в статье Планирование импорта или экспорта.

  • Сведения о том, как изменить имя спецификации, удалить ее или обновить имена исходных файлов, см. в статье Задачи управления данными.

К началу страницы

Нужна дополнительная помощь?

Всем привет, сегодня мы поговорим о том, как можно выгрузить данные из Access в такие приложения как Word и Excel. Но не о стандартном способе, который есть в  Access (связь с Office), а о способе, который позволяет выгружать данные в заданный шаблон как в Word, так и в Excel.

Другими словами, это нужно тогда, когда создать отчет в Access по шаблону, который уже существует, например, в Word, невозможно или слишком трудоемко. Как Вы знаете, отчет в Access может выводиться просто коряво или, самый распространенный вариант, это когда много текста, который в отчете Access не так хорошо форматируется как в Word, а данных не так много, но отчет необходимо автоматизировать, например это какие-то договора, заявления и так далее.

Использование слияния из самого Word-а не очень удобно, поэтому сегодня я расскажу, как можно заполнять такие шаблоны напрямую из Access, путем нажатия на одну кнопку.

Кроме выгрузки в шаблон Word, иногда возникает и необходимость выгрузки в шаблон Excel, и этот способ мы тоже сегодня рассмотрим.

Содержание

  1. Экспорт данных из Access в шаблон Word
  2. Код VBA для выгрузки данных в шаблон Word
  3. Экспорт данных из Access в шаблон Excel
  4. Код VBA для выгрузки данных в шаблон Excel

Вся разработка делится на две части, это:

  • Настройка шаблона Word;
  • Настройка выгрузки данных в шаблон.

Суть настройки шаблона заключается в том, чтобы проставить необходимые поля в тех местах шаблона, где нужно выводить те или иные данные. Это делается с помощью полей формы.

Примечание! Я использую Microsoft Word 2003.

Открываем шаблон Word, для начала добавим необходимую панель инструментов, для этого нажимаем «Вид -> Панель инструментов» и ставим галочку «Формы». Теперь у Вас отобразилась панель инструментом «Формы». Все, что осталось сделать — это вставить в местах, в которых необходимо выводить данные, элементы «Текстовое поле», которые доступны на только что добавленной панели инструментов.

После добавления поля, у Вас появится серая область, которая свидетельствует о том, что поле добавлено. Теперь необходимо задать имя этого поля, для того чтобы потом из access вставлять в него значения (стандартное названия не очень удобное). Для этого щелкните правой кнопкой мыши по полю и нажмите «Свойства». В поле закладка напишите желаемое имя этого поля, я в примере назвал его MyTestPole.

Скриншот 1

Курс по SQL для начинающих

Создайте столько полей, сколько Вам нужно.

На этом настройка шаблона закончена, рекомендую сделать этот шаблон только для чтения, а то пользователь возьмет, сформирует документ и сохранит его, и шаблон тем самым потеряется, а если сделать его только для чтения, то у него такой возможности не будет, только сохранять через «Сохранить как».

Переходим к более интересной задачи, это к реализации самой выгрузки из Access в этот шаблон на VBA.

Примечание! Я использую Access в связке с MS SQL 2008, поэтому и данные буду брать от туда.

Код VBA для выгрузки данных в шаблон Word

Допустим, у Вас есть форма, сделайте на ней кнопку (я назвал ее testbutton) и в событие нажатие кнопки вставьте следующий код VBA:

   
   Private Sub testbutton_Click()
   
   'Объявляем переменные
   Dim FileDialog As FileDialog
   Dim rsd As ADODB.Recordset
   Dim strSQL As String
   Dim WordApOb As Object
   Dim WordOb As Object
   Dim path As String
   Set rsd = New ADODB.Recordset
   
   'запрос к базе данных для получения необходимых данных
   strSQL = "select * from dbo.table where KOD = " & Me.kod & ""
   rsd.open strSQL, CurrentProject.Connection
  
  'Выбираем шаблон
   Set FileDialog = Application.FileDialog(msoFileDialogOpen)
   
   'убираем множественный выбор, он нам не нужен
   FileDialog.AllowMultiSelect = False
  
  'очистим и установим фильтры
   FileDialog.Filters.Clear
   FileDialog.Filters.add "Word", "*.doc"
   
   'установим фильтр по умолчанию
   FileDialog.FilterIndex = 1
   
   'проверяем, что сделал user, если выбрал шаблон, то начинаем работу
   If FileDialog.Show = False Then
     'Если нет, то выходим
     Set dlgFile = Nothing
     Exit Sub
   End If
   
   'получаем путь к файлу
   path = Trim(FileDialog.SelectedItems(1))
   
   'Очистим переменную
   Set FileDialog = Nothing
   If path <> "" Then
   
   'Будем отслеживать ошибки
   On Error GoTo Err_testbutton_Click
   
   'Создаем объект Word
   Set WordOb = CreateObject("Word.document")
   
   'Задаем нашему документу значение из шаблона
   Set WordOb = GetObject(path)
   
   'Задаем значение объекту word.Application
   Set WordApOb = WordOb.Parent
   
   'делаем приложение word видимым
   WordApOb.Visible = True
   
   'ищем наше поле в шаблоне
   WordOb.Bookmarks("mytestpole").Select
   
   'задаем ему новое значение из нашего Recordset
   WordApOb.Selection.TypeText Text:=Nz(rsd.Fields("field").Value, " ")
   'и так далее по всем полям
   
   'в конце перейдем на начало нашего документа
   WordApOb.Selection.Goto wdGoToFirst
   'и активируем его
   WordApOb.Activate
   
   'Очистим переменные
   Set WordOb = Nothing
   Set WordApOb = Nothing
   
   Exit_testbutton_Click:
     Exit Sub
   
   Err_testbutton_Click:
     MsgBox Err.Description
     'в случае ошибки будем делать следующие
     'закроем word без сохранения
     WordOb.Close (wddonotsavechanges)
     WordApOb.Quit
    'и также очистим переменные
     Set WordOb = Nothing
     Set WordApOb = Nothing
     Resume Exit_testbutton_Click
    End If
   
   End Sub

Код прокомментирован, поэтому сложностей возникнуть не должно. Здесь весь смысл сводится к созданию объекта word.document и word.application. А после мы уже работаем с нашими объектами, т.е. заполняем их.

Экспорт данных из Access в шаблон Excel

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

Существует несколько способов, как заполнять Excel шаблон, я опишу два, первый — это тогда, когда Вам просто необходимо проставить несколько полей, т.е. в источнике данных будет всего одна строка с несколькими столбцами. Второй — это когда строк будет уже несколько, причем Вы не знаете, сколько именно (в зависимости от каких то условий). В шаблоне по умолчанию отведено для этого все пару строк, поэтому мы будем нужные нам строки добавлять, для того чтобы наши данные не накладывалась на строки ниже (допустим там примечание, подпись руководителя и т.д.). И совет, я здесь, для примера, использую всего один источник данных, а Вы, если Вам необходимо заполнить шапку, примечание и некое количество строк (т.е. область данных), можете использовать несколько источников (Recordset).

Код VBA для выгрузки данных в шаблон Excel

Сначала добавьте кнопку на форму (я ее назвал testexcel) и вставьте следующий код в событие «Нажатие кнопки».

   
   Private Sub testexcel_Click()
   
   'Объявляем переменные
   Dim XL As Object
   Dim XLT As Object
   Dim newrow As Object
   Dim rsd As ADODB.Recordset
   Dim strSQL As String
   Set rsd = New ADODB.Recordset
   
   'Запрос к базе данных
   strSQL = "select * from dbo.table where kod = " & Me.kod & ""
   rsd.open strSQL, CurrentProject.Connection
   
   'Создаем необходимые объекты
   Set XL = CreateObject("Excel.Application")
   'для примера показываю, как можно сразу загружать шаблон без выбора
   Set XLT = XL.Workbooks.open("C:testfile.xls")
   
   '1 способ - если в источнике данных всего одна строка
   With XLT.Worksheets("Лист1")
              .[a1] = rsd.Fields("field1")
              .[b1] = rsd.Fields("field2")
              .[c1] = rsd.Fields("field3")
              .[d1] = rsd.Fields("field4")
            End With
   
   '2 способ - если строк в источнике несколько
   'причем мы учтем то, что у нас есть шапка и примечание в Excel
   'и мы не знаем, сколько строк у нас вставится 
   'и поэтому строки будем добавлять в случае необходимости
   'зададим, с какой строки будем начинать вставлять данные
   Rowss = 10
   'для нумерации
   numrow = 1
   'запускаем цикл, он будет работать до тех пор, пока не закончатся строки в нашем источнике
   While Not (rsd.EOF)
      'смотрим, если строк больше чем мы задали в шаблоне
      If Rowss >= 12 Then
          'то добавляем строку
         XLT.Worksheets("Лист1").Rows(Rowss).Insert
          'Запомним нашу строку
         Set newrow = XLT.Worksheets("Лист1").Rows(Rowss)
          'и вставим туда копию предыдущей строки
          'для того если вдруг у вас там есть объединенные ячейки или какие-то нужные данные
          'так как новая строка создастся без всяких объединений и значений
         XLT.Worksheets("Лист1").Rows(Rowss - 1).Copy newrow
          'это просто для примера как можно очистить некий диапазон внутри документа
       'XLT.Worksheets("Лист1").Range("A10:F10").ClearContents
       'динамически формируем адрес нужной ячейки
          cell = "a" & Rowss
          'и задаем ей значение
         XLT.Worksheets("Лист1").Range(cell) = numrow
         cell = "b" & Rowss
         XLT.Worksheets("Лист1").Range(cell) = rsd.Fields("field5").Value
         'переходим на следующую строку
          Rowss = Rowss + 1
          'переходим на следующую строку в источнике данных
         rsd.MoveNext
      Else
          'а это выполняется до тех пор, пока не закончатся заданные строки в шаблоне
          'т.е. если строк в источнике всего 1, то в код, который выше мы даже не попадем
         cell = "a" & Rowss
         XLT.Worksheets("Лист1").Range(cell) = numrow
         cell = "b" & Rowss
         XLT.Worksheets("Лист1").Range(cell) = rsd.Fields("field5").Value
         Rowss = Rowss + 1
         rsd.MoveNext
      End If
         
        'для нумерации
        numrow = numrow + 1
   'конец цикла
   Wend
   
   'это просто пример как можно удалить строку целиком
   'XLT.Worksheets("Лист1").Rows(20).Delete
   
   'делаем Excel видимым
   XL.Visible = True
   
   'Очищаем переменные
   Set XL = Nothing
   Set XLT = Nothing
   Set newrow = Nothing
   
   End Sub

Здесь я также все подробно прокомментировал, но если есть вопросы, то задавайте их в комментариях к данной статье.

Для сведения, я здесь при создании объекта и Word.Application и Excel.Application использовал позднее связывание, для того чтобы не добавлять необходимые библиотеки и обеспечить совместимость.

Надеюсь, мои примеры Вам помогут!

0 / 0 / 0

Регистрация: 18.11.2011

Сообщений: 41

1

18.11.2011, 09:41. Показов 39763. Ответов 74


Студворк — интернет-сервис помощи студентам

Пожалуйста, помоги довести базу до ума.
Мне необходимо сделать :
1. Выгрузку данных из формы ПУТЕВКА в шаблон word-кого файла ТУРИСТСКАЯ ПУТЕВКА:
Надо чтобы поля формы выгружались в соответствующие места документа word. При чем выгружалась путем нажатия кнопки на форме.
2. В подчиненной форме формы ТУРИСТЫ необходимо сделать следующее: при двойном нажатии на код путевки открывалась путевка с указанным кодом.



0



Эксперт MS Access

7267 / 4469 / 288

Регистрация: 12.08.2011

Сообщений: 13,513

18.11.2011, 09:55

2

Цитата
Сообщение от Nikololia
Посмотреть сообщение

Пожалуйста, помоги

Кто-то конкретно должен помочь? Вы к кому обращаетесь?
1.Глазки поднимаем и видим:
Путеводитель по форуму
там про Word и не только.

2.Я не буду против того, чтобы увидеть ваш mdb.



0



Модератор

Эксперт MS Access

11343 / 4661 / 749

Регистрация: 07.08.2010

Сообщений: 13,512

Записей в блоге: 4

18.11.2011, 10:26

3

а где шаблон

и

форма ПУТЕВКИ1, которую вы вызываете

по идее вроде должно бы быть
-ленточная

Путевки для навигации и поиска путевок
-при клике на строке —открытие текущей или новой путевки в столбиковой форме и подчиненной для подбора туристов
-в клике на подчиненной -выход на сведения о туристе

соответственно 3 таблицы(не считая справочников)
1-перечень путевок
2—список туристов для некой путевки
3-личные данные туриста(фото,паспорт…..)

перечень путешествий туриста —это уже расчетная величина



0



0 / 0 / 0

Регистрация: 18.11.2011

Сообщений: 41

18.11.2011, 14:23

 [ТС]

4

Спасибо за оперативные ответы. Прошу прощения за не верно составленный текст просьбы.
вот что на данном этапе у меня получилось. но я не знаю как правильно составить программу кнопки для выгрузки в word (в форме ПУТЕВКА). (т.к. не сильна в программировании).
прикрепляю БД и шаблон
Заранее благодарю за помощь откликнувшимся



0



Ameli

2091 / 1167 / 39

Регистрация: 05.11.2009

Сообщений: 1,605

18.11.2011, 16:17

5

Лучший ответ Сообщение было отмечено как решение

Решение

У меня, как и многих других форумчан 2003 офис, и нет возможности открыть accdb, поэтому alvk и просил вас выложить mdb формат. Также просьба перед выкладыванием сжимать бд.
Но могу предложить вам код, который использую я. С помощью него заполняется вордовский документ на основе шаблона, в котором сделаны закладки в нужных местах.

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
Dim app As Word.Application
Dim strPathDot As String, strPathWord As String
 
strPathDot = "ПутьНазвание шаблона.dot"
strPathWord = "ПутьНазвание документа.doc"
 
'Если есть документ с таким же названием и местом расоложения, выдается сообщение о замене
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 = New Word.Application
app.Visible = True
app.Documents.Add strPathDot
With app.ActiveDocument
 
'Вставка данных
.FormFields("Название закладки").Result = Forms![Название формы]![Название поля]
 
'и т.д. по всем закладкам
 
.SaveAs strPathWord
.Protect wdAllowOnlyFormFields, True, ""
End With
Set app = Nothing
End If
funOutputWord = True
Exit_:



8



Ameli

2091 / 1167 / 39

Регистрация: 05.11.2009

Сообщений: 1,605

18.11.2011, 17:14

6

Набросала примерчик.
Уточняю, что в редакторе VBA на панели Tools — References надо включить Microsoft Word Object Library.
В шаблоне ворда должны быть созданы текстовые поля с закладками.
Строчка

Visual Basic
1
.Protect wdAllowOnlyFormFields, True, ""

включает защиту формы (все, кроме полей формы). Поэтому смотрите сами, нужна ли она вам

Вложения

Тип файла: rar Новая папка.rar (22.1 Кб, 452 просмотров)



1



0 / 0 / 0

Регистрация: 18.11.2011

Сообщений: 41

18.11.2011, 18:21

 [ТС]

7

Большое спасибо за ответ.
Я сделала как вы сказали, но у меня выходит ошибка Word «Не верно указана единица измерения»
В чем причина?
Кроме того, шаблон все равно не заполняется
Прикрепляю БД с корректировкой

P.s. в формате mdb сохранить не получается (из-за не совместимости)

Вложения

Тип файла: rar БД.rar (3.00 Мб, 164 просмотров)



0



Ameli

2091 / 1167 / 39

Регистрация: 05.11.2009

Сообщений: 1,605

19.11.2011, 13:03

8

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

Visual Basic
1
.Bookmarks("КодПутевки").Range.Text = Forms![ПУТЕВКА]![Код путевки]

У вас закладки были перепутаны, не все добавлены, я их исправила;
Слишком сложное обращение к полю на форме, вот правильное:
Forms![ПУТЕВКА]![Код путевки]
На форме не совпадали названия полей с теми, к которым вы обращались в коде;
К некторым полям со списком надо обращаться к кокретному столбцу:
Forms![ПУТЕВКА]!Страна.Column(1)
В программном коде исправила обращение к шаблону и файлу ворда — путь к текущей базе данных + название шаблона. К названию файла добавила текущий номер путевки (код путевки);
В шаблоне добавила закладки Турист1…Турист5 (один под другим), Покупатель = Туристу1 (если я правильно поняла). В коде добавила цикл по списку туристов, входящих в данную путевку:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Dim MyTable As DAO.Recordset
Set MyTable = CurrentDb.OpenRecordset("SELECT Направления.[Код направления], Направления.Направления_Код, [Туристы]![Фамилия] & ' ' & [Туристы]![Имя] & ' ' & [Туристы]![Отчество] AS ФИОтуриста FROM Туристы INNER JOIN Направления ON Туристы.[Код туриста] = Направления.Туристы_Код WHERE (((Направления.Направления_Код)=" & [Forms]![ПУТЕВКА]![Код путевки] & "))")
i = 1
Do While Not MyTable.EOF
        Турист = "Турист" & i
        If i = 1 Then .Bookmarks("Покупатель").Range.Text = CStr(MyTable.Fields("ФИОтуриста"))
        
        .Bookmarks(Турист).Range.Text = CStr(MyTable.Fields("ФИОтуриста"))
        i = i + 1
        MyTable.MoveNext
Loop
MyTable.Close

Вложения

Тип файла: rar БД.rar (120.7 Кб, 609 просмотров)



1



0 / 0 / 0

Регистрация: 18.11.2011

Сообщений: 41

20.11.2011, 21:22

 [ТС]

9

Здорово, спасибо!!!
Пробую это вариант. И делаю дальше.



0



0 / 0 / 0

Регистрация: 18.11.2011

Сообщений: 41

21.11.2011, 11:21

 [ТС]

10

Добрый день!!!
подскажите, пожалуйста,
1) как избавиться правильно от ошибки при незаполненном поле (т.е. если, например, поле стоимость не заполнено, то в шаблон ничего не выгружалось (ну или пробел)
2) можно ли сделать так, чтобы после нажатия кнопки » выгрузка в word», данный документ открывался сразу (необходимо для дальнейшего редактирования).
Заранее благодарю за ответ.

Вложения

Тип файла: rar БД.rar (139.3 Кб, 186 просмотров)



0



shanemac51

Модератор

Эксперт MS Access

11343 / 4661 / 749

Регистрация: 07.08.2010

Сообщений: 13,512

Записей в блоге: 4

22.11.2011, 13:51

11

Цитата
Сообщение от Nikololia
Посмотреть сообщение

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
Private Sub Кнопка54_Click()
Dim app As Word.Application
Dim strPathDot As String, strPathWord As String
 
strPathDot = CurrentProject.Path & "Туристская путевка.dotx"
strPathWord = CurrentProject.Path & "Туристская путевка " & Forms![ПУТЕВКА]![Код путевки] & ".doc"
 
'Если есть документ с таким же названием и местом расоложения, выдается сообщение о замене
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 = New Word.Application
app.Visible = True
app.Documents.Add strPathDot
With app.ActiveDocument
 
'Вставка данных
    .Bookmarks("КодПутевки").Range.Text = "" & Forms![ПУТЕВКА]![Код путевки]
    .Bookmarks("Страна").Range.Text = "" & Forms![ПУТЕВКА]!Страна.Column(1)
    .Bookmarks("Отель").Range.Text = "" & Forms![ПУТЕВКА]!Отель.Column(1)
    .Bookmarks("Туроператор").Range.Text = "" & Forms![ПУТЕВКА]![Туроператор].Column(1)
    .Bookmarks("Маршрут").Range.Text = "" & Forms![ПУТЕВКА]!Маршрут.Column(1)
    .Bookmarks("Катег_проездн_билета").Range.Text = "" & Forms![ПУТЕВКА]!Катег_проездн_билета.Column(1)
    .Bookmarks("Рейс").Range.Text = "" & Forms![ПУТЕВКА]!Рейс
    .Bookmarks("Тип_номера").Range.Text = "" & Forms![ПУТЕВКА]!Тип_номера.Column(1)
    .Bookmarks("Питание").Range.Text = "" & Forms![ПУТЕВКА]!Питание.Column(1)
    .Bookmarks("Виза").Range.Text = "" & Forms![ПУТЕВКА]!Виза
    .Bookmarks("Страховка").Range.Text = "" & Forms![ПУТЕВКА]!Страховка
    .Bookmarks("Трансфер").Range.Text = "" & Forms![ПУТЕВКА]!Трансфер
    .Bookmarks("Экскурсии").Range.Text = "" & Forms![ПУТЕВКА]!Экскурсии
    .Bookmarks("Начало_маршрута").Range.Text = "" & Forms![ПУТЕВКА]!Начало_маршрута
    .Bookmarks("Окончание_маршрута").Range.Text = "" & Forms![ПУТЕВКА]!Окончание_маршрута
    .Bookmarks("Стоимость").Range.Text = "" & Forms![ПУТЕВКА]!Стоимость
Err.Clear ' Очищаем поток от ошибки при отсутствии элемента
Dim MyTable As DAO.Recordset
Set MyTable = CurrentDb.OpenRecordset("SELECT Направления.[Код направления], Направления.Направления_Код, [Туристы]![Фамилия] & ' ' & [Туристы]![Имя] & ' ' & [Туристы]![Отчество] AS ФИОтуриста FROM Туристы INNER JOIN Направления ON Туристы.[Код туриста] = Направления.Туристы_Код WHERE (((Направления.Направления_Код)=" & [Forms]![ПУТЕВКА]![Код путевки] & "))")
 
i = 1
Do While Not MyTable.EOF
        Турист = "Турист" & i
        If i = 1 Then .Bookmarks("Покупатель").Range.Text = CStr(MyTable.Fields("ФИОтуриста"))
        
        .Bookmarks(Турист).Range.Text = CStr(MyTable.Fields("ФИОтуриста"))
        i = i + 1
        MyTable.MoveNext
Loop
 
MyTable.Close
 
.SaveAs strPathWord
On Error GoTo 999 ' Включаем обработку ошибки
End With
Set app = Nothing
End If
funOutputWord = True
Exit Sub
''Exit_:
999:
    MsgBox Err.Description  'Ошибка
    Err.Clear
    app.Quit
End Sub
 
'''' и не забывайте закрывать WORD



1



2091 / 1167 / 39

Регистрация: 05.11.2009

Сообщений: 1,605

22.11.2011, 16:51

12

Или с помощью ф-ии Nz(), которая возвращает пустую строку «» или другое указанное значение, если переменная в скобках = Null. Добавим ее перед каждым обращением к полю формы для вставки в шаблон ворда

Вложения

Тип файла: rar БД.rar (146.8 Кб, 210 просмотров)



1



0 / 0 / 0

Регистрация: 18.11.2011

Сообщений: 41

23.11.2011, 14:23

 [ТС]

13

2.

Цитата
Сообщение от Nikololia
Посмотреть сообщение

2. В подчиненной форме формы ТУРИСТЫ необходимо сделать следующее: при двойном нажатии на код путевки открывалась путевка с указанным кодом.

Сделала сама. ))))



0



0 / 0 / 0

Регистрация: 18.11.2011

Сообщений: 41

23.11.2011, 15:10

 [ТС]

14

теперь у меня возникли следующие вопросы:
1) когда нажимаю на кнопку » выгрузка в шаблон word» в форме ПУТЕВКА возникают ошибки
пожалуйста, подскажите как от них избавиться?
2) а можно как-то сделать чтобы при нажатии на указанную выше кнопку сразу открывался для дальнейшего редактирования созданный вновь документ? (а то совсем не удобно выполнять следующие действия: нажать на кнопку; пропустить ошибки; потом зайти в папку, где лежит шаблон; открыть шаблон; затем может зависнуть word; закрыть шаблон и только потом можно работать с новым документом)



0



0 / 0 / 0

Регистрация: 18.11.2011

Сообщений: 41

23.11.2011, 15:46

 [ТС]

15

приложила в формате 2003



0



0 / 0 / 0

Регистрация: 18.11.2011

Сообщений: 41

23.11.2011, 20:17

 [ТС]

16

с горем на пополам я изменила версии access и word.
помогите избавиться от ошибок и сделать возможным открывать новый выгруженный документ сразу после нажатия кнопки в форме ПУТЕВКА
Заранее благодарю за помощь (ответ)



0



Эксперт MS Access

7267 / 4469 / 288

Регистрация: 12.08.2011

Сообщений: 13,513

24.11.2011, 07:51

17

Лучший ответ Сообщение было отмечено как решение

Решение

Посмотрите как сделано здесь и продублируйте:
Кнопка для экспорта



1



2091 / 1167 / 39

Регистрация: 05.11.2009

Сообщений: 1,605

24.11.2011, 08:58

18

Базу данных с ошибкой вы так и не приложили ни в каком формате — ни в 2003, ни в 2007. Мой приложенный пример у меня работает без проблем — ошибки не выскакивают, открывать документ не нужно, он открывается сам, правда свернутый.
У вас мой приложенный пример (пост № 12) открывается также? или выскакивают ошибки?
Приложите базу с ошибкой хоть в каком-нибудь формате



0



0 / 0 / 0

Регистрация: 18.11.2011

Сообщений: 41

24.11.2011, 09:49

 [ТС]

19

прикрепила
ошибки все равно есть



0



0 / 0 / 0

Регистрация: 18.11.2011

Сообщений: 41

24.11.2011, 11:16

 [ТС]

20

прикрепила в той версии, над которой я сейчас тружусь

Вложения

Тип файла: rar БД.rar (259.2 Кб, 263 просмотров)



0



Microsoft Access is a database solution that makes compiling data simple. But what if you wanted to export it as a Word document? Here’s how to do it!

run queries in access featured

Microsoft’s Office suite has different apps for different tasks. So, for instance, if you want to create a database, Microsoft Access has your back. Access provides most of the features you would expect from a relational database management system. You can create tables, forms, queries, relations, reports, macros, modules, to name a few.

But from time to time, you might want to export data from Microsoft Access to Word. If you’re looking for an easy way to export Access data into Word, you’re in the right place.

How Access Exports Objects to Word

Before showing you how to export data from Microsoft Access to Word, you need to understand some basics. First, you cannot export all types of objects from Access to Word.

Currently, you can only export tables, queries, forms, and reports. However, each object still has some limitations. Starting with records, Access only exports those that are in a selected view. The application will not include all the hidden data in a report. Similarly, Access is only able to export forms and data sheets with subforms and sub-data sheets.

The only way around this is to export every subform and sub data sheet. If you export the main report, you can export multiple subforms and subreports.

Secondly, you can’t export relationships, macros, modules, and graphical objects like pictures and Microsoft Graph objects from Access to Word. Additionally, Access will only export results from expressions and not expressions themselves.

Lastly, there’s no way to import data from Microsoft Access to Word. You must start in Access, export your data to a new document, then copy the contents and paste them into your existing Word document.

How to Export Access Data to a Word Document

Exporting Access data to Word uses a built-in Export—RTF File Wizard tool. Sure, the tool has many limitations around exporting Access data, but it’s better than nothing.

But if that’s overly limiting, you can look out for some of the best free Microsoft Access alternatives for a possible replacement. Otherwise, follow these steps to export your data from Access to Word:

  1. Open your Access database.
  2. Select the object you want to export in the Navigation Pane.
  3. Examine the table, query, form, or report to ensure it’s error-free. Access typically includes error indicators whenever it recognizes an error. This can include green triangles and a variety of error numbers. This step is important since Access will automatically replace error locations with a null value after exporting your data.
  4. Select the view or portion of the data to export. The best way to select data to export from multiple tables is by running MS Access queries. If you want to export all the data from an object, skip this step.
    MS Access table with portions of data selected
  5. Click the External Data tab and select More > Word. The Export—RTF File export wizard tool will open.
    Different formats of exporting data from MS Access
  6. In the Export—RTF File export wizard pop-up, enter your file name and select a destination.
    The Export - RTF File export wizard tool in MS Access
  7. Check the Open the destination file after the export operation is complete check box if you need to.
  8. If you selected certain data to export, check the Export only the selected records check box. Otherwise, leave the checkbox to export all the data in the object.
  9. Click OK to start the export process.

If a file with a similar name exists, you can select whether Access should overwrite it or not. Select Yes to overwrite the file, or No to choose a new name for your file in the pop-up.

By default, Access will create a Microsoft Word Rich Text Format file with an RTF extension. To add your Access data to a Word document, follow these steps:

  1. Open the RTF document.
  2. Copy all the contents of the document.
  3. Paste the data in your Word document.

If you find the Export—RTF File export wizard tool tedious to use, there’s an easier way out. Copy data from your Access table, query, form, or report and paste it directly into your Word document.

Export Access Data to Word Without Hassle

Databases are a great way to store data. If you need to export your Access data to other apps like Word or Excel, the built-in Export—RTF File Wizard makes the whole process seamless, albeit with some limitations.

If you have extensive data to work with, Access forms offer a more powerful way to add more data to your database. They are easier to work with when editing tables and adding more data.

Одно из преимуществ данной программы Microsoft Word, это позволит тебе отправить отчеты о доступе через разные платформы без необходимости прибегать к стороннее программное обеспечение для этого. Фактически ваши базы данных можно преобразовать для чтения в таких программах, как Excel, PDF, перенос данных в базу данных и SharePoint или просто откройте их в Документ Word.

Без сомнения, все это дает вам множество преимуществ, тем более что не у всех пользователей есть Microsoft Access на своих компьютерах, для чего может сохраните свои базы данных в более узнаваемом программном формате это всегда будет очень важно. Тем более что это предложит вам новые альтернативы для доступа к вашим данным.

Вот почему эта процедура экспортировать информацию из базы данных в документ Microsoft Word это стало настолько важным для большинства людей. Поэтому здесь мы вас научим как выполнить эту процедуру легко и быстроДля этого подробно следите за всем, чему мы научим вас дальше в посте.

О чем следует помнить перед экспортом данных из Access в Microsoft Word?

О чем следует помнить перед экспортом данных из Access в Microsoft Word?

К счастью для большинства пользователей, каждый из ваши базы данных Access они могут легко экспортировать в Microsoft Word, в этом случае вы можете экспортировать как запрос, отчет, форма или таблица. Весь этот процесс осуществляется через мастер экспорта где вывод файла в формате RTF, в таком случае Access отвечает за создание копии данных объекта в файле текстового формата для чтения в Word..

Поэтому при экспорте данных из Access в Word необходимо учитывать следующие аспекты:

Операция всегда должна запускаться из Access

В момент желания экспортировать данные из базы данных в Wordты должен это сделать прямо из Access, это потому что Microsoft Word не имеет опции, позволяющей импортировать данные из базы данных, это тоже невозможно сохранить базу данных Access как текстовый документ используя команду “Сохранить как”.

Учтите, какие объекты можно экспортировать

В этом случае у пользователя есть возможность экспортировать обе таблицы, запросы, формы или отчетыкак и все выбранные записи в представлении. Что нельзя экспорт – это макросы или модули.

Если ты решишь при экспорте формы, содержащей подчиненные формы, будет экспортироваться только основная форма, Это означает, что для того, чтобы извлечь подчиненные формы в Word процесс необходимо повторить для каждого из них. Теперь, если экспортируется отчет, тогда подчиненные формы и вложенные отчеты которые включены в указанные отчеты, также будут экспортировать вместе с основным отчетом. В этом случае нет необходимости повторять процесс.

Результат операции

В этом случае мастер экспорта: файл RTF всегда позволяет экспортировать отформатированные данные, таким образом как поля как записи Я знаю в Объект или представление экспортируются вместе с настройками формата отображения. Кроме того, оба столбцы как записи которые найдены скрытый не будет экспортирован.

Слить с другим существующим документом

когда база данных Access экспортируется в Word, данные всегда будут распаковать в новый файл Word, но может случиться так, что ты хочешь данные что они собираются экспорт вставляются в существующий документ Word, либо завершить некоторые отчет или документ.

Для достижения такого результата необходимо сначала извлечь всю базу данных в новый документ Word, как только информация уже есть, теперь вам следует сделать скопировать все данные что тебе нужно и скопируйте их в существующий документ. Наконец, в качестве альтернативы всему этому вы можете попробуйте скопировать строки напрямую из Доступ к таблице, отчету, форме или запросу а затем наклеить их на существующий документ где вам нужна информация.

Пошаговые инструкции по экспорту элементов и информации из базы данных Access в Word

Пошаговые инструкции по экспорту элементов и информации из базы данных Access в Word

Проведение этого процесса не должно означать никаких сложностей для пользователя, так как это очень просто и легко сделать.

Для этого вам необходимо выполнить следующие действия:

  • Первое, что вам следует сделать, это подготовить исходные данные для экспорта, на этом этапе необходимо, чтобы убедитесь, что в данных нет ошибок и вы также должны решить, собираются ли они экспортировать все или только некоторые данные из исходной таблицы.
  • Следующее будет запустите мастер экспорта: файл RTF.
  • Наконец, при желании вы можете сохранить настройки в качестве спецификации экспорта для последующего использования.

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

Подготовить процесс

Чтобы начать эту процедуру, первым делом будет подготовить процесс экспорта из Access.

Для этого выполните каждый из следующих шагов:

  • Первым делом нужно открыть исходная база данных Access.
  • Сейчас в панель навигации вы должны выбрать объект, содержащий данные который вы хотите экспортировать. Имейте в виду, что вы можете экспортировать таблицу, форму, запрос и отчет.
  • Тогда они должны просмотрите исходные данные и убедитесь, что все правильно, поскольку это гарантирует, что экспорт их правильно. В случае, если есть ошибка типа #Num, вы должны убедиться, что все решено, прежде чем извлеките их в Word. Имейте в виду, что да ваша база данных экспортируется с ошибкой или более они появятся с нулевое значение в новом документе.
  • Если он текстовый документ куда они собираются извлечь данные уже существуют и он открыт, важно, чтобы вы закрываете его, чтобы продолжить. Здесь мастер спросит вас раньше перезаписать документ.
  • Наконец, в база данных вы должны указать, если хотите извлечь часть формы, запроса или таблицы, в этом случае необходимо открыть объект и выбрать только записи, которые вы хотите отправить в новый документ.

Начать процесс

Как только все вышеперечисленное будет сделано, следующим будет начать процесс экспорта.

Для этого выполните следующие действия:

  • Теперь из вкладки «Внешние данные» в разделе “Экспортировать” вы должны нажать на опцию “Слово”.
  • Здесь откроется мастер экспорта «Экспорт: файл RTF».
  • В мастере экспорта необходимо указать имя конечного файла.
  • Помните, что этот помощник всегда экспортировать отформатированные данные, Значит, чтобы увидеть текстовый документ после завершения процедуры извлечения данных необходимо установить флажок «Откройте файл назначения в конце операции экспорта».

Начать процесс

  • Если перед запуском этой процедуры вы выбрали записи, которые хотите экспортировать, то вы должны установить флажок «Экспортировать только выбранные записи» это на случай, если вы не хотите извлекать всю информацию из таблица, отчет или запрос.
  • Следующее, что нужно будет нажать на “Принять”.
  • Если целевой документ существует, необходимо нажать “Да” так что ты можешь перезаписать файл, а если нет, то просто выберите “Не” для переименовать файл назначения а затем щелкните “Принять”.
  • После всего этого Access полностью экспортирует данные и автоматически открывать слово документ, это будет зависеть от функций, которые были активированы ранее. Пользователь также может просматривать статус операции на странице мастера.

Как данные Access выглядят в документе Word? Понять результат экспорта

Как данные Access выглядят в документе Word?  Понять результат экспорта

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

Поэтому вот основные элементы, которые вы должны понимать в результате экспорта данных:

Название элементов

когда запрос, отчет, форма или таблица экспортируются, имена полей помещаются в первая строка таблицы в новом документе Word. когда экспортировать отчет о местоположении из имена полей в Word они будут различаться в зависимости от дизайна отчета.

Многозначные поля

В случае Доступ позволяет иметь разные значения в одном поле, поэтому эти поля экспортируются в один столбец в Word, и значения будут найдены разделенных запятыми (,).

Изображения, объекты и вложения

В случае графических элементов, таких как логотипы, вложения, данные из полей объекта OLE и изображения которые являются частью исходных данных они не будут экспортированы в Word.

Графика

В случае объектов Microsoft Graph они не экспортируются.

Выражения

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

Подформы и подтаблицы

когда экспортировать форму или таблицу, будет экспортироваться только основной, то есть подчиненные формы и дочерние листы не. Чтобы получить экспорт их Это необходимо повторить процесс экспорт для каждого из них.

Понравилась статья? Поделить с друзьями:
  • Создание объекта в microsoft excel
  • Создание общего документа word
  • Создание нумерации в excel
  • Создание номенклатуры при загрузке excel
  • Создание новых формул в excel