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 использовал позднее связывание, для того чтобы не добавлять необходимые библиотеки и обеспечить совместимость.

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

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.

6 / 6 / 2

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

Сообщений: 108

1

09.03.2015, 13:10. Показов 7680. Ответов 30


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

Доброго дня Уважаемые форумчане!!!

Для многих вопрос покажется простым, и, всё-же:
Как экспортировать данные

из таблицы

(не из контролов формы) в шаблон MS Word?

Спасибо!!!



0



Эксперт MS Access

26777 / 14456 / 3192

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

Сообщений: 15,782

09.03.2015, 13:40

2

В таблице/запросе может быть много записей. В Вашем шаблоне 3 закладки. Как Вы себе представляете можно уместить много записей с несколькими полями в 3 закладки? Каждую запись в отдельный документ ворда? Или как-то иначе, например используя таблицу в ворде? Или конкатенация записей в каждую закладку?



0



6 / 6 / 2

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

Сообщений: 108

09.03.2015, 14:40

 [ТС]

3

Прошу прощения за неполный вопрос!

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

Текущую запись в отдельный документ ворда

— вот именно так.



0



mobile

Эксперт MS Access

26777 / 14456 / 3192

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

Сообщений: 15,782

09.03.2015, 15:22

4

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

Решение

Замените процедуры docWord и maxCopy на предложенные

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
Private Function docWord()
    Dim rst As DAO.Recordset, namefld, i
    namefld = Array("Text", "Family", "Name")
    Set rst = CurrentDb.OpenRecordset("select * from tbl_1") 'Отекрыть рекордсет на таблице
    Do Until rst.EOF
        With Application.CurrentProject
            strDOT = .path & "" & "образец.dot" 'Имя шаблона
            strDOC = maxCopy(rst!Family)              'Задаём имя файла и место расположения
        End With
        Set app = New Word.Application 'Создаем документ
        app.Documents.Add strDOT 'Добавляем документ 
        With app.ActiveDocument  'Выбираем активный документ
            For i = 0 To UBound(namefld)               ' Просматриваем все элементы массива имен
                s = namefld(i) 'Определяем название элемента
                .Bookmarks.Item(s).Range.Text = rst(s) 'Устанавливаем текст
            Next i
            .SaveAs strDOC 'Сохраняем файл
        End With
        
        'Если нужно чтобы созданный док был открыт, закомментируйте команду app.Quit и откройте app.Visible
        app.Quit 'Закрываем документ
'        app.Visible = True
        rst.MoveNext
    Loop
    Set app = Nothing
End Function
 
Private Function maxCopy(fam) 'Задаем параметром функции поле фамилии и заменяем им ссылку на поле формы
    'Определяем максимальный по номеру файл
    path = Environ("userprofile") & "Desktop" & ""
    strDOC = Date & " " & fam & " " & ".doc" 'Задаём ещё имя файла и место расположения
    d = Dir(path & Date & " " & fam & " " & "*.doc")
    Do Until d = ""
        s1 = Replace(Replace(d, ".doc", ""), " ", "")
        s2 = Replace(Replace(strDOC, ".doc", ""), " ", "")
        If s1 > s2 Then strDOC = d
        d = Dir
    Loop
    'Если в strDOC есть скобка, находим номер в скобках и увеличиваем на 1
    If strDOC Like Date & " " & fam & " " & "*(#*).doc" Then
        'определяем максимальный номер копии
        nom = Val(Split(strDOC, "(")(1)) + 1
        strDOC = Date & " " & fam & " " & "(" & nom & ").doc"
    Else
        'скобок и номера нет. Прибавляем номер 1 в скобках
        strDOC = Date & " " & fam & " " & "(1).doc"
    End If
    strDOC = path & strDOC
    maxCopy = strDOC
End Function

Не по теме:

И еще. Я рекомендую Вам делать структурирование кода в процедурах. Хотя бы так, как я сейчас сделал. Иначе, особенно при большом количестве ифов, визов и циклов очень трудно понять код.



2



6 / 6 / 2

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

Сообщений: 108

09.03.2015, 18:06

 [ТС]

5

Уважаемый mobile, в очередной раз огромное Вам спасибо!!!

И всё-таки как экспортировать одну (текущую) запись в MS Word?
Т.е. например, только Иванова. Спасибо!



0



mobile

Эксперт MS Access

26777 / 14456 / 3192

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

Сообщений: 15,782

09.03.2015, 18:26

6

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

как экспортировать одну (текущую) запись

А что такое текущая запись? Та, что выбрана в форме [frm_exp]? Если да, то замените команду выбора рекордсета на

Visual Basic
1
Set rst = CurrentDb.OpenRecordset("select * from tbl_1 where id_num=" & Me.Recordset.fields(0))

Добавлено через 2 минуты
Если же нужно выбирать по фамилии, то так

Visual Basic
1
Set rst = CurrentDb.OpenRecordset("select * from tbl_1 where Family='" & [ПолеНаФормеСФамилией] & "'")



1



6 / 6 / 2

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

Сообщений: 108

09.03.2015, 18:58

 [ТС]

7

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

А что такое текущая запись? Та, что выбрана в форме

^—————————————————————^
Большое спасибо!!!
И ещё возникла одна загвоздка — если отсутствует запись в поле таблицы (в ячейке), то возникает ошибка ’94 и соответственно экспорт не осуществляется. Как решить такую проблемку?
Спасибо!!!

Мозг сегодня корректно работать отказывается…



0



mobile

Эксперт MS Access

26777 / 14456 / 3192

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

Сообщений: 15,782

09.03.2015, 19:06

8

Замените текст процедуры на кнопке. Сделана проверка на новую запись и пустое поле фамилии

