Как из access выгрузить в excel

Обновлено: 07.07.2024

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

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

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

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

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

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

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

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

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

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

Скриншот 1

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

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

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

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

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

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

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

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

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

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

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

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

Декоративный значок.

Содержимое для средств чтения с экрана

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

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

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

Дополнительные сведения о средствах чтения с экрана см. в статье о работе средств чтения с экрана в Microsoft Office.

В этом разделе

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

Прежде чем экспортировать данные, просмотрите их и решите, как их экспортировать.

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

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

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

Примечание: Отчеты можно экспортировать только в более старом формате файла *.xls, а не в более новом формате *.xlsx файла.

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

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

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

Если книга еще не готова, она будет создана во время экспорта. Данные всегда добавляются на новый.

Access в настоящее время экспорт макроса или модулей в Excel.

Если книга готова Excel, закроем ее.

Перейдите к источнику базы данных и выберите объект, который вы хотите экспортировать.

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

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

Чтобы запустить мастер экспорта для Excel экспорта, нажмите ALT+X, X. Откроется диалоговое Excel Экспорт — таблица.

Выполните одно из указанных ниже действий.

Если вы хотите создать новую таблицу во время экспорта, нажмите ALT+F, чтобы переместить фокус на текстовое поле Имя файла. Access имя объекта-источника в качестве имени файла экспортируемого файла. Чтобы изменить имя, удалите предложенное имя и введите новое.

Если у вас уже Excel файл, в который вы хотите экспортировать данные, нажмите ALT+R, чтобы открыть диалоговое окно Сохранение файла, и найдите нужный файл. Выбрав файл, нажмите ввод, чтобы выбрать его. Диалоговое окно закроется, а фокус вернется в диалоговое окно Экспорт — Excel Таблица.

Нажмите ALT+T, чтобы переместить фокус на список Формат файла. Вы услышите текущий формат. Чтобы выбрать нужный формат, нажмите клавишу ПРОБЕЛ, чтобы развернуть список, а затем нажимая клавишу СТРЕЛКА ВВЕРХ или СТРЕЛКА ВНИЗ, пока не услышите нужный формат, а затем нажмите клавишу ВВОД, чтобы выбрать его.

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

Примечание: Если вы экспортируете форму или отчет, этот параметр выбран по умолчанию и его нельзя отобирать.

Если вы хотите, чтобы Excel книгу открывали автоматически после экспорта, нажмите ALT+A, чтобы перейти к нужному файлу и выбрать параметр Открыть файл после завершения экспорта.

Если исходный объект открыт и вы выбрали одну или несколько записей в представлении перед началом экспорта (это записи, которые вы хотите экспортировать), нажмите ALT+S, чтобы перейти к параметру Экспортировать только выбранные записи. Если вы хотите экспортировать все записи, отображаемые в представлении, не выбирайте этот параметр.

Примечание: Если записи не выбраны, этот параметр не доступен.

Чтобы начать экспорт, нажимайте клавишу TAB, пока не дойдете до кнопки ОК, а затем нажмите клавишу ВВОД.

Если экспорт был успешным, Access вам будет предложено сохранить шаги экспорта, чтобы быстро повторить их без мастера экспорта. Чтобы выбрать этот параметр, нажмите ALT+V. Чтобы назвать файл, нажмите ALT+A и введите имя файла. Чтобы сохранить файл действий, нажмите ALT+S.

Если вы выбрали автоматическое открытие конечной Excel, нажимая ALT+TAB, пока не услышите название книги, и просмотрите ее содержимое.

Открытие объекта в представлении таблицы

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

Перейдите к объекту в дереве навигации.

На объекте нажмите shift+F10, чтобы открыть контекстное меню.

В меню нажимаем клавишу TAB, пока не дойдете до представления таблицы, и нажмите клавишу ВВОД, чтобы выбрать его. Объект откроется в представлении таблицы.

Если параметр Таблица данных не доступен, необходимо включить его для объекта. Инструкции можно найти в статьи Включить представление таблицы для объекта.

Включить представление таблицы для объекта

Когда объект находится в дереве навигации, нажмите shift+F10, чтобы открыть контекстное меню.

В меню нажмите D, чтобы открыть конструктор.

В конструкторе нажмитеF4, чтобы открыть области "Лист свойств".

