Query in excel from access

 

Ram-zes

Пользователь

Сообщений: 46
Регистрация: 18.11.2014

Есть таблица Excel, данные которой загружаются в запрос на выборку Access
В запросе можно указать разные способы загрузки данных:
1. Загружаются данные всего листа:  SELECT [Лист1$].* FROM [Лист1$] IN » [Excel 12.0;HDR=Yes;IMEX=1;DATABASE=С:База данныхФайл.xlsx];
2. Загружаются данные заданных полей:  SELECT [Лист1$].[Поле1], [Лист1$].[Поле2],[Лист1$].[Поле3]  FROM [Excel 12.0;HDR=YES;IMEX=1;DATABASE= С:База данныхФайл.xlsx].[Лист1$]

Нужен третий вариант: загрузка данных именованного диапазона или заданного диапазона, например A3:K20. Подскажите, можно ли загружать напрямую из Excel в ЗАПРОС Access данные диапазона? Если да, то как?
Знаю как загружать именованный диапазон в Access с помощью сводных таблиц, но нужна загрузка в запрос

Изменено: Ram-zes12.01.2015 17:58:10

 

B.Key

Пользователь

Сообщений: 633
Регистрация: 26.02.2014

попробуйте просто указать имя именованного диапазона …….С:База данныхФайл.xlsx].[tbl]
где tbl имя диапазона

 

Ram-zes

Пользователь

Сообщений: 46
Регистрация: 18.11.2014

B.Key, так не получается…
Сборка по теме с учетом моих экспериментов:
1. Данные всего листа
SELECT [Лист1$].* FROM [Лист1$] IN » [Excel 12.0XML;HDR=Yes;IMEX=1;DATABASE=С:База данныхФайл.xlsx];

2. Данные заданных полей (поля должны стоять в первой строке)
SELECT [Лист1$].[Поле1], [Лист1$].[Поле2],[Лист1$].[Поле3] FROM [Excel 12.0XML;HDR=YES;IMEX=1;DATABASE= С:База данныхФайл.xlsx].[Лист1$]

3. Данные по заданному диапазону
SELECT * FROM [Лист1$A6:A11] IN » [Excel 12.0XML;HDR=Yes;IMEX=1;DATABASE=С:База данныхФайл.xlsx];

4. Данные по именованному диапазону
SELECT * FROM [имя диапазона] IN » [Excel 12.0XML;HDR=Yes;IMEX=1;DATABASE=С:База данныхФайл.xlsx];

Изменено: Ram-zes15.01.2015 16:34:17

 

LVL

Пользователь

Сообщений: 903
Регистрация: 01.01.1970

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

 

Ram-zes

Пользователь

Сообщений: 46
Регистрация: 18.11.2014

Да, использовать значения…

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

 

LVL

Пользователь

Сообщений: 903
Регистрация: 01.01.1970

#6

15.01.2015 14:19:58

Цитата
Ram-zes пишет: обмен данными идет постоянно — это не разовая акция

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

Цитата
Ram-zes пишет: мои эксперименты показали, что если сразу обращаться к данным в файлеExcel из запроса с помощью SQL, то скорость обмена данными выше

Доля правды в этом есть, вернее даже не так… Варианта 2:
1. Работаете с таблицами посредством SQL (в данном случае прилинковывая таблицу)
2. Формируете запрос с ограничениями сразу в нем (WHERE и т.д.)

Лично я предпочту первый вариант, он более прозрачен и его проще поддерживать, что касается производительности, то да, в теории второй вариант быстрее, но это только в теории, на практике время выполнения запроса врятле будет отличаться значительно. На самом деле вопрос несколько в ином, насколько сложно сформировать запрос сразу со всеми ограничениями? + Нужно ли будет его корректировать и как часто… Поэтому, как я уже сказал, я предпочту первый вариант.

 

LVL

Пользователь

Сообщений: 903
Регистрация: 01.01.1970

Перечитал ещё раз тему… Хочу уточнить — где находятся данные и куда их нужно вернуть? Я предполагал, что данные находятся в базе Access и вы хотите получать их с помощью запроса в файл Excel, при этом в тексте запроса использовать ограничения указанные в файле Excel… Я правильно вас понял?

 

Antubas

Пользователь

Сообщений: 50
Регистрация: 22.10.2013

#8

15.01.2015 14:28:51

Цитата
Ram-zes пишет: Если Вы линкуете, то перегружаете базу дополнительными таблицами

DAO.Recordset не спасет? Если в него записать SQL запрос условием отбора, после обнулить и закрыть.

 

Ram-zes

Пользователь

Сообщений: 46
Регистрация: 18.11.2014

Вообще коммуникация очень сложная… Но если коротко то примерно так:
Есть файл Excel, куда вносится первичная информация (одно из полей Отдел). Информация поступает в Access и там идет нарезка этой информации на отделы, т.е. в Access есть запросы, которые и делают эту нарезку, скажем на 10 отделов (ну понятно, что в каждом запросе стоит свое условие — название отдела). C этих запросов информация отправляется в другие файлы Excel — по отделам. Там вносится необходимая информация. Затем в Access работают другие запросы, которые уже обращаются к этим файлам Excel и получают информацию в базу, есть консолидирующий запрос, который после, отправляет все данные в исходный файл.
При сохранении файлов Excel информация попадает в Access. При обновлении данных в Excel информация закачивается из Access. Ну вот как-то так.

Изменено: Ram-zes15.01.2015 14:36:16

 

LVL

Пользователь

Сообщений: 903
Регистрация: 01.01.1970

Задумчивая схема…
Т.е. всетаки обмен идет между Access и Excel — это я и хотел уточнить…
А теперь — в каком именно моменте возникает проблема?

 

Ram-zes

Пользователь

Сообщений: 46
Регистрация: 18.11.2014

Antubas, может DAO.Recordset и спасет… Но мне об этом не ведомо. Я не профессиональный IT и к сожалению об DAO.Recordset пока ничего не знаю. Можете показать пример кода, я попробую

 

Ram-zes

Пользователь

Сообщений: 46
Регистрация: 18.11.2014

LVL, ну сейчас с запросами и получением (обменом) информации между файлами проблем нет. Есть другая проблема:

Почему при обновлении данных в файле Excel открывается другой файл, связанный с ним через запрос Access?

Есть файл данные_1.xlsx. Он связан с файлом данные_2.xlsx через запрос Access. Все файлы находятся в локальной сети. Подключение к базе данных Access в Excel идет по ссылке на сетевой диск Data Source=P:База…
При обновлении файла данные_1.xlsx на компьютере_1 происходит запуск на этом же компьютере файла данные_2.xlsx (в режиме для чтения), если он одновременно открыт на компьютере_2.
Если файл данные_2.xlsx закрыт, то обновление в файле данные_1.xlsx происходит без открытия связанного файла
Из-за чего так происходит и что сделать, что бы при обновлении файла данные_1.xlsx не запускался файл данные_2.xlsx

Можно ли решить эту проблему через настройку свойств подключения в Excel? В частности в настройке прав доступа:
Права доступа (Read — только чтение; ReadWrite — чтение и запись; Share Deny None — никому не отказывать ни в чтении, ни в записи; Share Deny Read — запретить всем работу в режиме чтения; Share Deny Write — запретить всем работу в режиме записи; Share Exclusive — запретить всем работу в режиме чтения/записи; Write — только запись).

Изменено: Ram-zes15.01.2015 14:43:28

 

Ram-zes

Пользователь

Сообщений: 46
Регистрация: 18.11.2014

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

 

Antubas

Пользователь

Сообщений: 50
Регистрация: 22.10.2013

#14

15.01.2015 14:51:53

Цитата
Ram-zes пишет: пример кода
Код
Function status()
   Dim db As Database
   Dim rst As DAO.Recordset
   Dim strSQL As String
   Set db = CurrentDb
   strSQL = "SELECT [Лист1$].* FROM [Лист1$] IN '' [Excel 12.0;HDR=Yes;IMEX=1;DATABASE=С:База данныхФайл.xlsx];"
   Set rst = db.OpenRecordset(strSQL)
   rst.MoveFirst
   While Not rst.EOF
      rst.Fields("Столбец").Value
      rst.MoveNext
   Wend
   Set rst = Nothing
   rst.Close
End Function

Примерно так

 

Ram-zes

Пользователь

Сообщений: 46
Регистрация: 18.11.2014

Да, совсем забыл, есть еще одно огромное преимущество у SQL запросов перед связанными таблицами. Вы знаете, что Access не берет более 255 столбцов…
В моем случае в файлах ведется учет рабочего времени и там создана шкала времени на весь год, т.е. более 360 столбцов. Если вы делаете связанную таблицу, то она возьмет в Access только первы 255 столбцов. Даже если вы создадите именованный диапазон на столбцы после 255 и попытаетесь создать связанную таблицу в Access на этот диапазон, то он ее не подцепит. А вот SQL запрос берет с этого листа любые диапазоны. В начале мне приходилось дублировать вторую половину года на отдельный лист и с него делать связанную таблицу, сейчас же все на одном листе

 

Ram-zes

Пользователь

Сообщений: 46
Регистрация: 18.11.2014

Antubas, а вставляем этот код в SQL запрос? Я правильно понимаю, что вместо моего кода нужно вставить ваш?

 

Antubas

Пользователь

Сообщений: 50
Регистрация: 22.10.2013

Может выложите примерчик с Excel и Access файлом, или сходите на

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

там помогут с Access.

 

Antubas

Пользователь

Сообщений: 50
Регистрация: 22.10.2013

#18

15.01.2015 15:03:51

Цитата
Ram-zes пишет: вставляем этот код в SQL запрос?

В VBA, лучше всего дайте файлы с примерами )

 

LVL

Пользователь

Сообщений: 903
Регистрация: 01.01.1970

#19

15.01.2015 15:04:20

Цитата
Ram-zes пишет: Access не берет более 255 столбцов…

Вы создаете таблицы в Access с таким количеством полей?

 

Ram-zes

Пользователь

Сообщений: 46
Регистрация: 18.11.2014

LVL, а куда деваться? Если нужно такое количество полей: 01.01 | 02.01 | 03.01 и т.д.

Antubas, с VBA не работаю, к сожалению…

Изменено: Ram-zes15.01.2015 15:08:07

 

Antubas

Пользователь

Сообщений: 50
Регистрация: 22.10.2013

У Вас база Access типа «Клиент»-«Сервер», или же Вы Access используете просто для операции БД?

Изменено: Antubas15.01.2015 15:08:14

 

Ram-zes

Пользователь

Сообщений: 46
Регистрация: 18.11.2014

видимо просто для операции БД

 

Ram-zes

Пользователь

Сообщений: 46
Регистрация: 18.11.2014

В принципе, выложить можно, но мне нужно ее подготовить для этого, только завтра

 

Antubas

Пользователь

Сообщений: 50
Регистрация: 22.10.2013

#24

15.01.2015 15:11:44

Цитата
Ram-zes пишет: операции БД

А почему бы тогда Вам не тратить время на Access и сделать все эти деления и обновления в самом Excel?

Цитата
только завтра

no problem

Изменено: Antubas15.01.2015 15:21:55

 

Ram-zes

Пользователь

Сообщений: 46
Регистрация: 18.11.2014

Вопрос в совместном доступе в Excel — не просто это сделать (ну мне не просто). Потребуется VBA. Ну или я не знаю адекватного способа

Изменено: Ram-zes15.01.2015 15:21:11

 

Ram-zes

Пользователь

Сообщений: 46
Регистрация: 18.11.2014

В общем решение оказалось простым. Нужен офис 2010 на всех компах и в свойствах подключения в правах доступа нужно указать: Share Deny None

 

zin-renat

Пользователь

Сообщений: 1
Регистрация: 24.07.2015

#27

24.07.2015 11:37:14

Добрый день. Ситуация такая. Имеется запрос из внешней базы данных MS SQL Server 2012, результат которого выводится в книгу Excel.

Код
select * from packs where packs.prday = 10

Как вместо цифры 10 подставить значение из ячейки листа Excel без использования VBA?

 

JeyCi

Пользователь

Сообщений: 3357
Регистрация: 27.11.2013

#28

24.07.2015 12:05:22

попробуйте так — при обновлении запроса должно выскочить окно — там и указать ячейку или др (см вроде бы в свойствах выходной таблицы — параметры)…

Код
select * from packs where packs.prday = [?]

или заново сформируйте параметрический (!) запрос через ms query…

см пост№23 здесь

p.s. и все запросы сваливать в эту ветку, наверно, не надо — лучше см.

Правила форума

— чуть что, я вас предупредила…

Изменено: JeyCi24.07.2015 12:10:08

чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах)

Перейти к содержанию

На чтение 2 мин Опубликовано 19.06.2015

Этот пример научит вас импортировать данные из базы данных Microsoft Access с помощью мастера запросов Microsoft Query. Используя Microsoft Query, вы можете выбрать нужные столбцы и импортировать в Excel только их.

  1. На вкладке Data (Данные) нажмите кнопку From Other Sources (Из других источников) и выберите From Microsoft Query (Из Microsoft Query).Microsoft Query в ExcelПоявится диалоговое окно Choose Data Source (Выбор источника данных).
  2. Выберите MS Access Database* и поставьте галочку напротив опции Use the Query Wizard to create/edit queries (Использовать мастер запросов).Microsoft Query в Excel
  3. Нажмите ОК.
  4. Выберите базу данных и кликните ОК.Microsoft Query в ExcelЭта база данных состоит из нескольких таблиц. Вы можете выбрать таблицу и столбцы, которые нужно включить в запрос.
  5. Выделите таблицу Customers и кликните по кнопке с символом «>«.Microsoft Query в Excel
  6. Нажмите Next (Далее).
  7. Чтобы импортировать только указанный набор данных, отфильтруйте их. Для этого выделите City в списке Column to filter (Столбцы для отбора). Справа в первом выпадающем списке выберите equals (равно), а во втором название города – New York.Microsoft Query в Excel
  8. Нажмите Next (Далее).

Вы можете отсортировать данные, если хотите, мы же не будем этого делать.

  1. Нажмите Next (Далее).Microsoft Query в Excel
  2. Нажмите Finish (Готово), чтобы отправить данные в Microsoft Excel.Microsoft Query в Excel
  3. Выберите тип отображения информации, куда следует поместить данные и нажмите ОК.Microsoft Query в Excel

Результат:

Microsoft Query в Excel

Примечание: Когда база данных Access изменится, можно будет нажать Refresh (Обновить), чтобы загрузить изменения в Excel.

Оцените качество статьи. Нам важно ваше мнение:

  1. Что делает макрос
  2. Код макроса
  3. Как работает макрос
  4. Как использовать
  5. Скачать файл

Ссылка на это место страницы:
#zadacha

Если вы часто копируете и вставляете результаты запросов Microsoft Access в Excel вам пригодится этот макрос. В этом макросе используется DAO (Data Access Object), чтобы открыть и запустить запрос Access в фоновом режиме и вывести результаты в Excel.

В этом макросе вы указываете Excel базу данных Access и извлекаете данные из существующего запроса. Затем вы сохраняете этот запрос в Recordset объекта, который вы можете использовать для заполнения таблиц Excel. Необходимо установить ссылку на библиотеку объектов Microsoft Access. В дополнение к библиотеке объектов доступа, необходимо установить ссылку на Microsoft DAO XX библиотеки объектов, где XX это номер версии. Обратите внимание, что вы можете увидеть несколько версий этой библиотеки в диалоговом окне Reference. Как правило, нужно выбрать последнюю версию Microsoft DAO. Установите флажок рядом с записью. 

Ссылка на это место страницы:
#formula

  1. Sub VipolnitZaprosAccessIzExcel()
  2. Dim MyDatabase As DAO.Database
  3. Dim MyQueryDef As DAO.QueryDef
  4. Dim MyRecordset As DAO.Recordset
  5. Dim i As Integer
  6. Set MyDatabase = DBEngine.OpenDatabase _
  7. ("C:TempYourAccessDatabse.accdb")
  8. Set MyQueryDef = MyDatabase.QueryDefs("Ваше имя запроса")
  9. Set MyRecordset = MyQueryDef.OpenRecordset
  10. Sheets("Лист1").Select
  11. ActiveSheet.Range("A6:K10000").ClearContents
  12. ActiveSheet.Range("A7").CopyFromRecordset MyRecordset
  13. For i = 1 To MyRecordset.Fields.Count
  14. ActiveSheet.Cells(6, i).Value = MyRecordset.Fields(i - 1).Name
  15. Next i
  16. End Sub

Ссылка на это место страницы:
#kak

1. Шаг 1 объявляет необходимые переменные. Переменная объекта MyDatabase привязывает Access к приложению базы данных через библиотеку объектов DAO. MyQueryDef также является объектной переменной, которая служит контейнером памяти для целевого запроса. MyRecordset является объектом набора записей, содержащий результаты извлечения данных. В дополнение к этим переменным i целочисленная переменная используется для добавления заголовков столбцов. 

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

3. Шаг 3 буквально запускает запрос в памяти. Результаты запроса затем сохраняются в MyRecordset. После того как результаты помещены в переменную, вы можете вывести данные в Excel. 

4. Шаг 4 готовится к выводу набора записей путем очистки листа Excel. Это гарантирует отсутствие остатка предыдущих данных. 

5. На этом шаге используется метод CopyFromRecordset в Excel, чтобы получить набор данных в электронной таблице. В этом примере макрос копирует данные из объекта MyRecordset на Лист1 в ячейку А7. 

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

Ссылка на это место страницы:
#touse

Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:

1. Активируйте редактор Visual Basic, нажав ALT + F11
2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта. 
3. Выберите Insert➜Module
4. Введите или вставьте код во вновь созданном модуле. 

Ссылка на это место страницы:
#file

Файлы статей доступны только зарегистрированным пользователям.

1. Введите свою почту

2. Нажмите Зарегистрироваться

3. Обновите страницу
Вместо этого блока появится ссылка для скачивания материалов.

Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель — помочь вам эффективнее работать в Excel. 

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

Подписывайтесь на нас в соц.сетях:

This example teaches you how to import data from a Microsoft Access database by using the Microsoft Query Wizard. With Microsoft Query, you can select the columns of data that you want and import only that data into Excel.

1. On the Data tab, in the Get & Transform Data group, click Get Data.

Get Data

2. Click From Other Sources, From Microsoft Query.

From Microsoft Query

The ‘Choose Data Source» dialog box appears.

3. Select MS Access Database* and check ‘Use the Query Wizard to create/edit queries’.

Choose Data Source

4. Click OK.

5. Select the database and click OK.

Select Database

This Access database consists of multiple tables. You can select the table and columns you want to include in your query.

6. Select Customers and click the > symbol.

Query Wizard - Choose Columns

7. Click Next.

To only import a specified set of records, filter the data.

8. Click City from the ‘Column to filter’ list and only include rows where City equals New York.

Query Wizard - Filter Data

9. Click Next.

You can sort your data if you want (we don’t do it here).

10. Click Next.

Query Wizard - Sort Order

11. Click Finish to return the data to Microsoft Excel.

Query Wizard - Finish

12. Select how you want to view this data, where you want to put it, and click OK.

Import Data

Result:

Microsoft Query Result in Excel

13. When your Access data changes, you can easily refresh the data in Excel. First, select a cell inside the table. Next, on the Table Design tab, in the External Table Data group, click Refresh.

Refresh Data

Using the Export Wizard, you can export data from an Access database to in a file format that can be read by Excel. This article shows you how to prepare and export your data to Excel, and also gives you some troubleshooting tips for common problems that might occur.

In this article

  • Exporting data to Excel: the basics

  • Prepare for the export operation

  • Run the export operation

  • What else should I know about exporting?

  • Troubleshoot missing and incorrect values

Exporting data to Excel: the basics

When you export data to Excel, Access creates a copy of the selected data, and then stores the copied data in a file that can be opened in Excel. If you copy data from Access to Excel frequently, you can save the details of an export operation for future use, and even schedule the export operation to run automatically at set intervals.

Common scenarios for exporting data to Excel

  • Your department or workgroup uses both Access and Excel to work with data. You store the data in Access databases, but you use Excel to analyze the data and to distribute the results of your analysis. Your team currently exports data to Excel as and when they have to, but you want to make this process more efficient.

  • You are a long-time user of Access, but your manager prefers to work with data in Excel. At regular intervals, you do the work of copying the data into Excel, but you want to automate this process to save yourself time.

About exporting data to Excel

  • Access does not include a “Save As” command for the Excel format. To copy data to Excel, you must use the Export feature described in this article, or you can copy Access data to the clipboard and then paste it into an Excel spreadsheet.

  • You can export a table, query, form, or report. You can also export selected records in a multiple-record view, such as a datasheet.

  • Microsoft Excel includes a command to import data from an Access database. You can use that command instead of the export command in Access; however, the Excel import command only allows you to import tables or queries. For more information, see the Excel Help article Connect to (import) external data.

  • You cannot export macros or modules to Excel. When you export a form, report, or datasheet that contains subforms, subreports, or subdatasheets, only the main form, report, or datasheet is exported. You must repeat the export operation for each subform, subreport, and subdatasheet that you want to export to Excel.

  • You can only export one database object in a single export operation. However, you can merge multiple worksheets in Excel after you complete the individual export operations.

Top of Pge

Prepare for the export operation

Before performing an export procedure, it is a good idea to review the data that you want to export to make sure that it does not contain any error indicators or error values. If there are any errors, try to resolve them before you export the data to Excel. Otherwise, problems can occur during the export operation, and null values might be inserted into cells in the Excel worksheet. For more information about problems that can occur when exporting to Excel, see the section Troubleshoot missing and incorrect values.

If the source object is a table or a query, decide whether you want to export the data with or without its formatting. This decision affects two aspects of the resulting workbook — the amount of data that is exported and the display format of the data. The following table describes the outcome of exporting formatted and unformatted data.

Export

Source Object

Fields and records

Formatting

Without formatting

Table or query

Note:  Forms and reports cannot be exported without their formatting.

All fields and records in the underlying object are exported.

The Format property settings are ignored during the operation.

For lookup fields, only the lookup ID values are exported.

For hyperlink fields, the contents are exported as a text column that displays the links in the format displaytext#address#.

With formatting

Table, query, form, or report

Only fields and records that are displayed in the current view or object are exported. Filtered records, hidden columns in a datasheet, and fields not displayed on a form or report are not exported.

The wizard respects the Format property settings.

For lookup fields, the lookup values are exported.

For hyperlink fields, the values are exported as hyperlinks.

For rich text fields, the text is exported but the formatting is not.

  1. Choose the destination workbook and file format. Note that reports can only be exported in the older *.xls file format, not in the newer *.xlsx file format.

    During the export operation, Access prompts you to specify the name of the destination workbook. The following table summarizes when a workbook is created (if it does not already exist) and when it is overwritten (if it does already exist).

If the destination workbook

And the source object is

And you want to export

Then

Does not exist

A table, query, form, or report

The data, with or without the formatting

The workbook is created during the export operation.

Already exists

A table or query

The data, but not the formatting

The workbook is not overwritten. A new worksheet is added to the workbook, and is given the name of the object from which the data is being exported. If a worksheet having that name already exists in the workbook, Access prompts you to either replace the contents of the corresponding worksheet or specify another name for the new sheet.

Already exists

A table, query, form, or report

The data, including the formatting

The workbook is overwritten by the exported data. All existing worksheets are removed, and a new worksheet having the same name as the exported object is created. The data in the Excel worksheet inherits the format settings of the source object.

The data is always added in a new worksheet. You cannot append the data to any existing worksheet or named range.

Top of Page

Run the export operation

  1. If the destination Excel workbook is open, close it before you continue.

  2. In the Navigation Pane of the source database, select the object that you want to export.

    Export only a portion of the data

    If the object is a table, query, or form, and you want to export only a portion of the data, open the object in Datasheet view and select the records you want.

    To open a form in Datasheet view:    

    1. Double-click the form to open it.

    2. Right-click the form, and then click Datasheet View. If this option is not available:

      1. Click Design View.

      2. Press F4 to display the Property Sheet task pane.

      3. Select Form from the drop-down list at the top of the Property Sheet.

      4. On the Format tab of the Property Sheet, set the Allow Datasheet View property to Yes.

      5. On the Design tab, in the Views group, click Datasheet View.

        Note:  You cannot export a portion of a report. However, you can select or open the table or query that the report is based on, and then export a portion the data in that object.

  3. On the External Data tab, in the Export group, click Excel.

  4. In the Export — Excel Spreadsheet dialog box, review the suggested file name for the Excel workbook (Access uses the name of the source object). If you want, you can modify the file name.

  5. In the File Format box, select the file format that you want.

  6. If you are exporting a table or a query, and you want to export formatted data, select Export data with formatting and layout. For more information, see the section Prepare for the export operation.

    Note:  If you are exporting a form or report, this option is always selected but unavailable (it appears dimmed).

  7. To view the destination Excel workbook after the export operation is complete, select the Open the destination file after the export operation is complete check box.

    If the source object is open, and if you selected one or more records in the view before starting the export operation, you can select Export only the selected records. To export all the records displayed in the view, leave this check box cleared.

    Note:  This check box remains unavailable (dimmed) if no records are selected.

  8. Click OK.

    If the export operation fails because of an error, Access displays a message that describes the cause of the error. Otherwise, Access exports the data and, depending on your selection in step 7, opens the destination workbook in Excel. Access then displays a dialog box in which you can create a specification that uses the details from the export operation.

Top of Page

What else should I know about exporting?

  • For information on how to save the details of your export into a specification that you can reuse later, see the article Save the details of an import or export operation as a specification.

  • For information on how to run saved export specifications, see the article Run a saved import or export operation.

  • For information on how to schedule specifications to run at specific times, see the article Schedule an import or export operation.

  • For information on how to change a specification name, delete specifications, or update the names of source files in specifications, see the article Manage Data Tasks.

Top of Page

Troubleshoot missing and incorrect values

The following table describes various ways of troubleshooting common errors.

Tip:  If you find that just a few values are missing, fix them in the Excel workbook. Otherwise, fix the source object in the Access database, and then repeat the export operation.

Issue

Description and resolution

Calculated fields

The results of calculated fields are exported; the underlying expressions that perform the calculations are not.

Multivalued fields

Fields that support multiple values are exported as a list of values separated by semicolons (;).

Pictures, objects, and attachments

Graphical elements (such as logos, contents of OLE object fields, and attachments that are part of the source data) are not exported. Add them to the worksheet manually after you complete the export operation.

Graph

When you export a form or report that contains a Microsoft Graph object, the graph object is not exported.

Data in the wrong column

Null values in the resulting worksheet are sometimes replaced by the data that should be in the next column.

Missing date values

Date values earlier than Jan 1, 1900 are not exported. The corresponding cells in the worksheet will contain a null value.

Missing expressions

Expressions that are used to calculate values are not exported to Excel. Only the results of the calculations are exported. Manually add the formula to the Excel worksheet after you complete the export operation.

Missing subforms, subreports, and subdatasheets

When you export a form, report, or datasheet, only the main form, report, or datasheet is exported. You must repeat the export operation for each subform, subreport, and subdatasheet that you want to export.

Missing or incorrectly formatted columns

If none of the columns appear to be formatted in the resulting worksheet, repeat the export operation, being sure to select the Export data with formatting and layout check box in the wizard. Conversely, if only some columns appear to be formatted differently from the versions in the source object, apply the formatting that you want manually in Excel.

Format a column in Excel

  1. Open the destination Excel workbook, and then display the worksheet that contains the exported data.

  2. Right-click a column or a selected range of cells, and then click Format Cells.

  3. On the Number tab, under Categories, select a format, such as Text, Number, Date, or Time.

  4. Click OK.

«#» value in a column

You might see the value # in a column that corresponds to a Yes/No field in a form. This can be the result of starting the export operation from the Navigation Pane or in Form view. To resolve this issue, open the form in Datasheet view before exporting the data.

Error indicators or error values

Check the cells for error indicators (green triangles in the corners) or error values (strings that begin with the # character instead of the appropriate data).

Top of Page

Понравилась статья? Поделить с друзьями:
  • Query from excel files
  • Question word order games
  • Query excel как объединить ячейки
  • Question word order game
  • Question word order french