Visual Basic
1
2
3
4
5
6
7
Private Sub btn_exp_Click()
    If Me.NewRecord Or IsNull(Me.Recordset.Fields("Family")) Then
        MsgBox "Выбрана пустая запись"
    Else
        docWord
    End If
End Sub



1



6 / 6 / 2

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

Сообщений: 108

09.03.2015, 20:08

 [ТС]

9

А если экспортируемых полей, скажем больше 20 и данные содержат, скажем только 8 полей, т.е. проверку как-то нужно осуществить во всей записи в таблице…?
Т.е. получается минимум 12 полей не имеющих никаких данных, но… имеющиеся данные все равно нужно выгрузить в шаблон MS Word. Как решить проблемку???



0



mobile

Эксперт MS Access

26777 / 14456 / 3192

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

Сообщений: 15,782

09.03.2015, 20:35

10

Если в полях нет данных, то надо защищаться от передачи NULL в ворд с помощью функции NZ. Исправьте строку в docWord где записывается в букмарки ворда на

Visual Basic
1
.Bookmarks.Item(s).Range.Text = Nz(rst(s), "") 'Устанавливаем текст

Для указания всех нужных полей, перечислите их в команде Array

Visual Basic
1
namefld = Array("Text", "Family", "Name", "ДругоеПоле", "СавсемДругоеПоле")



1



6 / 6 / 2

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

Сообщений: 108

10.03.2015, 14:54

 [ТС]

11

Большущее спасибо!!!

Появился ещё один вопросик в этой теме:

При экспорте файлы .doc сохраняются на Рабочем столе, при большом объёме Рабочий стол естественно будет сильно «засорен».

Что прописать в коде, что-бы на Рабочем столе создать папку с именем скажем 10.03.2015 (т.е. текущая дата) и уже в неё сохранять все создаваемые на текущую дату файлы .doc?

p.s. Завтра при экспорте из MS Access в MS Word снова должна создаваться папка соответственно с именем 11.03.2015, тогда уже в неё должны будут сохраняться создаваемые файлы .doc

Спасибо!



0



mobile

Эксперт MS Access

26777 / 14456 / 3192

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

Сообщений: 15,782

10.03.2015, 15:30

12

Перед отработкой остального кода поместите команду создания папки с именем текущей даты

Visual Basic
1
2
3
On Error Resume Next 'Обход ошибки на случай когда папка уже есть
mkdir Environ("userprofile") & "Desktop" & Date
On Error  Goto 0



1



6 / 6 / 2

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

Сообщений: 108

10.03.2015, 15:56

 [ТС]

13

Огромное СПАСИБО!!!

Вот только не совсем поняла куда:

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

Перед отработкой остального кода



0



mobile

Эксперт MS Access

26777 / 14456 / 3192

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

Сообщений: 15,782

10.03.2015, 16:07

14

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

Вот тоько не совсем поняла куда

Например сюда

Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub btn_exp_Click()
    If Me.NewRecord Or IsNull(Me.Recordset.Fields("Family")) Then
        MsgBox "Выбрана пустая запись"
    Else
        On Error Resume Next 'Обход ошибки на случай когда папка уже есть
        mkdir Environ("userprofile") & "Desktop" & Date
        On Error  Goto 0
        docWord
    End If
End Sub

И далее в переменной path из MaxCopy исправьте путь на имя папки с текущей датой. Или сохраняйте его в публичной переменной и просто подставляйте где надо.



2



6 / 6 / 2

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

Сообщений: 108

10.03.2015, 18:16

 [ТС]

15

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

mkdir Environ(«userprofile») & «Desktop» & Date

Если в этот-же день ещё раз запустить функцию docWord, то ничего не произойдёт…, т.к. папка уже создана и в неё помещён/помещены .doc файл/файлы.
А хотелось-бы при повторном вызове функции docWord в уже созданную сегодня папку помещать вновь создаваемые .doc файлы.



0



Эксперт MS Access

26777 / 14456 / 3192

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

Сообщений: 15,782

10.03.2015, 19:26

16

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

Если в этот-же день ещё раз запустить функцию docWord, то ничего не произойдёт…, т.к. папка уже создана и в неё помещён/помещены .doc файл/файлы.

Да что ж Вы принародно такие ужасы рассказываете?

Давайте сюда Ваш файлик. Исправлю.



0



6 / 6 / 2

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

Сообщений: 108

10.03.2015, 19:37

 [ТС]

17

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

Да что ж Вы принародно такие ужасы рассказываете

Я не со зла…

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

Давайте сюда Ваш файлик

Буду признательна! Одну минуточку.



0



6 / 6 / 2

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

Сообщений: 108

10.03.2015, 20:08

 [ТС]

18

Вот выдернула кусочек БД



0



Эксперт MS Access

26777 / 14456 / 3192

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

Сообщений: 15,782

10.03.2015, 20:42

19

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

А хотелось-бы при повторном вызове функции docWord в уже созданную сегодня папку помещать вновь создаваемые .doc файлы.

А те файлы которые в ней уже есть при повторном вызове удалять? Или пусть будут?



0



6 / 6 / 2

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

Сообщений: 108

10.03.2015, 20:53

 [ТС]

20

Имеющиеся в папке файлы должны оставаться, а вновь создаваемые в своём имени должны содержать соответствующую цифру например, 10.03.2015 Иванов (2).doc и т.д.



0



Одно из преимуществ данной программы 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 они не экспортируются.

Выражения

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

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

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

Like this post? Please share to your friends:
  • Access самоучитель скачать в word
  • Access открыть файл excel макросом
  • Access не открывает файл excel
  • Access заполнение шаблона word
  • Access выгрузка запроса в excel