Один раз нажмите F6. Фокус перемещается в строку свойств в области "Лист свойств". Вы услышите номер строки и содержимое ячейки свойства.

Чтобы переместить фокус в список Тип выделения, нажимите shift+TAB, пока не услышите "Поле целиком", а затем — текущее значение и "Поле со списком, редактирование". Если текущее значение — Форма,можно перейти к следующему шагу. В противном случае нажмите клавиши ALT+СТРЕЛКА ВНИЗ, чтобы развернуть список, а затем нажимая клавишу СТРЕЛКА ВВЕРХ или СТРЕЛКА ВНИЗ, пока не услышите слово "Форма", а затем нажмите клавишу ВВОД, чтобы выбрать его.

В области "Лист свойств" нажимаем клавишу TAB, пока не услышите выбранный элемент вкладки, например "Элемент вкладки «Данные», выбрано". Если на текущей вкладке находится вкладка Формат, можно перейти к следующему шагу. В противном случае нажимая клавишу СТРЕЛКА ВЛЕВО или СТРЕЛКА ВПРАВО, пока не услышите "Элемент вкладки «Формат»". Отображаются свойства вкладки Формат.

На вкладке Формат нажимая клавишу TAB, пока не услышите "Строка 4, Нет, свернуто". Фокус будет на свойстве Разрешить представление таблицы. Чтобы установить для свойства значение Да,нажмите клавиши ALT+СТРЕЛКА ВНИЗ, а затем нажмите клавишу СТРЕЛКА ВВЕРХ один раз, а затем нажмите клавишу ВВОД, чтобы выбрать новое значение.

Чтобы закрыть ее, нажмите F4.

Чтобы открыть выбранный объект в представлении таблицы, нажмите ALT+J, D, W, а затем H.

См. также

Техническая поддержка пользователей с ограниченными возможностями

Корпорация Майкрософт стремится к тому, чтобы все наши клиенты получали наилучшие продукты и обслуживание. Если у вас ограниченные возможности или вас интересуют вопросы, связанные со специальными возможностями, обратитесь в службу Microsoft Disability Answer Desk для получения технической поддержки. Специалисты Microsoft Disability Answer Desk знакомы со многими популярными специальными возможностями и могут оказывать поддержку на английском, испанском, французском языках, а также на американском жестовом языке. Перейдите на сайт Microsoft Disability Answer Desk, чтобы узнать контактные сведения для вашего региона.

Если вы представитель государственного учреждения или коммерческой организации, обратитесь в службу Disability Answer Desk для предприятий.

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

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

В этой статье

Общее представление об импорте данных из Excel

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

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

Опытному пользователю Excel требуется использовать Access для работы с данными. Для этого необходимо переместить данные из листов Excel в одну или несколько новых таблиц Access.

В отделе или рабочей группе используется Access, но иногда данные поступают в формате Excel, и их необходимо объединять с базами данных Access. Требуется выполнить импорт полученных листов Excel в базу данных.

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

Первый импорт данных из Excel

Сохранить книгу Excel в виде базы данных Access невозможно. В Excel не предусмотрена функция создания базы данных Access с данными Excel.

При открытии книги Excel в Access (для этого следует открыть диалоговое окно Открытие файла, выбрать в поле со списком Тип файлов значение Файлы Microsoft Office Excel и выбрать файл) создается ссылка на эту книгу, но данные из нее не импортируются. Связывание с книгой Excel кардинально отличается от импорта листа в базу данных. Дополнительные сведения о связывании см. ниже в разделе Связывание с данными Excel.

Импорт данных из Excel

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

Подготовка листа

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

Определение именованного диапазона (необязательно)

Перейдите в Excel и откройте лист, данные из которого нужно импортировать.

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

Щелкните выделенный диапазон правой кнопкой мыши и выберите пункт Имя диапазона или Определить имя.

В диалоговом окне Создание имени укажите имя диапазона в поле Имя и нажмите кнопку ОК.

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

Просмотрите исходные данные и выполните необходимые действия в соответствии с приведенной ниже таблицей.

Число исходных столбцов, которые необходимо импортировать, не должно превышать 255, т. к. Access поддерживает не более 255 полей в таблице.

Пропуск столбцов и строк

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

Смещ_по_строкам В ходе операции импорта невозможно фильтровать или пропускать строки.

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

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

Пустые столбцы, строки и ячейки

Удалите все лишние пустые столбцы и строки из листа или диапазона. При наличии пустых ячеек добавьте в них отсутствующие данные. Если планируется добавлять записи к существующей таблице, убедитесь, что соответствующие поля таблицы допускают использование пустых (отсутствующих или неизвестных) значений. Поле допускает использование пустых значений, если свойство Обязательное поле (Required) имеет значение Нет, а свойство Условие на значение (ValidationRule) не запрещает пустые значения.

Чтобы избежать ошибок при импорте, убедитесь, что каждый исходный столбец содержит данные одного типа в каждой строке. Access сканирует первые восемь исходных строк, чтобы определить тип данных полей таблицы. Настоятельно рекомендуем убедиться в том, что первые восемь исходных строк не смешивают значения с разными типами данных ни в каких столбцах. В противном случае Access может не назначить столбецу правильный тип данных.

Рекомендуется также отформатировать все исходные столбцы в Excel и назначить им определенный формат данных перед началом операции импорта. Форматирование является необходимым, если столбец содержит значения с различными типами данных. Например, столбец "Номер рейса" может содержать числовые и текстовые значения, такие как 871, AA90 и 171. Чтобы исключить отсутствующие или неверные значения, выполните указанные ниже действия.

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

На вкладке Числовой в группе Категория выберите формат. Для столбца "Номер рейса" лучше выбрать значение Текстовый.

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

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

Примечание: Если планируется добавить данные в существующую таблицу, убедитесь, что имя каждого столбца в точности соответствует имени поля. Если имя столбца отличается от имени соответствующего поля в таблице, операция импорта завершится неудачей. Чтобы просмотреть имена полей, откройте таблицу в Access в режиме конструктора.

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

Подготовка конечной базы данных

Откройте базу данных Access, в которой будут храниться импортируемые данные. Убедитесь, что база данных доступна не только для чтения и что есть права на ее изменение.

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

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

Перед началом операции импорта следует определить, в какой таблице будут храниться данные: в новой или существующей.

Создание новой таблицы. Если необходимо сохранить данные в новой таблице, в Access создается таблица, в которую добавляются импортируемые данные. Если таблица с указанным именем уже существует, содержимое существующей таблицы перезаписывается импортируемыми данными.

Добавление в существующую таблицу. При добавлении данных в существующую таблицу строки из листа Excel добавляются в указанную таблицу.

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

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

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

Совет: Поле допускает использование пустых значений, если его свойство Обязательное поле (Required) имеет значение Нет, а свойство Условие на значение (ValidationRule) не запрещает пустые значения.

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

Для выполнения операции импорта перейдите к указанным ниже действиям.

Запуск операции импорта

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

Если вы используете последнюю версию Access или Access 2019, доступную по подписке на Microsoft 365, на вкладке "Внешние данные" в группе "Импорт & Связь" нажмите кнопку "Новый источник данных > из файла > Excel".

Если вы используете Access 2016, Access 2013 или Access 2010, на вкладке Внешние данные в группе Импорт и связи нажмите кнопку Excel.

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

В диалоговом окне Внешние данные - Электронная таблица Excel в поле Имя файла укажите имя файла Excel, содержащего данные, которые необходимо импортировать.

Чтобы указать импортируемый файл, нажмите кнопку Обзор и воспользуйтесь диалоговым окном Открытие файла.

Укажите способ сохранения импортируемых данных.

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

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

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

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

Использование мастера импорта электронных таблиц

На первой странице мастера выберите лист, содержащий данные, которые необходимо импортировать, и нажмите кнопку Далее.

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

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

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

Если данные добавляются к существующей таблице, перейдите к действию 6. Если данные добавляются в новую таблицу, выполните оставшиеся действия.

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

Просмотрите и измените имя и тип данных конечного поля.

Чтобы создать индекс для поля, присвойте свойству Индексировано (Indexed) значение Да.

Чтобы пропустить весь исходный столбец, установите флажок Не импортировать (пропустить) поле.

Настроив параметры, нажмите кнопку Далее.

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

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

Сведения о том, как запланировать выполнение задач импорта и связывания в определенное время, см. в статье Планирование спецификации импорта или экспорта.

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

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

Откройте таблицу в режиме конструктора, чтобы проверить типы данных и другие свойства полей.

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

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

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

Значения TRUE или FALSE и -1 или 0

Если исходный лист или диапазон включает столбец, который содержит только значения TRUE или FALSE, в Access для этого столбца создается логическое поле, в которое вставляется значение -1 или 0. Если же исходный лист или диапазон включает столбец, который содержит только значения -1 и 0, в Access для этого столбца по умолчанию создается числовое поле. Чтобы избежать этой проблемы, можно изменить в ходе импорта тип данных поля на логический.

При импорте данных в новую или существующую таблицу приложение Access не поддерживает многозначные поля, даже если исходный столбец содержит список значений, разделенных точками с запятой (;). Список значений обрабатывается как одно значение и помещается в текстовое поле.

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

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

После завершения импорта в логическом поле в режиме таблицы отображаются значения -1 и 0. Чтобы устранить эту проблему, необходимо после завершения импорта изменить значение свойства Формат этого поля на Да/Нет для отображения флажков.

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

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

Повторяющиеся значения (нарушение уникальности ключа)

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

Значения дат, сдвинутые на 4 года

Значения полей дат, импортированных с листа Excel, оказываются сдвинуты на четыре года. В Excel для Windows используется система дат 1900, в которой даты представляются целыми числами от 1 до 65 380, соответствующими датам от 1 января 1900 г. до 31 декабря 2078 г. В Excel для Macintosh используется система дат 1904, в которой даты представляются целыми числами от 0 до 63 918, соответствующими датам от 1 января 1904 г. до 31 декабря 2078 г.

Прежде чем импортировать данные, измените систему дат для книги Excel или выполните после добавления данных запрос на обновление, используя выражение [имя поля даты] + 1462 для корректировки дат.

Отформатируйте исходные столбцы.

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

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

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

Всем привет! Материал сегодня будет посвящен рассмотрению возможности Access выгружать Recordset в Excel на VBA. Данный способ достаточно простой и предполагает использование Recordset как формы, так и специально созданного объекта.

Ранее мы с Вами уже рассматривали возможность выгрузки данных из Access в Excel в материале «Выгрузка данных из Access в шаблон Word и Excel», но там мы использовали специально созданный шаблон, что не совсем удобно, если например, нам необходимо выгрузить просто набор данных с заголовками полей.

Также если кого интересует, недавно мы рассматривали возможность выгрузки данных из базы MS SQL Server в формат CSV (текстовый файл с разделителями) с помощью VBA Access в материале «Экспорт данных в CSV файл из Microsoft SQL Server, используя Access 2003».

Сейчас я покажу простой пример реализации возможности выгружать наборы данных с заголовками из базы MS SQL Server средствами VBA Access в Excel.

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

Итак, давайте приступать и для начала рассмотрим исходные данные.

Примечание! В качестве примера источником данных у меня будет выступать MS SQL Server 2012 Express, а в качестве клиента ADP проект Access 2003. Также на компьютере клиенте установлен Microsoft Office 2010.

Исходные данные

Допустим, на сервере у нас есть таблица TestTable.

Скриншот 1

И она содержит следующие данные.

Скриншот 2

Также допустим, что в ADP проекте Access у нас есть форма, источником данных которой выступает наша тестовая таблица TestTable.

Код VBA для выгрузки Recordset формы в Excel

Сначала давайте рассмотрим пример выгрузки объекта Recordset формы в Excel. Для этого добавляем на форму кнопку, для примера я ее назвал RSExportInExcel. В обработку события нажатие кнопки вставляем следующий код, я его прокомментировал:

Скриншот 3

Сохраняем изменения и пробуем нажать на кнопку. В итоге у нас запустится Excel, а в нем будут необходимые нам данные.

Скриншот 4

Примечание! Свойства HorizontalAlignment и VerticalAlignment могут не работать, если на компьютере не установлен Microsoft Office 2010, поэтому в случае возникновения ошибок связанных с этими свойствами просто закомментируйте их.

Код VBA для выгрузки объекта Recordset в Excel

Теперь давайте напишем код, который позволяет выгружать объект Recordset, данные которого получены, скажем с помощью запроса к базе данных. Для этого добавьте еще одну кнопку (я ее назвал RSExportInExcel2) и вставьте немного модифицированный код:

Скриншот 5

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

Читайте также: