Выгрузить отчет access в excel

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

В этой статье

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

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

  • Выполнение экспорта

  • Что еще важно знать об экспорте

  • Решение проблем, связанных с отсутствующими и неверными значениями

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

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

Стандартные сценарии экспорта данных в Excel

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

  • Вы используете Access, но ваш руководитель предпочитает работать с данными в Excel. Вам приходится регулярно копировать данные в Excel, но вам хотелось бы автоматизировать этот процесс ради экономии времени.

Об экспорте данных в Excel

  • В приложении Access нет команды «Сохранить как” с возможностью сохранения данных в формате Excel. Чтобы скопировать данные в Excel, необходимо воспользоваться функций экспорта, описанной в этой статье, либо скопировать данные Access в буфер обмена, а затем вставить их в таблицу Excel.

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

  • В приложении Microsoft Excel есть команда импорта данных из базы данных Access. Ее можно использовать вместо команды экспорта Access, однако с помощью команды импорта в Excel можно импортировать только таблицы и запросы. Дополнительные сведения см. в разделе справки Excel Подключение к внешним данных и их импорт.

  • Экспортировать макросы и модули нельзя. При экспорте формы, отчета или таблицы с подчиненными формами, отчетами или таблицами экспортируется только главная форма, отчет или таблица. Все подчиненные формы, отчеты и таблицы следует экспортировать в Excel отдельно.

  • В ходе операции экспорта можно экспортировать лишь один объект базы данных. Однако после нескольких операций экспорта можно выполнить в Excel слияние нескольких листов.

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

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

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

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

Экспорт

Исходный объект

Поля и записи

Форматирование

Без форматирования

Таблица или запрос

Примечание:  Формы и отчеты невозможно экспортировать без форматирования.

Экспортируются все поля и записи базового объекта.

Параметры свойства «Формат» пропускаются в ходе операции.

Для полей подстановки экспортируются только значения кодов подстановки.

Содержимое полей гиперссылок экспортируется в виде столбца текста, в котором ссылки отображаются в формате отображаемый_текст#адрес#.

С форматированием

Таблица, запрос, отчет или форма

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

В мастере соблюдаются параметры свойства «Формат».

В случае полей подстановки экспортируются значения подстановки.

При экспорте полей гиперссылок значения экспортируются в виде гиперссылок.

При экспорте полей форматированного текста текст экспортируется без форматирования.

  1. Выберите целевую книгу и ее формат. Имейте в виду, что отчеты можно экспортировать только в более старом формате XLS (но не в формате XLSX).

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

Целевая книга

Исходный объект

Экспортируемые данные

Результат

Не существует

Таблица, запрос, отчет или форма

Данные с форматированием или без него

В ходе операции экспорта создается книга.

Существует

Таблица или запрос

Данные без форматирования

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

Существует

Таблица, запрос, отчет или форма

Данные с форматированием

Файл перезаписывается экспортируемыми данными. Все имеющиеся листы удаляются, и создается новый лист с именем экспортируемого объекта. Данные листа Excel наследуют параметры форматирования исходного объекта.

Данные всегда добавляются в новый лист. Невозможно добавить данные в имеющийся лист или именованный диапазон.

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

Выполнение экспорта

  1. Если целевая книга Excel открыта, закройте ее перед выполнением операции.

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

    Экспорт только части данных

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

    Открытие формы в режиме таблицы    

    1. Чтобы открыть форму, дважды щелкните ее.

    2. Щелкните форму правой кнопкой мыши, а затем щелкните элемент Режим таблицы. Если он недоступен, выполните действия, описанные ниже.

      1. Выберите пункт Режим конструктора.

      2. Нажмите клавишу F4, чтобы отобразить панель задач «Страница свойств».

      3. В раскрывающемся списке в верхней части этой панели выберите пункт Форма.

      4. На вкладке «Формат» панели «Страница свойств» установите значение Да для свойства Режим таблицы.

      5. На вкладке Конструктор в группе Представления выберите пункт Режим таблицы.

        Примечание:  Часть отчета экспортировать нельзя. Однако можно выбрать или открыть таблицу или запрос, на которых основан отчет, и затем экспортировать часть данных в этот объект.

  3. На вкладке Внешние данные в группе Экспорт нажмите кнопку Excel.

  4. В диалоговом окне Экспорт — Электронная таблица Excel просмотрите предлагаемые имена файлов рабочей книги Excel (Access использует имена исходных объектов). При необходимости имя файла можно изменить.

  5. В поле Формат файла выберите нужный формат файла.

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

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

  7. Чтобы просмотреть конечный файл Excel после завершения операции экспорта, установите флажок Открыть целевой файл после завершения операции экспорта.

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

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

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

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

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

Что еще важно знать об экспорте

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

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

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

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

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

Решение проблем, связанных с отсутствующими и неверными значениями

В приведенной ниже таблице описаны различные способы устранения типичных ошибок.

Совет:  Если отсутствует всего несколько значений, введите их в книгу Excel самостоятельно, в противном случае исправьте исходный объект в базе данных Access и повторите экспорт.

Источник проблемы

Описание и решение

Вычисляемые поля

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

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

Многозначные поля экспортируются в виде списка значений, разделенных точками с запятой (;).

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

Графические элементы (например, эмблемы, содержимое полей объектов OLE и вложения, которые содержатся в исходных данных) не экспортируются. Их следует добавить на лист вручную после завершения операции экспорта.

График

При экспорте формы или отчета, содержащих объект Microsoft Graph, он не экспортируется.

Данные в неверном столбце

Значения Null на целевом листе иногда заменяются данными, которые должны находиться в следующем столбце.

Отсутствующие значения даты

Значения дат, предшествующих 1 января 1900 г., не экспортируются. Соответствующие ячейки на листе содержат значения Null.

Отсутствующие выражения

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

Отсутствующие подчиненные формы, отчеты и таблицы

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

Отсутствующие или неправильно отформатированные столбцы

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

Форматирование столбца в Excel

  1. Откройте целевую книгу Excel и перейдите на лист с экспортированными данными.

  2. Щелкните нужный столбец или выделенный диапазон ячеек правой кнопкой мыши и выберите пункт Формат ячеек.

  3. На вкладке Число в группе Числовые форматы выберите нужный формат, например Текстовый, Числовой, Дата или Время.

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

Значение «#» в столбце

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

Индикаторы или значения ошибки

Проверьте ячейки на наличие индикаторов ошибки (треугольников зеленого цвета в углу ячеек) или значений ошибки (строк, которые начинаются со знака #, а не с нужных данных).

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

Всем привет, сегодня мы поговорим о том, как можно выгрузить данные из 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

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

Сообщений: 42

1

24.03.2014, 09:40. Показов 13539. Ответов 25


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

Доброго времени суток!

Задача
Нужно из Access экспортировать отчет в Excel, содержащий несколько полей из одной (главной) таблицы и несколько из другой таблицы со связью многие ко многим (конкретно в моем случае, у одной организации может быть несколько сфер деятельности). Нужно это корректно отобразить в excel в виде списка, то есть поле — значение вот так:

Adress

____119991, Москва, Ленинские горы, дом 1
Industry___Информационные и коммуникационные технологии
__________Медицина, фармацевтика и биотехнологи
__________Энергоэффективность и энергосбережение

Спасибо!



0



Agapov_stas

3353 / 1771 / 83

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

Сообщений: 4,471

24.03.2014, 10:27

2

Если именно отчет, то:

Visual Basic
1
DoCmd.OutputTo acOutputReport, "Отчет", acFormatXLS, "Имя выходного файла", True

Если данные сразу из таблицы/запроса, то используйте CopyFromRecordset.



1



0 / 0 / 0

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

Сообщений: 42

24.03.2014, 11:28

 [ТС]

3

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

Если данные сразу из таблицы/запроса, то используйте CopyFromRecordset.

Подскажите пожалуйста как пользоваться методом CopyFromRecordset? Сильно не пинайте — я пока еще совсем зеленый…



0



Agapov_stas

3353 / 1771 / 83

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

Сообщений: 4,471

24.03.2014, 11:38

4

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

Подскажите пожалуйста как пользоваться методом CopyFromRecordset?

Допустим есть таблица(или запрос) «Таблица».

Visual Basic
1
2
3
4
5
6
7
8
9
10
Dim exApp As Object, rs As Object
Set exApp = CreateObject("Excel.application")
 
exApp.Workbooks.Add
exApp.Visible = True
Set rs = CurrentDb.OpenRecordset("Таблица")
exApp.Range("A1").CopyFromRecordset rs
 
Set exApp = Nothing
Set rs = Nothing



1



0 / 0 / 0

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

Сообщений: 42

24.03.2014, 12:40

 [ТС]

5

1. Может так будет понятнее проблема — в таком виде отчет криво экспортируется в Excel: http://yadi.sk/d/d0sjGODiL6jch (как бы я не игрался с конструктором).
2. Куда и как вводить код VB??



0



3353 / 1771 / 83

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

Сообщений: 4,471

24.03.2014, 12:44

6

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

Куда вводить код VB??

В модуль формы. Ну или в общем модуле и вызывать функцию.
Проще было бы помочь, если бы Вы показали пример(достаточно таблицы/запроса одной, на которой основан отчет Ваш).ъ

Не по теме:

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



1



0 / 0 / 0

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

Сообщений: 42

24.03.2014, 13:13

 [ТС]

7

В отчете, который будет потом в excel импортироваться несколько полей из таблицы «Организации» и одно поле из таблицы Сфера деятельности (Industries) (связь много — многозначная). Может это и через форму можно сделать, а не отчетом.

Во вложении: Схема данных, главная таблица(организации) и таблица Industries.



0



3353 / 1771 / 83

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

Сообщений: 4,471

24.03.2014, 13:31

8

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

несколько полей из таблицы «Организации» и одно поле из таблицы Сфера деятельности (Industries) (связь много — многозначная).

Сделайте запрос, включающий эти поля, и в рекордсете открывайте его(или строку запроса используйте сразу).



1



0 / 0 / 0

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

Сообщений: 42

24.03.2014, 13:55

 [ТС]

9

Agapov_stas, сделал запрос, в поле industries отражает только одну сферу деятельности (первую) и дублирует организации столько раз, сколько сфер деятельности у каждой из них.

Миниатюры

Экспорт отчета из access в excel
 



0



Модератор

Эксперт MS Access

11342 / 4661 / 748

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

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

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

24.03.2014, 14:05

10

похоже связи неправильно установлены



0



3353 / 1771 / 83

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

Сообщений: 4,471

24.03.2014, 14:10

11

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

и дублирует организации столько раз, сколько сфер деятельности у каждой из них.

Ну так выходит из Вашей схемы(связь многие-ко-многим). У одной организации несколько сфер деятельности. Как вариант перечислять их через запятую при выгрузке в Excel.



1



0 / 0 / 0

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

Сообщений: 42

24.03.2014, 14:14

 [ТС]

12

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

перечислять их через запятую при выгрузке в Excel

тогда можно сделать, чтобы так импортировалось:

Adress____119991, Москва, Ленинские горы, дом 1
Industry___Информационные и коммуникационные технологии, Медицина, фармацевтика и биотехнологи, Энергоэффективность и энергосбережение



0



0 / 0 / 0

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

Сообщений: 42

24.03.2014, 14:34

 [ТС]

13

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

Если именно отчет, то:
Код Visual Basic
1
DoCmd.OutputTo acOutputReport, «Отчет», acFormatXLS, «Имя выходного файла», True
Если данные сразу из таблицы/запроса, то используйте CopyFromRecordset.

1. Получается через запрос не могу задачу выполнить, так как связь много-многозначная с таблицей Industries.
2. Через отчет вид меня почти устраивает(вложение), вопрос только с импортом в должном виде.

В таком случае пользуюсь этим кодом «DoCmd.OutputTo acOutputReport, «Отчет», acFormatXLS, «Имя выходного файла», True» ?? Можно немного поподробнее с кодом…

Миниатюры

Экспорт отчета из access в excel
 



0



0 / 0 / 0

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

Сообщений: 42

24.03.2014, 14:56

 [ТС]

14

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

Код Visual Basic
1
DoCmd.OutputTo acOutputReport, «Отчет», acFormatXLS, «Имя выходного файла», True

Открыл модуль, вставил код, переименовал на наименование своего отчета — нажимаю RUN и выскакивает следующая таблица:

Миниатюры

Экспорт отчета из access в excel
 



0



Agapov_stas

3353 / 1771 / 83

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

Сообщений: 4,471

24.03.2014, 15:00

15

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

тогда можно сделать, чтобы так импортировалось:
Adress____119991, Москва, Ленинские горы, дом 1
Industry___Информационные и коммуникационные технологии, Медицина, фармацевтика и биотехнологи, Энергоэффективность и энергосбережение

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

Это в общий модуль:

Кликните здесь для просмотра всего текста

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Function ConcatFld(id_org As Integer) As String
Dim strSQL As String, rs As Object
strSQL = "Select Industries.Industry From Industries INNER JOIN Industries_Organizations ON Industries.[Код]=Industries_Organizations.Industry Where Organization=" & id_org
Set rs = CurrentDb.OpenRecordset(strSQL)
 
ConcatFld = ","
rs.MoveFirst
Do While Not rs.EOF
   ConcatFld = ConcatFld & "," & rs!Industry
   rs.MoveNext
Loop
ConcatFld = Right(ConcatFld, Len(ConcatFld) - 2)
Set rs = Nothing
End Function

В запросе использовать:

SQL
1
SELECT Adress, ConcatFld(OrganizationID) AS [Сферы] FROM Organizations

Ну и выводить в Excel уже этот запрос.



1



0 / 0 / 0

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

Сообщений: 42

24.03.2014, 15:13

 [ТС]

16

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

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

очень много организаций в таблице.

Agapov_stas, подскажите пожалуйста, как этим «DoCmd.OutputTo acOutputReport, «Отчет», acFormatXLS, «Имя выходного файла», True» кодом воспользоваться для импорта в Excel в виде списка (поле-значение). Что делать с этой табличкой «Macros», всплывающей при нажатии кнопки RUN?



0



Agapov_stas

3353 / 1771 / 83

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

Сообщений: 4,471

24.03.2014, 15:20

17

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

очень много организаций в таблице.

И что с того?

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

воспользоваться для импорта в Excel в виде списка (поле-значение).

Никак (вроде).

Повторюсь, выложите пример БД в виде тех трех табличек (можно без записей). На нем проще показать, если не понимаете о чем речь.

Добавлено через 1 минуту

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

очень много организаций в таблице.

Кстати, только вспомнил, если не указана сфера у организации, необходимо еще добавить условие в функции:

Visual Basic
1
If rs.BOF Then ConcatFld = "": Exit Function



1



0 / 0 / 0

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

Сообщений: 42

24.03.2014, 15:44

 [ТС]

18

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

Повторюсь, выложите пример БД в виде тех трех табличек (можно без записей). На нем проще показать, если не понимаете о чем речь.

Думаю проще будет всю БД показать.



0



3353 / 1771 / 83

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

Сообщений: 4,471

24.03.2014, 15:46

19

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

Думаю проще будет всю БД показать.

Да, только нормальный файл, а не битый.



1



0 / 0 / 0

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

Сообщений: 42

24.03.2014, 15:51

 [ТС]

20

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

Сообщение от funtik_137
Думаю проще будет всю БД показать.
Да, только нормальный файл, а не битый.

У меня открывается, перезалил все равно.



0



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

Выполните следующие действия, чтобы экспортировать базу данных Access в Excel:

  1. Откройте файл базы данных Access.
  2. Перейдите на вкладку «Внешние данные».
  3. Нажмите кнопку Excel в группе Экспорт.
  4. Щелкните Обзор.
  5. Назовите файл, выберите папку для сохранения файла экспорта и нажмите «Сохранить».
  6. Нажмите «ОК».
  7. Нажмите кнопку Закрыть.
  8. Найдите и откройте файл.

Откройте файл базы данных Access.

Перейдите на вкладку «Внешние данные».

Нажмите на Excel кнопка в Экспорт группа.

Как экспортировать данные из Access в Excel

Откроется диалоговое окно мастера «Экспорт — электронная таблица Excel».

Нажмите на Просматривать кнопка.

Откроется диалоговое окно сохранения файла.

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

Вернувшись в диалоговое окно мастера «Экспорт — таблица Excel», нажмите ХОРОШО.

Затем закройте диалоговое окно

Найдите файл, который вы экспортировали в Excel, и откройте его (это файл Excel).

Можете ли вы скопировать базу данных Access?

Да, вы можете скопировать базу данных Access в другую папку. Откройте папку, содержащую базу данных Access, которую вы хотите скопировать. Щелкните правой кнопкой мыши файл базы данных Access и выберите «Копировать» в контекстном меню. Перейдите в папку, в которую вы хотите вставить базу данных Access; щелкните правой кнопкой мыши и выберите «Вставить» в контекстном меню.

Читайте: Как создавать таблицы с помощью конструктора таблиц в Access

Какие типы файлов вы можете экспортировать в Access?

В Access вы можете экспортировать данные из Access в различных форматах, таких как список Excel, Word и SharePoint. Экспорт базы данных Access в Excel приведет к экспорту объекта на рабочий лист в файле Excel. При экспорте базы данных Access в Word выбранный объект будет экспортирован в форматированный текст. Экспорт базы данных Access в SharePoint приведет к экспорту выбранного объекта в SharePoint в виде списка.

Читайте: Как вставить файл PDF в лист Excel

Как экспортировать данные из Access в Excel более 65000 строк?

Чтобы экспортировать данные Access, содержащие более 65 000 строк с форматированием и макетом, вам потребуется настроить запрос на экспорт 65 000 строк за раз в отдельные электронные таблицы. После этого вам нужно скопировать и вставить их вместе в одну таблицу.

Мы надеемся, что это руководство поможет вам понять, как экспортировать базу данных Access в Excel.

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

​Смотрите также​ — там число​ & «‘ And​ Основание.id_Основания, Договор.id_Основания, Договор.Номер_основания,​ правильно считатет но​ where Номер_договора =​ яч A9 -​Delphi (‘Select *​ измененными данными​ Set WSOrig =​ автоматически информацию из​ в запросе по​ индикаторов ошибки (треугольников​Многозначные поля​

В этой статье

​ имена исходных объектов).​ форма​

​ можно экспортировать лишь​

​С помощью мастера экспорта​

​ строк больше миллиона​ Договор.Дата_заключения = #»​

​ Договор.Дата_основания, » _​ после цикла сразу​ [Введите №ГК] And​

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

​ Статья_договора.id_Статьи​ INTO Лист IN​далее уже делаешь​ ActiveSheet With WSOrig​ БД Access в​ значениям полей на​ зеленого цвета в​Многозначные поля экспортируются в​ При необходимости имя​Данные с форматированием или​ один объект базы​ можно экспортировать данные​ !!​ & Format(CDate(b), «dd/mm/yyyy»)​ & «Договор.Номер_договора ,​ же вылетает и​ Дата_заключения = [Введите​

Стандартные сценарии экспорта данных в Excel

  • ​2) стр 9​ ‘+»»+’C:Данные.xls’+»»+'[Excel 8.0;] From​ простой Update​ .Activate .Cells.Clear End​ Excel.​ форме​ углу ячеек) или​ виде списка значений,​ файла можно изменить.​ без него​ данных. Однако после​ из базы данных​4ylkov​ & «#») ‘Ввод​ Договор.Дата_заключения, Договор.Дата_исполнения, Договор.Содержание,​

  • ​ пишет Текущая запись​ дату заключения]» Set​ яч Q9- Статья_договора.Сумма​ Таблица’); (‘Select *​ДневнойДоширак​ With sSQL =​Я решил написать​Бормалей​ значений ошибки (строк,​ разделенных точками с​

Об экспорте данных в Excel

  • ​В поле​В ходе операции экспорта​ нескольких операций экспорта​ Access в файл​: Я то как​ данных для первой​ Статья_договора.Год, Статья_договора.id_Статьи, «​ отсутствует​ MyTable = CurrentDb.OpenRecordset(s1)​3) стр 6​ INTO Лист IN​:​ «SELECT КодIDD, IDD​ макрос для Excel,​

  • ​: в Access создаются​ которые начинаются со​ запятой (;).​Формат файла​

  • ​ создается книга.​ можно выполнить в​ формата, распознаваемого приложением​ раз и работаю​ страницы екселя With​ _ & «Статья_договора.Сумма​Frstr​Frstr​ яч U6- Статья_договора.Год​ ‘+»»+’C:Данные.xlsx’+»»+'[Excel 8.0;] From​qwertehok​ FROM IDD» MyConn​ теперь у меня​ все данные и​ знака​

  • ​Рисунки, объекты и вложения​выберите нужный формат​Существует​ Excel слияние нескольких​ Excel. В этой​ в 2007. Проблема​ app.ActiveWorkbook.Sheets(1) ‘Вставка в​ , Контрагент.Полное_наим, Контрагент.ИНН,​: Выложи бд, а​: 1. В шаблоне​4) стр 10​ Таблица’);но при выполнении​

  • ​, Спасибо! попробую.​ = ThisWorkbook.Path &​ выгружаются данные при​ эти данные нужно​#​Графические элементы (например, эмблемы,​ файла.​Таблица или запрос​

​ листов.​

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

​ статье описаны процедуры​ в том, что​ ячейку ad8 первой​ Контрагент.КПП, Контрагент.Адрес, Основание.Название_основания,​ то долго гадать​ экселя не было​ яч Q10- итого​ запроса выходит ошибка​Пытливый​ Application.PathSeparator & «Datta.accdb»​ запуске файла Excel,​ перенести в уже​, а не с​ содержимое полей объектов​Если при экспорте таблицы​Данные без форматирования​К началу страницы​ подготовки и экспорта​ при экспорте данных​ страницы и тд​ Статья.Наимен_статьи » _​ будем на кафейной​ строк, куда вставлять​

​ (сумма по годам​ что (обновление невозможно.​: Надо было не​ Set cnn =​ и по требованию​ готовый шаблон Excel​ нужных данных).​ OLE и вложения,​ или запроса требуется​Файл не перезаписывается. В​Прежде чем выполнять операцию​ данных в Excel,​ Access ругается не​ .[AD8] = Day(Date)​ & «HAVING Договор.Номер_договора​

​ гуще​

​ данные, надо добавить​

​ наверное можно сделать​

​ база данных или​

​ импортировать в Акцес,​

​ New ADODB.Connection With​

​ обновляются. Вроде метод​​ в нужные столбцы​К началу страницы​ которые содержатся в​

​ сохранить форматирование данных,​ книгу добавляется новый​

​ экспорта, следует проверить​ а также приведены​

​ зависимо от того​ .[AJ8] = Format(Date,​ = ‘» &​

​Ameli​ примерное кол-о пустых​ формулу в екселе)​ объект доступны только​ а сделать связь​

​ cnn .Provider =​

​ называется CopyFromRecordset.​Виссарион​

​Вам никогда не хотелось​ исходных данных) не​ установите флажок​ лист, которому присваивается​ данные, которые будут​ рекомендации по поиску​ в каком Office​ «mmmm») .[BD8] =​ a & «‘​

​: Без цикла все​2. Задание параметров,​

​5) стр 26​ для чтения) в​

​ с таблицей.​ «Microsoft.ACE.OLEDB.12.0» .Open MyConn​Проблему в том,​

​: Dim app As​ импортировать в Excel​ экспортируются. Их следует​

  1. ​Экспортировать данные с макетом​ имя объекта, из​ экспортироваться, на предмет​ и устранению типичных​ ты работаешь. Мне​ Format(Date, «yy») .[CI8]​ And Договор.Дата_заключения =​ отлично работает​

    ​ т.е. номера и​ яч F26- из​ чем причина? меняю​ДневнойДоширак​ End With Set​ что в документе​ Excel.Application Dim zapros​

​ список всех связанных​

​ добавить на лист​

​ и форматированием​

​ которого экспортируются данные.​

​ сообщений об ошибках​

​ неполадок, которые могут​ в принципе не​

​ = Format(Date, «dd.mm.yyyy»)​ #» & Format(CDate(b),​

​Все я другим​ даты, нужно перенести​

​ Договор.Содержание​

​ обратно и все​

​: еще вопрос по​

​ rst = New​ Access в некоторых​ As DAO.Recordset Dim​ источников данных из​ вручную после завершения​. Дополнительные сведения см.​ Если лист с​ и ошибочных значений.​ при этом возникнуть.​ принципиально, выгрузку можно​ .[CI19] = CStr(MyTable.Fields(«Договор.id_Основания»))​ «dd/mm/yyyy») & «#»)​

​ способом решил, спасибо!​

​ в начало программы,​6) стр 26​

​ нормально срабатывает.​

​ этому коду:​ ADODB.Recordset rst.CursorLocation =​ столбцах есть выпадающие​ SQLQ As String​ приложения базы данных​ операции экспорта.​ в разделе Подготовка​ таким именем уже​

​ Ошибки рекомендуется устранить​Экспорт данных в Excel:​ делать и в​ .[CI22] = CStr(MyTable.Fields(«Дата_основания»))​ ‘для второй страницы​

​ Ещё хотел узнать-​

Выполнение экспорта

  1. ​ перед открытием экселя​ яч AL26- из​qwertehok​

  2. ​Delphi (‘Select *​ adUseServer rst.Open Source:=sSQL,​ списки (то есть​ Dim strPathDot As​

    ​ Access? Если вы​

    ​График​ к операции экспорта.​ существует, Access предлагает​ до экспорта данных​ основы​ другие форматы (например​ .[A24] = CStr(MyTable.Fields(«Название_основания»))​

    ​ екселя: With app.ActiveWorkbook.Sheets(2)​ есть какая нибудь​​3. Условия отбора​

    1. ​ таблица Статья_договора Sum([Сумма])​: драйвер?​

    2. ​ INTO Лист IN​ ActiveConnection:=cnn, CursorType:=AdForwardOnly, LockType:=adLockOptimistic,​ эта таблица связана​​ String Dim strPathWord​​ работаете над сложным​При экспорте формы или​Примечание:​

      1. ​ либо заменить содержимое​​ в Excel. В​​Подготовка к экспорту​

      2. ​ .txt), потом просто​ & » №​ ‘Вставка в ячейку​

      3. ​ команда для выделения​ получились такими:​ — суммируются все​​ДневнойДоширак​​ ‘+»»+’C:Данные.xls’+»»+'[Excel 8.0;] From​

      4. ​ Options:=adCmdText Range(«B1:C1»).Value =​ с другими таблицами​ As String strPathDot​​ приложением Access, например​​ отчета, содержащих объект​​  При экспорте формы​​ соответствующего листа, либо​

      5. ​ противном случае в​​Выполнение экспорта​​ открыть этот формат​​ » & CStr(MyTable.Fields(«Номер_основания»))​​ F35 второй страницы​​ границ ячеек. Тоесть​​& «HAVING Договор.Номер_договора​

        ​ суммы по договору.​​: что за драйвер?​ Таблица’);можно как то​ Array(«КодIDD», «IDD») Range(«B2»).CopyFromRecordset​ в файле. Это​ = CurrentProject.Path &​ таким, которое содержит​ Microsoft Graph, он​ или отчета этот​

  3. ​ указать другое имя​​ ходе экспорта могут​​Что еще важно знать​​ через excell (кстати​​ & » от​​ поля «Содержание» и​​ чтобы те ячейке​

  4. ​ = ‘» &​​7) стр. 27​офис 2007​​ этот файл сохранять​ rst rst.Close cnn.Close​ обычная практика формирования​ «ShablonShablon.xlsx» ‘ Ваш​ ссылки на множество​ не экспортируется.​

  5. ​ флажок установлен по​​ нового листа.​​ возникнуть неполадки, а​ об экспорте​

  6. ​ в данном случае​ » & CStr(MyTable.Fields(«Дата_основания»))​ тд: .[F35] =​ в которые по​​ a & «‘​ яч AL27- итого​​qwertehok​ через SaveDialog?​ End Subвыложите пример​

    ​ выпадающих списков в​​ шаблон SQLQ =​ различных источников данных,​Данные в неверном столбце​ умолчанию и недоступен​Существует​

  7. ​ в ячейки листа​Решение проблем, связанных с​ ограничение в 64000​ .[AJ27] = CStr(MyTable.Fields(«Дата_заключения»))​​ CStr(MyTable.Fields(«Содержание»)) .[F44] =​ циклу заносятся данные​​ And Договор.Дата_заключения =​

    ​ (сумма наверное можно​: при чем тут​qwertehok​ базы, не могу​ Access, по-другому не​ «SELECT ;» ‘​​ может быть удобно​​Значения Null на целевом​ для изменения.​Таблица, запрос, отчет или​ Excel могут быть​

    ​ отсутствующими и неверными​​ тоже действует)​ .[AJ28] = CStr(s)​ CStr(MyTable.Fields(«Полное_наим»)) .[AU44] =​

  8. ​ становились с внешними​​ #» & Format(CDate(b),​​ сделать формулу в​

    ​ офис?​: в смысле сохранить?​ же я​ умею), а при​ Нужный запрос на​ создать список источников​ листе иногда заменяются​Чтобы просмотреть конечный файл​ форма​ вставлены пустые значения.​ значениями​ЛМВ​ .[AJ29] = CStr(MyTable.Fields(«Дата_исполнения»))​ CStr(MyTable.Fields(«Адрес»)) .[BH44] =​ границами?​ «dd/mm/yyyy») & «#»)Вводимый​ екселе)​в твоем случае​

​SaveDialog только указывает​

Что еще важно знать об экспорте

  • ​угадывать​ импорте данных в​ Ваши данные Set​ данных и их​ данными, которые должны​ Excel после завершения​Данные с форматированием​ Дополнительные сведения о​При экспорте данных в​

  • ​: А Вы с​ .[CJ27] = CStr(MyTable.Fields(«Номер_договора»))​ CStr(MyTable.Fields(«ИНН»)) .[BV44] =​Frstr​ номер договора, т.е.​

  • ​8) стр 35​ C:Данные.xls это не​ путь к файлу​вашу ситуациюСпасибо за​ excel копируются значения​

  • ​ zapros = CurrentDb.OpenRecordset(SQLQ)​ типов. Такой экспортированный​ находиться в следующем​ операции экспорта, установите​Файл перезаписывается экспортируемыми данными.​ проблемах, которые могут​ Excel приложение Access​

​ помощью екселя тащит​

Решение проблем, связанных с отсутствующими и неверными значениями

​ End With MyTable.Close​ CStr(MyTable.Fields(«КПП»)) .[C49] =​: я че-то ниче​

​ параметр а заключаем​​ яч F35 -​ просто экселька, это​после выполнения​ замечание и за​ именно кода (цифры),​ If zapros.RecordCount <>​ список будет особенно​ столбце.​

​ флажок​

​ Все имеющиеся листы​

​ возникнуть при экспорте​

​ создает копию выбранных​ из акцесса собираетесь​ Exit_Кнопка29_Click: Exit Sub​ Day(Date) .[I49] =​

​ не понимаю уже,​

​ в кавычки, т.к.​ из Контрагент.Полное_наим​ БД​Delphi if SaveDialog1.Execute​

​ помощь, сейчас попробую!​

​ а не названия,​ 0 Then strPathWord​ полезен, если вы​Отсутствующие значения даты​Открыть целевой файл после​ удаляются, и создается​ данных в Excel,​ данных, а затем​ или при помощи​

​ Err_Кнопка29_Click: MsgBox Err.Description​

​ Format(Date, «mmmm») .[W49]​ пора спать, наверное​ он текстовый, а​9) стр 35​

​а твой драйвер​

​ Thenу тебя в​Спасибо большое! Понял,​ которым соответствуют эти​ = CurrentProject.Path &​ работаете над приложением​

​Значения дат, предшествующих 1​

​ завершения операции экспорта​ новый лист с​ см. в разделе​ сохраняет их в​ акцесса кидать в​

​ Resume Exit_Кнопка29_Click End​

​ = Format(Date, «yy»)​Agapov_stas​ вводимую дату сначала​ яч AU35- из​ не знает что​ Код SaveDialog1.PathName будет​ как это работает!​ коды. А нужно​

​ «123.xlsx» ‘ Путь​ Access, которое изначально​

​ января 1900 г.,​.​ именем экспортируемого объекта.​ Решение проблем, связанных​ файле, который можно​ ексель? Из какой​ SubПС спасибо Ameli​ i = 9​: вот я имел​

​ преобразовываем в формат​ Контрагент.Адрес​

​ такое xlsx и​ ПУТЬ и этот​ Все получилось!Существуют различные​ название. Остальные столбцы,​ до файла куда​​ разрабатывалось не вами.​ не экспортируются. Соответствующие​​Если исходный объект был​ Данные листа Excel​ с отсутствующими и​ открыть в Excel.​ программы будете код​ большое!​

​ ‘Цикл по нашему​

  1. ​ виду такого плана​ даты с помощью​10) стр 35​ пишет ошибку​

  2. ​ путь пихай куда​ методы для экспорта​ которые без выпадающих​ сохранить Set app​​ В Access 2016 это​​ ячейки на листе​

  3. ​ открыт и одна​​ наследуют параметры форматирования​​ неверными значениями.​​ Если данные требуется​​ запускать?​alvk​​ набору записей для​​ команду-​​ функции CDate, потом​​ яч BH35 -​​ДневнойДоширак​​ хочешь​​ доступ в Excel.Вы​​ списков, копируются правильно.​

  4. ​ = New Excel.Application​​ сделать намного проще​​ содержат значения Null.​

​ или несколько записей​

​ исходного объекта.​​Если исходным объектом является​​ копировать из Access​SVM​:​ статей (вывод в​Worksheets(1).Range(«A1»).Borders.LineStyle = xlDoubleТолько​ применяем формат даты,​ Контрагент.ИНН​: а ты про​ДневнойДоширак​ должны писать долго​Может кто-нибудь сталкивался​ ‘app.Visible = True​

​ с помощью функций​

​Отсутствующие выражения​ для экспорта выделены​Данные всегда добавляются в​ таблица или запрос,​ в Excel достаточно​: 200000 не пробовал,​Frstr​​ ячейки екселя например​​ она делает границы​ и заключаем в​

​11) стр 35​

support.office.com

Экспорт сведений о связанных источниках данных в Excel

​ подключение? про провайдер?​: Спасибо!​ и много шансов​ с подобным. Очень​ Выводит на экран​ в диалоговом окне​Выражения, которые используются для​ до запуска операции,​ новый лист. Невозможно​ определите, как требуется​ часто, можно сохранить​ а 178000 экспортировал​, можно вопрос?​ всех номер статей​ толстыми линиями. Я​ решетки.​ яч BV35 -​ что делать в​Возник еще вопрос​ на ошибки при​ нужна поддержка. Никто​ Excel app.Workbooks.Add strPathDot​ «Диспетчер связанных таблиц».​ вычислений, не экспортируются​ можно установить флажок​

​ добавить данные в​ экспортировать данные: с​ параметры операции экспорта​ из Аксеса без​​А почему именно​​ (для первые две​​ теперь ищу как​​Ameli​ Контрагент.КПП​ таком случае? подключать​​ по этому коду:​​ экспорте данных. Лучший​

Диалоговое окно диспетчера связанных таблиц в Access с выделенной кнопкой

​ среди знакомых не​ ‘Добавляет книгу с​Откройте диалоговое окно «Диспетчер​ в Excel. Экспортируются​Экспортировать только выбранные записи​ имеющийся лист или​ сохранением форматирования или​ для повторного использования​ проблем, правда чуть​Having​ строчки цикла)). ‘Для​ называются тонки линии​

Книга Excel, в которой показана информация из связанной таблицы Access

​: Огромное Спасибо! Все​​12) и в​ кодом xlsx’ку провайдером?​Delphi (‘Select *​

support.office.com

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

​ вариант, который я​​ умеет работать в​
​ шаблоном With app.ActiveSheet​
​ связанных таблиц» в​ только результаты вычислений.​. Если требуется экспортировать​ именованный диапазон.​
​ без него. Выбранный​ и даже запланировать​ подождал (с расширением​, а не прописать​

​ цикла надо в​​Все я сделал​ понял, работает. Только​ стр 40 C40​ и какой нужен​ INTO Лист IN​ предпочел​ этих направлениях.​ .Range(«B13»).CopyFromRecordset zapros ‘​ Access 2016, для чего​ Формулу следует добавить​ все отображаемые записи,​К началу страницы​ способ экспорта влияет​ ее автоматический запуск​
​ XLSX). Может у​ условие в​ екселе заранее освободить​ все что хотел,​ вопросик ещё назрел.​ опять системную сегодняшнюю​ для этого? который​ ‘+»»+’C:Данные.xls’+»»+'[Excel 8.0;] From​Access to Excel Converter​
​Так выглядит код.​ Выводит Ваш запрос​ выберите​ в рабочий лист​

​ этот флажок необходимо​​Если целевая книга Excel​ на два аспекта​ через определенные интервалы​ Вас где-нибудь в​

​WHERE​​ побольше строчек: Do​​ выкладываю тут пример​​ Для ручной вбивки​ дату.​ офис 12?​ Таблица’);в файл «Данные»​, которая помогает мне,​

​ Может там нужно​​ с нужной ячейки​Внешние данные​ Excel вручную после​ снять.​ открыта, закройте ее​ целевого файла: объем​

​ времени.​​ настройках по умолчанию​?..​ While Not MyTable.EOF​ с объяснениями тк​ в ячейки как​Frstr​Frstr​ на один лист​ чтобы экспортировать большие​ что-нибудь прописать дополнительно​ в таблицу end​ >​ завершения операции экспорта.​Примечание:​ перед выполнением операции.​ экспортируемых данных и​В отделе или рабочей​ стоит формат 2003?​Вроде(?)​ app.Parent.Range(«a» & i).Select​ думаю что он​ обратится в данным​: [QUOTE=Ameli;2921835]Попробуйте выполнить запрос​: Прошу помощи. Буду​ записывается максимум 65536​ объемы данных из​ или изменить тип​ with app.Application.DisplayAlerts =​Диспетчер связанных таблиц​Отсутствующие подчиненные формы, отчеты​  Если записи не​На панели навигации исходной​ формат их отображения.​ группе для работы​У меня OFF​HAVING​ app.Parent.ActiveCell.FormulaR1C1 = CStr(MyTable.Fields(«Наимен_статьи»))​ многим пригодится. В​ из запроса? я​ параметров с помощью​ очень благодарен кто​ строк записей, можно​

​ ACCDB файл в​​ данных… не знаю.​​ False ‘ Убирает​​. Выберите нужные источники​ и таблицы​ выделены, этот флажок​

​ базы данных выберите​​ В приведенной ниже​ с данными используется​ 2010.​только замедляет выборку…(кажется..)​ app.Parent.Range(«AS» & i).Select​ интернете не так​ пробую так, не​ функции InputBox(), сохранить​ поможет сделать экспорт​ как то сделать​ Excel. Всего за​
​oleg_helgo​ вопросы Excel app.ActiveWorkbook.SaveAs​ данных и нажмите​
​При экспорте формы, отчета​ недоступен (неактивен).​

​ объект, который требуется​​ таблице представлены результаты​​ как Access, так​​ЛМВ​
​Agapov_stas​ app.Parent.ActiveCell.FormulaR1C1 = CStr(MyTable.Fields(«Год»))​
​ много можно найти​ получается-​ полученное значение в​ из запроса Access​

​ что если в​​ несколько секунд!!!!!!!!!!!!Их бин​​: надо создать запрос​​ strPathWord ‘ Сохраняет​ кнопку​ или таблицы экспортируется​Нажмите кнопку​ экспортировать.​ экспорта форматированных и​ и Excel. Данные​: Вот — как​:​
​ app.Parent.Range(«BI» & i).Select​ полезного на эту​.[BV44] = Контрагент.КППи​
​ переменную и в​ в ячейки шаблона​ файл сохраняется больше​ моя твоя не​ для​ файл app.Application.DisplayAlerts =​Экспорт в Excel​

​ только главная форма,​​ОК​
​Экспорт только части данных​
​ неформатированных данных.​ хранятся в базах​ вариант:​Agapov_stas​
​ app.Parent.ActiveCell.FormulaR1C1 = CStr(MyTable.Fields(«Сумма»))​ тему:​ так​ запрос для отбора​ Excel. В архиве​ чем 65536 строк​ понимайт.​присоединения​
​ True app.Application.Workbooks.Close ‘​.​ отчет или таблица.​.​Если объектом является таблица,​Экспорт​ данных Access, но​C:UsersmvlebedevDocumentsстарый ПКМои документыCDCD_5(семинар)TrainerCDПримеры​, кого-то нужно послать​ s = MyTable.Fields(«Сумма»)​Private Sub Кнопка29_Click()​.[BV44] = CStr(MyTable.Fields(«Контрагент.КПП»))и​ подставлять переменную:​ БД и Екселевский​ то они распределялись​ДневнойДоширак​названий и выгружать​ Закрывает книгу app.Quit​Access предложит указать расположение​ Необходимо повторить операцию​Если в ходе экспорта​
​ запрос или форма​Исходный объект​ для анализа и​ и приемыAccessЗагрузка таблицы​ почитать справку? Это​ + s i​
​ On Error GoTo​ так​a = InputBox(«Введите​ файл- шаблон. Запрос​ дальше на лист2​

​: Вот код:​​ уже запрос​ ‘ Закрывает Excel​​ для сохранения книги​​ экспорта для всех​ возникает ошибка, в​

​ и требуется экспортировать​​Поля и записи​ распространения его результатов​ БД в Excel​ разные вещи, where​ = i +​
​ Err_Кнопка29_Click Dim app​
​.[BV44] = CStr(MyTable.Fields(«КПП»))ПС​ №ГК»,»Значение по умолчанию»)​ или отчет называется-​ лист3 лист4 и​Delphi (‘Select *​Entschlossen​ End If Set​ Excel. После того​ подчиненных форм, отчетов​ Access отображается сообщение​ только часть данных,​Форматирование​ используется Excel. Группа​ таблицуЗагрузка таблицы БД​ производит отбор до​ 1 MyTable.MoveNext ‘В​ As Excel.Application Dim​Вопрос отпал. Получилось​ Set MyTable =​ Первичные сведения. Из​ т.д.?​ INTO Лист IN​: Не очень понимаю,​ zapros = Nothing​ как вы сделаете​ и таблиц, которые​ с описанием ее​ откройте объект в​Без форматирования​ выполняет экспорт данных​

​ в Excel таблицу.mht​​ группировки, а having:​ Диапозоне ячеек от​ strDOT As String​ с​ CurrentDb.OpenRecordset(«SELECT … «​ него необходимо вставить​
​qwertehok​ ‘+»»+’C:Данные.xls’+»»+'[Excel 8.0;] From​ как это сделать.​ Set app =​

​ это, Access выведет​ требуется экспортировать.​ причины. В противном​ режиме таблицы и​Таблица или запрос​
​ в Excel по​
​Виталий Тихвинский​Ameli​ A9 до DDi​ Dim MyTable As​.[BV44] = CStr(MyTable.Fields(«КПП»))Поставил​ _ & «​ данные в этот​: а взять xlsx​ Таблица’);им я экспортирую​ Не могли бы,​ Nothing​ сведения о связанных​Отсутствующие или неправильно отформатированные​ случае приложение Access​ выберите необходимые записи.​Примечание:​ мере необходимости, но​Загрузка таблицы Б.Д,​:​ я делаю видными​ DAO.Recordset ‘для включения​ перед циклом​ HAVING Договор.Номер_договора =​ шаблон. Тоесть по​ нельзя?​ данные в файл,​ пожалуйста, посоветовать какой-нибудь​Бормалей​ источниках данных в​ столбцы​ экспортирует данные и​Открытие формы в режиме​​  Формы и отчеты​​ этот процесс требуется​ в Excel таблицу​Не по теме:​
​ границы ячеек (обычные​ библиотеки ексель жмем-​а как правильно​ ‘» & a​ кнопке с формы​ДневнойДоширак​ а как потом​ пример наглядный?​:​ новой книге. Вы​Если ни один из​​ в соответствии с​​ таблицы​ невозможно экспортировать без​ сделать более эффективным.​Необходимо в редакторе​Ну-ну…Как говорится, «Флаг тебе​ черные линии): app.Parent.Range(«A9:DD»​ Tools-References- Microsoft Excel​ написать такую конструкцию?​

CyberForum.ru

Импорт экспорт данных из Access в Excel и обратно

​ & «‘»)-переменная заключена​​ должен в итоге​
​: к сожалению не​ импортировать данные из​Вот текущий код​Бормалей​ увидите имя связанного​ столбцов на конечном​ параметрами, выбранными на​    ​ форматирования.​

​Вы используете Access, но​​ VBA в меню​ в руки!..боец…»:D​ & i).Borders.LineStyle =​
​ 11 ‘в переменные​.[A24] = CStr(MyTable.Fields((«Название_основания»)))​

​ в кавычки, если​​ открыться готовый екселевский​ везде может быть​ этого файла обратно​

​Private Sub Workbook_Open()​​, этот код писать​
​ источника данных, сведения​ листе не отформатирован,​ этапе 7, открывает​Чтобы открыть форму, дважды​Экспортируются все поля и​ ваш руководитель предпочитает​ Сервис-ссылки включить библиотеку​Риторическая фраза,вастЧе-то…​ xlContinuous Loop ‘Итого​ a и b​ & » №​ тип поля текстовый​ документ с вставлеными​ установлен офис читающий​ в базу?​ Dim cnn As​ в Access или​ о нем и​ повторите операцию экспорта,​ либо не открывает​ щелкните ее.​ записи базового объекта.​ работать с данными​ Microsoft DAO 3.5​Я имел ввиду​

​ и Сумма выводятся​​ мы заносим данные​ » & CStr(MyTable.Fields((«Номер_основания»)))​
​Так не работает..​ данными. Далее я​
​ xlsx, много народу​qwertehok​
​ ADODB.Connection Dim rst​
​ Excel?​ его тип.​
​ установив флажок​ целевую книгу в​Щелкните форму правой кнопкой​Параметры свойства «Формат» пропускаются​ в Excel. Вам​ object library.​ несколько иное(действительно ли​ после вывода ячеек​
​ из импут бокса,​ & » №​

​ а нельзя вместо​​ расписал по пунктам.​​ знаю кто еще​​: прочитать xls Инструкция:​

​ As ADODB.Recordset Dim​​HelenasVoice​Примечание:​Экспортировать данные с макетом​ Excel. Затем в​

​ мыши, а затем​​ в ходе операции.​ приходится регулярно копировать​
​Имя объекта Workspaces(0)​ необходимо это ТС-у)..Ну​ из цикла: app.Parent.Range(«AS»​ дальше будем их​ » & CStr(MyTable.Fields((«Дата_основания»)))​ теста запроса обратиться​

​ Спасибо.​​ 2003ий юзает. а​
​ Использование Excel из​ WSOrig As Worksheet​
​: Этот код я​
​ Диалоговое окно «Диспетчер связанных​ и форматированием​ Access открывается диалоговое​ щелкните элемент​Для полей подстановки экспортируются​ данные в Excel,​

​ в указанных примерах​​ да ладно..​
​ & i).Select app.Parent.ActiveCell.FormulaR1C1​ использовать в запросе:​
​Frstr​ к имени существующего​например для для​ сколько там в​ Delphi​ Dim WSTemp As​ выдернул из базы​ таблиц» недоступно при​в мастере. Если​ окно, в котором​Режим таблицы​ только значения кодов​ но вам хотелось​ можно опустить.​minob​

​ = «ИТОГО :»​​ a = InputBox(«Введите​: Вроде все так,​

​ запроса?​​ договора 111 (в​ лист входит строк​записать в БД​ Worksheet Dim sSQL​ как пример. И​ разработке веб-приложений Access.​ же только некоторые​ можно создать спецификацию​. Если он недоступен,​ подстановки.​ бы автоматизировать этот​
​Dim db As​:​

​ ‘Слово ИТОГО пишется​​ №ГК», «Значение по​ только скобки лишние​Ameli​
​ запросе и отчете​ у xlsx, знаю​ с помощью SQL​ As String Dim​ он не является​Виссарион​

​ столбцы имеют форматирование,​​ со сведениями об​ выполните действия, описанные​Содержимое полей гиперссылок экспортируется​ процесс ради экономии​ Database, r As​Agapov_stas​ жирным шрифтом: app.Parent.ActiveCell.Font.Bold​ умолчанию») b =​ и вместо второго​: нет​ вводим 111)​ что больше но​droider​ FinalRow As Long​ эталоном . Просто​: Здравствуйте!​ отличное от исходного,​ экспорте.​ ниже.​ в виде столбца​ времени.​

​ Recordset​​, WHERE не работает​ = True app.Parent.Range(«BI»​ InputBox(«Введите дату ГК»,​ «№» наверно «от»​
​Выложите бд​Что надо брать​

​ максимальное не знаю?​​: Можно так Импорт​ Set WSOrig =​ как один из​Возникла проблема!​
​ выполните нужные действия​К началу страницы​Выберите пункт​ текста, в котором​В приложении Access нет​Set db =​ в запросе с​ & i).Select app.Parent.ActiveCell.FormulaR1C1​ «Значение по умолчанию»)​.[A24] = CStr(MyTable.Fields(«Название_основания»))​Frstr​ из акцесса в​такое вообще одним​ из Excel в​ ActiveSheet With WSOrig​

​ вариантов выгрузки. Писать​​Нужно из MS​

​ в Excel вручную.​​Сведения о том, как​
​Режим конструктора​

​ ссылки отображаются в​​ команды «Сохранить как”​ Workspaces(0).OpenDatabase(«Полный путь к​
​ группировкой, вот, что​ = CStr(s) .[AL35]​ ‘Открываем эксель, в​ & » №​
​: Пароли у всех​ ексель- выделил желтым.​ запросом можно сделать?​ DBGridEh​

​ .Activate .Cells.Clear End​​ надо в Access​ Access перенести форму​Форматирование столбца в Excel​ сохранить сведения об​.​ формате отображаемый_текст#адрес#.​ с возможностью сохранения​ базе и ее​

CyberForum.ru

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

​ тебе хотел сказать​​ = CStr(s) .[AL36]​ нем книгу на​ » & CStr(MyTable.Fields(«Номер_основания»))​ пользователей 123. Отчет​стр1 в екселе​qwertehok​ДневнойДоширак​ With sSQL =​ в Vb редакторе​ в готовую таблицу​Откройте целевую книгу Excel​ экспорте в виде​Нажмите клавишу F4, чтобы​С форматированием​ данных в формате​ имя»)​alvk​ = CStr(s) End​ основе шаблона: Set​ & » от​
​ и запрос называются​1) Дата. в​: тут не обязателем​: Спасибо народ!​
​ «SELECT ÊîäIDD, IDD​ с подключенной библиотекой​ MS Excel​
​ и перейдите на​
​ спецификации, которую можно​ отобразить панель задач​Таблица, запрос, отчет или​ Excel. Чтобы скопировать​
​Set r =​Ameli​ With MyTable.Close ‘Создаем​ app = New​
​ » & CStr(MyTable.Fields(«Дата_основания»))​ «Первичные сведения».​
​ екселе 8 строчка.​ сам офис, достаточно​Возник другой вопрос,​ FROM IDD» MyConn​
​ Excel.​знаю, что надо​ лист с экспортированными​ использовать повторно, см.​ «Страница свойств».​
​ форма​ данные в Excel,​ db.OpenRecordset(«Имя загружаемой таблицы»)​
​: Если это была​ вновь набор записей​ Excel.Application app.Visible =​Ameli​
​Код находится на​ дата вводится 2​ апдейт поставить​
​ а можно как​ = ThisWorkbook.Path &​Способы передачи данных​ использовать VBA, но​ данными.​ в статье Сохранение​
​В раскрывающемся списке в​Экспортируются только поля и​ необходимо воспользоваться функций​
​Cells(i, j).CopyFromRecordset r​ шутка, то почему​ — т.к. у​
​ True ‘шаблон с​
​: Ругается на конструкцию-​ кнопке со значком​ раза -​
​запросом можно, но​ то обновлять базу​
​ Application.PathSeparator & «Datta.accdb»​ из MS ACCESS​
​ не знаю как!​Щелкните нужный столбец или​ параметров операции импорта​ верхней части этой​ записи, отображаемые в​
​ экспорта, описанной в​r.Close​ нет смайлика с​
​ меня конфликтовало из-за​ именем Шаблон Первич​ элемент не обнаружен​ ексель напротив кнопки​первый раз полностью​
​ в новых (от​ а не дописывать​ Set cnn =​ в Excel​ ПОМОГИТЕ!​
​ выделенный диапазон ячеек​ или экспорта в​ панели выберите пункт​
​ текущем представлении или​ этой статье, либо​db.Close​
​ улыбкой?​ того что документ​ Свед хранится в​
​ в данном семействе.​ «Первичные сведения о​ (где стоит 20​
​ 2014) версиях SQL​ в нее? то​ New ADODB.Connection With​А тут вообще​

​alvk​​ правой кнопкой мыши​ виде спецификации.​Форма​ объекте. Фильтрованные записи,​ скопировать данные Access​‘можно загрузить данные​Из справки по​
​ екселя на 2х​ тойже дерриктории что​оказывается проблема не​ ГК» в форме​ апреля 2011) ячейки​ — там есть​ есть например БД​ cnn .Provider =​ много полезного​: Есть не один​
​ и выберите пункт​Дополнительные сведения о запуске​.​ скрытые столбцы таблицы,​ в буфер обмена,​

​ в Excel таблицу​​ HAVING​
​ страницах. Set MyTable​

​ и БД: strDOT​​ в этой конструкции​ «Договорной отдел Отчеты».​ AD8 AJ8 BD8,​ конструкция для нарезки​
​ заполнена наименованиями и​ «Microsoft.ACE.OLEDB.12.0» .Open MyConn​oleg_helgo​ вариант экспорта данных​Формат ячеек​ спецификаций см. в​
​На вкладке «Формат» панели​ а также не​ а затем вставить​ и на прямую​

​minob​​ = CurrentDb.OpenRecordset(«SELECT Договор.id_Договора,​
​ = CurrentProject.Path &​ а вообще он​Для отчета лучше​второй сокращенно (20.04.2011)​ и вывода страницы​ их количеством, делаю​ End With Set​:​ а Excel. Зависит​.​ статье Выполнение сохраненной​ «Страница свойств» установите​ отображаемые в форме​ их в таблицу​ без указателей​, я всегда думала,​ Основание.id_Основания, Договор.id_Основания, «​ «» & «Шаблон​ не хочет почему​ всего забивать такой​ CI8.​ДневнойДоширак​ экспорт в файл​ rst = New​Бормалей​ от многих условий​
​На вкладке​ операции импорта или​ значение​ или отчете поля​ Excel.​Cells(i, j).CopyFromRecordset _​ что сгруппированные данные​ _ & «Договор.Номер_основания,​

​ Первич Свед.xlt» app.Workbooks.Add​​ то воспринимать конструкцию​ ГК- № 25к,​Эта дата должна​: а как тогда​ а потом в​
​ ADODB.Recordset rst.CursorLocation =​, помогите пожалуйста!​ — есть ли​Число​ экспорта.​
​Да​ не экспортируются.​
​Можно экспортировать таблицу, запрос,​Workspaces(0).(«Полный путь к​ можно отбирать только​ Договор.Дата_основания, Договор.Номер_договора, Договор.Дата_заключения,​ strDOT ‘Создаем набор​ типа​ дата 22.04.2011​ быть сегодняшняя. Тоесть​ можно организовать разделение​ этом файле например​ adUseServer rst.Open Source:=sSQL,​пишет user-defined type​ шаблон ексель-файла или​в группе​Дополнительные сведения о запуске​для свойства​В мастере соблюдаются параметры​

​ форму или отчет,​​ базе и ее​ с помощью HAVING.​ » _ &​ записей. Текст запроса​.[CI19] = CStr(MyTable.Fields(«id_Основания»))Хотя​Ameli​ системная дата на​ по 65536 строк?​ меняю количество у​
​ ActiveConnection:=cnn, CursorType:=AdForwardOnly, LockType:=adLockOptimistic,​ not defined​
​ надо в новый​Числовые форматы​
​ спецификаций в определенное​
​Режим таблицы​ свойства «Формат».​
​ а также отдельные​ имя»).OpenRecordset(«Имя загружаемой таблицы»)​
​А теперь поняла,​ «Договор.Дата_исполнения, Договор.Содержание, Статья_договора.Год,​
​ берем так- сначала​ до этого с​: создайте запрос w1​ момент создания отчета.​ я для проверки​

​ одного наименования, как​​ Options:=adCmdText Range(«B1:C1»).Value =​это из-за того​ файл, данные помещаются​выберите нужный формат,​
​ время см. в​.​В случае полей подстановки​ записи в представлении.​Где i, j​

​ что, если поле​​ Статья_договора.id_Статьи, Статья_договора.Сумма, «​ создаем запрос с​ КПП прошло.​
​Код SELECT Договор.id_Договора,​2) 19 строчка​ пробовал в два​ потом импортировать этот​ Array(«ГЉГ®Г¤IDD», «IDD») Range(«B2»).CopyFromRecordset​ что библиотеки эксель​
​ в целевую таблицу​ например​ статье Планирование импорта​
​На вкладке​
​ экспортируются значения подстановки.​В приложении Microsoft Excel​ – строка и​ участвует в статистической​ _ & «Контрагент.Полное_наим,​
​ помощью конструктора, потом​Добавлено через 49 минут​ Основание.id_Основания, Договор.id_Основания, Договор.Номер_основания,​ екселя CI19 -​
​ запроса делать, указывал​ файл обратно в​ rst rst.Close cnn.Close​ нет? как ее​ сплошняком или в​Текстовый​​ или экспорта.​Конструктор​
​При экспорте полей гиперссылок​ есть команда импорта​

​ столбец, откуда начинаем​​ функции, тогда HAVING​ Контрагент.ИНН, Контрагент.КПП, Контрагент.Адрес,​ открываем его в​

​Разобрался- где он​​ Договор.Дата_основания, Договор.Номер_договора, Договор.Дата_заключения,​ вместо цифры 2​ просто у первого​ БД обновляя там​ End Sub​ подключать?​ несколько диапазонов. Или​,​

​Сведения о том, как​​в группе​ значения экспортируются в​ данных из базы​ загружать таблицу Б.Д.​

​4ylkov​​ Основание.Название_основания, » _​ режиме SQL и​
​ требует указание названия​ Договор.Дата_исполнения, Договор.Содержание, Статья_договора.Год,​ ставится из акцесса​ писать на лист1​ эти данные? или​alvk​oleg_helgo​ вообще по одному​Числовой​ изменить имя спецификации,​Представления​

​ виде гиперссылок.​​ данных Access. Ее​R Dmitry​: При работе у​

​ & «Статья.Наимен_статьи FROM​​ вставляем сюда: Set​ таблицы перед полем​ Статья_договора.id_Статьи, Статья_договора.Сумма, Контрагент.Полное_наим,​
​ ставится из Основание.id_Основания​ если 65536 и​ например изменил количество​: строчка запроса будет​:​
​ полю в разные​,​ удалить ее или​выберите пункт​При экспорте полей форматированного​ можно использовать вместо​: У меня и​ меня возникла необходимость​ Статья INNER JOIN​ MyTable = CurrentDb.OpenRecordset(«SELECT​
​ а где то​ Контрагент.ИНН, Контрагент.КПП, Контрагент.Адрес,​3) 22 строчка​ все работало нормально​ и еще дописал​ посложнее —сделайте запрос​HelenasVoice​ ячейки.​Дата​ обновить имена исходных​Режим таблицы​ текста текст экспортируется​ команды экспорта Access,​ в 2007 и​ экспортировать данные из​ (Основание INNER JOIN​ Договор.id_Договора, Основание.id_Основания, Договор.id_Основания,​ нет.​ Основание.Название_основания, Статья.Наимен_статьи FROM​ екселя яч CI22​ ~90000 записей писало​ новое наименование, то​ в конструкторе запросов,​, зайдите в редактор​Если шаблон есть,​или​ файлов, см. в​.​ без форматирования.​ однако с помощью​ в 2010 стандартными​ таблицы Access в​ (Контрагент INNER JOIN​ » _ &​Вот ещё вопрос​ Статья INNER JOIN​ из — Договор.Дата_основания​ в один файл​ в БД потом​ затем перенесите в​ ВБА=>меню Tools=>References. Откроется​ то его открывают​Время​ статье Задачи управления​Примечание:​Выберите целевую книгу и​ команды импорта в​ средствами отлично все​ excell, однако стандартные​ (Договор INNER JOIN​ «Договор.Номер_основания, Договор.Дата_основания, Договор.Номер_договора,​ сделал цикл а​ (Основание INNER JOIN​4) 24 строчка​ на два листа​ надо обновить еще​ код или применяйте​ список библиотек. Подключенные​ средствами офисной автоматизации​.​ данными.​ Часть отчета экспортировать нельзя.​ ее формат. Имейте​ Excel можно импортировать​ экспортируется в excel.​ интсрументы, которые есть​ Статья_договора ON Договор.id_Договора​ Договор.Дата_заключения, » _​ он пишет- текущая​ (Контрагент INNER JOIN​ екселя яч A24​ в одном 65536​ и дописать данные​ напрямую​ с галками. В​ и переносят рекордсет​Нажмите кнопку​К началу страницы​ Однако можно выбрать​ в виду, что​ только таблицы и​ЛМВ​ в Access (или​ = Статья_договора.id_Договора) «​ & «Договор.Дата_исполнения, Договор.Содержание,​ запись отсутствует. Почему?​ (Договор INNER JOIN​ из — Договор.id_Основания,​ записей на втором​ как это все​при копировании кода​ списке выберите Microsoft​ запроса-источника формы с​ОК​В приведенной ниже таблице​ или открыть таблицу​ отчеты можно экспортировать​ запросы. Дополнительные сведения​: Еще ссылка:​ Excell) мне не​ _ & «ON​ Статья_договора.Год, Статья_договора.id_Статьи, Статья_договора.Сумма,​s = 0​ Статья_договора ON Договор.id_Договора​ Договор.Номер_основания и Договор.Дата_основания​ все остальное, но​ можно реализовать?​ на форум не​ Excel XX.0 Object​ наложенными фильтрами в​.​ описаны различные способы​ или запрос, на​ только в более​ см. в разделе​SVM​ подходят, так как​ Контрагент.id_Контрагента = Договор.id_Контрагента)​ » _ &​ Do While Not​ = Статья_договора.id_Договора) ON​5) 27 стр​ если записей допустим​qwertehok​ забывайте переключатся на​ Library и поставьте​ ексель. Как переносить​Значение «#» в столбце​ устранения типичных ошибок.​ которых основан отчет,​ старом формате XLS​ справки Excel Подключение​: А вообще не​ объем данных очень​ ON Основание.id_Основания =​ «Контрагент.Полное_наим, Контрагент.ИНН, Контрагент.КПП,​ MyTable.EOF s =​ Контрагент.id_Контрагента = Договор.id_Контрагента)​ екселя яч AJ27​ ~500000 то как​: проверить данные по​ русскую раскладку клатиатуры​ галку. Библиотека будет​ зависит от требований​Значение​Совет:​ и затем экспортировать​ (но не в​ к внешним данных​ понятно зачем столько​ велик (около 200000​ Договор.id_Основания) ON Статья.id_Статьи​ Контрагент.Адрес, Основание.Название_основания, «​ MyTable.Fields(«Сумма») + s​ ON Основание.id_Основания =​ из — Договор.Дата_заключения​ тогда быть чтобы​ ключевому полю​Не очень понимаю,​ доступна.​ и устройства шаблона.​#​  Если отсутствует всего​ часть данных в​ формате XLSX).​ и их импорт.​ много выводить в​ записей), а в​ = Статья_договора.id_Статьи «​ _ & «Статья.Наимен_статьи​ MyTable.MoveNext Loop .[AJ28]​ Договор.id_Основания) ON Статья.id_Статьи​6) 28 стр​ 100500 запросов не​например у тебя​ как это сделать.​XX.0 — номер​Более конкретно можно​может содержаться в​ несколько значений, введите​ этот объект.​В процессе экспорта Access​Экспортировать макросы и модули​ Ексель.​ обоих продуктах Microsoft​ _ & «GROUP​ FROM Статья INNER​ = s​ = Статья_договора.id_Статьи GROUP​ екселя яч AJ28​ писать?​ в базе​ Не могли бы,​ версии на Вашем​ сказать, если будут​ столбце, который соответствует​ их в книгу​На вкладке​ предлагает указать имя​ нельзя. При экспорте​Можно выводить через​ стоит ограничение на​ BY Договор.id_Договора, Основание.id_Основания,​ JOIN (Основание INNER​Добавлено через 23 часа​ BY Договор.id_Договора, Основание.id_Основания,​ из — таблица​qwertehok​

​101101 Яблоки зеленые​​ пожалуйста, посоветовать какой-нибудь​​ ПК.​​ выложены шаблон екселя​
​ логическому полю формы.​​ Excel самостоятельно, в​​Внешние данные​ конечной книги. В​​ формы, отчета или​​ DAO Как было​
​ 64000. Может быть​​ Договор.id_Основания, Договор.Номер_основания, Договор.Дата_основания,​​ JOIN (Контрагент INNER​

​ 57 минут​​ Договор.id_Основания, Договор.Номер_основания, Договор.Дата_основания,​​ Статья_договора Sum([Сумма]) -​​: не делать такого​ 100 кг​ пример наглядный?​Можно конечно и​ и база данных​

​ Это может быть​​ противном случае исправьте​

​в группе​

​ приведенной ниже таблице​ таблицы с подчиненными​
​ описано выше только​
​ у кого то​ » _ &​ JOIN (Договор INNER​Кто-нибудь может помочь​

​ Договор.Номер_договора , Договор.Дата_заключения,​​ суммируются все суммы​​ разбиения — основной​​в эксельке​Вот текущий код​ без подключения библиотеки​Панург​​ результатом запуска операции​

​ исходный объект в​​Экспорт​ представлена сводка случаев​ формами, отчетами или​ самое необходимое, используя​
​ есть едеи на​ «Договор.Номер_договора , Договор.Дата_заключения,​

​ JOIN Статья_договора ON​​ с циклом?​ Договор.Дата_исполнения, Договор.Содержание, Статья_договора.Год,​ по договору.​ и самый правильный​
​101101 Яблоки зеленые​Private Sub Workbook_Open()​ в референсах, с​: А сверху прикреплена​

CyberForum.ru

Экспорт данных из Access в Excell при большом количестве данных

​ экспорта из области​​ базе данных Access​нажмите кнопку​ создания новой книги​ таблицами экспортируется только​ вместо наименования таблицы​ этот счет?​ Договор.Дата_исполнения, Договор.Содержание, Статья_договора.Год,​ Договор.id_Договора = Статья_договора.id_Договора)​Frstr​ Статья_договора.id_Статьи, Статья_договора.Сумма ,​7) 29 стр​ совет​ 120 кг​ Dim cnn As​ помощью т.н. «позднего​ тема Путеводитель по​ переходов или режима​ и повторите экспорт.​

​Excel​ или перезаписи имеющейся.​ главная форма, отчет​ текст SQL запроса​

​Простое резание таблицы​​ Статья_договора.id_Статьи, » _​ » _ &​: С циклом все​ Контрагент.Полное_наим, Контрагент.ИНН, Контрагент.КПП,​ екселя яч AJ29​

​подумай еще раз​​ты эксельку импортируешь​ ADODB.Connection Dim rst​ связывания». Но лучше​ форуму с целым​ формы. Чтобы устранить​Источник проблемы​.​Целевая книга​ или таблица. Все​ЛМВ​ и экспортирование по​ & «Статья_договора.Сумма ,​ «ON Контрагент.id_Контрагента =​ нормально, поле Сумма​ Контрагент.Адрес, Основание.Название_основания, Статья.Наимен_статьи​ из — Договор.Дата_исполнения​ над заданием.​ во временную таблицу,​ As ADODB.Recordset Dim​

​ сначала потренироваться с​​ разделом про Эксель.​ эту ошибку, откройте​Описание и решение​В диалоговом окне​Исходный объект​ подчиненные формы, отчеты​: Еще статья, куча​ частям, мне не​

​ Контрагент.Полное_наим, Контрагент.ИНН, Контрагент.КПП,​​ Договор.id_Контрагента) ON Основание.id_Основания​ есть в рекордсете?​ и обращайтесь к​8) 27 стр.​ДневнойДоширак​ делаешь Join по​ WSOrig As Worksheet​ подключенной​Виссарион​
​ форму в режиме​Вычисляемые поля​

​Экспорт — Электронная таблица​​Экспортируемые данные​ и таблицы следует​
​ способов вывода в​ кажется изящным способом)​ Контрагент.Адрес, Основание.Название_основания, Статья.Наимен_статьи​ = Договор.id_Основания) ON​Ameli​

​ нему​
​ екселя CJ27 -​: подскажи тогда я​
​ ключевому полю, в​ Dim WSTemp As​oleg_helgo​:​ таблицы, прежде чем​
​Экспортируются результаты вычисляемых полей;​ Excel​Результат​

​ экспортировать в Excel​ ексель и сравнение​www​

​ » _ &​ Статья.id_Статьи = Статья_договора.id_Статьи​: Да, есть. Он​Код s1=»select *​

​ Договор.Номер_договора​ вот тут меняю​

​ условие вставляешь Количество_бд<>Количество_xls​
​ Worksheet Dim sSQL​

​: Помогите, пожалуйста!​

​Виссарион​ экспортировать данные.​ выражения, на основе​просмотрите предлагаемые имена​

​Не существует​
​ отдельно.​ +/- и скорости​: Переходи на Office​

​ «HAVING Договор.Номер_договора =​ » _ &​ считает. Сейчас сделал​ from w1 «​

​стр 2 екселя​​ формат xls на​ и у тебя​ As String Dim​Третий день мучаюсь.​, может тебе так​

​Индикаторы или значения ошибки​​ которых производится вычисление,​

​ файлов рабочей книги​​Таблица, запрос, отчет или​В ходе операции экспорта​ вывода.​ 2007 или 2010​
​ ‘» & a​ «GROUP BY Договор.id_Договора,​ с месадж боксом-​ s1=s1 & «​1) стр 9​ xlsx​

​ получается таблица с​​ FinalRow As Long​Задача такая: выгружать​ подойдёт? Фильтрация данных​Проверьте ячейки на наличие​ не экспортируются.​

planetaexcel.ru

​ Excel (Access использует​

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

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

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

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

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

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

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

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

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

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

Экран 1

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

Перейдем к более интересной задаче, это реализация той же загрузки из 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 ‘проверить, что пользователь, если он выбрал шаблон, затем начать работу Если FileDialog.Show = False Then ‘Если нет, то выйти Set dlgFile = Nothing Exit Sub End If’ получить путь к пути к файлу = Trim (FileDialog.SelectedItems (1)) ‘Удалить переменную Set FileDial og = Nothing If path «» Then ‘Построить график ошибок при ошибке GoTo Err_testbutton_Click’ Создать объект Word Set WordOb = CreateObject («Word.document») ‘Установить для нашего документа значение из шаблона Set WordOb = GetObject (path) ‘Установите значение для слова. Application Object Set WordApOb = WordOb.Parent’ сделайте слово приложения видимым WordApOb.Visible = True ‘найдите наше поле в шаблоне WordOb.Bookmarks («mytestpole»). Выберите «установить новое значение из нашего набора записей WordApOb.Selection.TypeText Text: = Nz (rsd.Fields (» field «). Value,» «)» и так далее для всех полей «в конце перейдите к начало нашего документа WordApOb.Selection.Goto wdGoToFirst ‘и активируйте его WordApOb.Activate’ Удалите переменные Set WordOb = Nothing Set WordApOb = Nothing Exit_testbutton_Clicktest: Exit Sub Err_testbutton MsgBox.Description ‘в случае ошибки мы сделаем следующее без сохранения WordOb.Close (wddonotsavechanges) WordApOb.Quit ‘, а также удалить переменные Set WordOb = Nothing Set WordApOb = Nothing Resume Exit_testbutton_Click End End Sub

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

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

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

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

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

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

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’ Query database 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 способ — если источник данных имеет только одну строку с XLT.Worksheets («Sheet1»). [A1] = rsd.Fields («field1»). [B1] = rsd.Fields («field2»). [c1] = rsd.Fields («поле3»). [d1] = rsd.Fields («field4») Заканчивается на ‘2 способ — если в источнике несколько строк’ и мы учтем, что у нас есть заголовок и заметка в Excel ‘и мы не знаем сколько строк мы вставим ‘а затем мы добавим строки, если необходимо’ мы установим, с какой строки мы начнем вставлять данные Rows = 10 ‘для нумерации и numrow = 1’ мы запускаем цикл, он будет работать, пока мы не запустим вне строк в нашем источнике While Not (rsd.EOF) ‘посмотрите, есть ли больше строк, чем мы установили в модели If Rowss> = 12 Then’, затем добавьте строку XLT.Worksheets («Sheet1»). Rows (Rowss) .Insert ‘Помните нашу строку Set newrow = XLT.Worksheets («Sheet1»). Rows (Rowss) ‘и поместите туда копию предыдущей строки’, если вдруг появятся объединенные ячейки или потребуются некоторые данные, «потому что новая строка будет создана без каких-либо объединений и значений XLT». XLT.Worksheets («Sheet1»). Диапазон («A10: F10»). ClearContents ‘динамически формирует адрес желаемой ячейки cell = «a» & Rowss’ и устанавливает для него значение XLT.Worksheets («Sheet1»). Range (cell) = numrow cell = «b» & Rowss XLT.Worksheets («Sheet1» Range (cell) = rsd.Fields («field5»). Value ‘перейти к следующей строке Rows = Rows + 1’ перейти к следующей строке in — это источник данных rsd.MoveNext Else ‘, и это выполняется до указанных строк в шаблоне’, т.е если в источнике есть только 1 строка, мы даже не будем входить в код выше cell = «a» и Rowss XLT.Worksheets («Sheet1»). Range (cell) = numrow cell = «b» и Rowss XLT.Worksheets («Sheet1»). Range (cell) = rsd.Fields («field5»). Value Rowss = Rowss + 1 rsd.MoveNext End If ‘для нумерации numrow = numrow + 1’ конец цикла Wend ‘- это просто пример того, как вы можете полностью удалить строку’ XLT.Worksheets («Sheet1»). Rows (20) .Delete ‘делает Excel XL visible .Visible = True ‘Очистить переменные Set XL = Nothing Set XLT = Nothing Set newrow = Nothing End subtitle

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

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

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

Отчет Access имеет известные достоинства, такие как простота формирования его структуры и
мощный аппарат компоновки исходных данных. Но есть и неудобства: пользователь для
изменения этого отчета должен вносить изменения в исходные данные базы, или, того хуже, обращаться к Разработчику для внесения поправок (напр. нужен раздел «Кому, от кого»).
Есть еще недостатки, описывать их, думаю, не стоит: понятно.

Предлагается решение:

  1. Создание локальной исходной таблицы — источника (t3_Sborka).
  2. Копирование исходных данных отчета в t3_Sborka с мин. преобразованием типов данных
    (здесь в t3_Sborka данные сохраняются в поле формата STRING).
    … и далее по F1:
  3. Формирование на основе t3_Sborka перекрестного запроса NewQueryDef.
  4. Вывод в формат Excel NewQueryDef.
  5. Уничтожение — NewQueryDef и t3_Sborka.

    Я по этой теме уже публиковался на

    http://www.cyberforum.ru/ms-access/thread2158558.html

но речь там идет об обратном процессе — о сохранении уже готовых таблиц Excel в БД.

Подробнее на примере БД со схемой БД учета трудоемкости изготовления изделия по заданному технологическому маршруту, где значение записи поля Итог в таблице Маршруты есть трудоемкость изготовления конкретной детали в одном из цехов предприятия. Здесь предлагается рассматривать изделие как простую совокупность входящих деталей и на практике дело намного сложнее, но это уже другая тема.

где такой код Basic :

Dim qdfNew As QueryDef
Dim D, N
    Otvet = MsgBox("Обработать данные", vbOKOnly, "Отчеты Excel")
    Call Заполнитьt3_Sborka
    ' Создайте временный QueryDef.
    Set qdfNew = CurrentDb.CreateQueryDef("ДеталиОперации", "TRANSFORM Max(t3_Sborka.NCH) AS [Max-NCH] SELECT " _
         & "t3_Sborka.NumStroka FROM t3_Sborka GROUP BY t3_Sborka.NumStroka ORDER BY " _
         & "t3_Sborka.NumStroka, t3_Sborka.NumStolbec PIVOT t3_Sborka.NumStolbec;")
     Call closeProject("Excel")  'закрыть процесс Excel
    ' Откройте набор записей и распечатайте отчет.
    DoCmd.OutputTo acOutputQuery, "ДеталиОперации", "ExcelWorkbook(*.xlsx)", "Таблица.xlsx", True, "", , acExportQualityScreen
    ' Удалите новый QueryDef, потому что это демонстрация.
    CurrentDb.QueryDefs.Delete "ДеталиОперации"
    ' Удалите источник, потому что это демонстрация.
    CurrentDb.TableDefs.Delete "t3_Sborka"
Exit_Кн_Отчеты_Click:
    Exit Sub
End Sub

Sub Заполнитьt3_Sborka()
Dim rs1 As DAO.Recordset, rs2 As DAO.Recordset, rs3 As DAO.Recordset
Dim NStroka As Long, NStolb As Long

    'создать t3_Sborka
    CurrentDb.Execute ("CREATE TABLE t3_Sborka (t3Cod COUNTER CONSTRAINT MyFieldConstraint PRIMARY KEY, NumStroka LONG, " _
        & "NumStolbec LONG, NCH STRING);")

    'три выборки:
    Set rs1 = CurrentDb.OpenRecordset("SELECT Детали.КодДетали, Детали.ДецимДетали, Сборки.КолДеталей FROM Детали INNER JOIN Сборки ON " _
        & "Детали.КодДетали = Сборки.КодДетали WHERE Сборки.КодИзделия=" & Me.КодИзделия & " ORDER BY Сборки.КодСборки;")
    Set rs2 = CurrentDb.OpenRecordset("Цеха")
    Set rs3 = CurrentDb.OpenRecordset("t3_Sborka")
    <cut/>
     'заполнить сетку с данными
    NStroka = 0
    With rs3
    Do Until rs1.EOF
        NStroka = NStroka + 1
        NStolb = 2
        Do Until rs2.EOF
            NStolb = NStolb + 1
            .AddNew
            !NumStroka = NStroka
            !NumStolbec = NStolb
            !NCH = DLookup("Итог", "Маршруты", "КодДетали=" & rs1!КодДетали & " And КодЦеха=" & rs2!КодЦеха)
            .Update
            rs2.MoveNext
        Loop
        rs2.MoveFirst
        rs1.MoveNext
    Loop
    End With
    rs2.Close

    'заголовки строк
    rs1.MoveFirst
    NStroka = 0
    With rs3
    Do Until rs1.EOF
    NStroka = NStroka + 1
    .AddNew
    !NumStroka = NStroka
    !NumStolbec = 1
    !NCH = rs1!ДецимДетали
    .Update
    .AddNew
    !NumStroka = NStroka
    !NumStolbec = 2
    !NCH = rs1!КолДеталей
    .Update
    rs1.MoveNext
    Loop
    .Close
    End With
    rs1.Close
Exit_Заполнитьt3_Sborka:
    Exit Sub
End Sub

Sub closeProject(proc As String) 'закрыть процесс Excel
    Dim Process As Object, i
    For Each Process In GetObject("winmgmts:").ExecQuery("Select * from Win32_Process")
        i = i + 1
        If Process.Caption Like "*" & proc & "*" Then
           Process.Terminate
        End If
    Next
End Sub

Выдает итоговый отчет

Конечно, в коде заполнения источника t3_Sborka можно предусмотреть и заголовки, и поля итогов. Простор широкий, а получаемый результат, думаю, окупит затраченные усилия.

One of the prime attractions of Microsoft Office Suite is the ability to transfer and convert data for use in each of the different programs that comprise the overall package. Small business users who prefer the convenience of Excel tables when it comes to anything from sales data to customer records can easily convert reports generated by Access to Excel tables with an automated feature in Access.

  1. Open your Access database.

  2. Generate the report you need from your database by clicking its name in the lower left-hand column of your database under «Reports.» The report appears on your screen.

  3. Click the «External Data» tab from the Access Ribbon along the top of the window and then click the Excel icon, which is the second from the left in the Export group of the External Data menu. Wait for the «Export — Excel Spreadsheet» dialog box to open.

  4. Click the «Browse» button at the end of the «File name: text» field in the dialog box. Wait for the File Save dialog box to appear.

  5. Select the drive and folder to which you want to save the Excel spreadsheet version of the report. Type the name under which you want to save the file in the «File name: text» field of the File Save dialog box and then click the «Save» button.

  6. Select the particular Excel format in which you want to save your spreadsheet using the File format pull-down menu in the Export — Excel Spreadsheet dialog box.

  7. Make sure the box next to «Export data with formatting and layout,» which is usually the default option, is checked for the best results.

  8. Click the «Save» button at the bottom of the dialog box to return to the main box. Check the box to the left of «Open the destination file after the export operation is complete» if you want to work on your Excel file as soon as you export your data.

  9. Check the box to the left of «Export only the selected records» if you set up your report using only specified records. This box usually cannot be selected unless you have generated a particular custom report using only specific records from your database.

  10. Click the «OK» button at the bottom of the dialog box.

  11. Check the «Save export steps» box in the dialog box if you want to save your export steps for future use. Enter a name and description as you wish and click the «Save Export» button.

  12. Wait for your Excel spreadsheet to open in another window if you checked the pertinent box in Step 8. Open Excel and browse for the spreadsheet by name if you did not check the box.

  13. Work on your Excel spreadsheet as you would any other spreadsheet but pay attention to dialog boxes that will ask you whether you want to change data from your Access report.

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Выгрузить в excel что это значит
  • Выгрузить в excel не выгружает
  • Выгружающий список в excel
  • Выгружать результаты запроса в excel
  • Выгружать котировку в excel

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии