Ram-zes Пользователь Сообщений: 46 |
Есть таблица Excel, данные которой загружаются в запрос на выборку Access Нужен третий вариант: загрузка данных именованного диапазона или заданного диапазона, например A3:K20. Подскажите, можно ли загружать напрямую из Excel в ЗАПРОС Access данные диапазона? Если да, то как? Изменено: Ram-zes — 12.01.2015 17:58:10 |
B.Key Пользователь Сообщений: 633 |
попробуйте просто указать имя именованного диапазона …….С:База данныхФайл.xlsx].[tbl] |
Ram-zes Пользователь Сообщений: 46 |
B.Key, так не получается… 2. Данные заданных полей (поля должны стоять в первой строке) 3. Данные по заданному диапазону 4. Данные по именованному диапазону Изменено: Ram-zes — 15.01.2015 16:34:17 |
LVL Пользователь Сообщений: 903 |
Загрузка в запрос — не правильная постановка задачи (формулировка). Если я правильно понял, то вам нужно использовать значения из именованного диапазона в запросе на выборку в базе Access. Тогда я бы сделал так: |
Ram-zes Пользователь Сообщений: 46 |
Да, использовать значения… LVL, обмен данными идет постоянно — это не разовая акция. Поэтому, как я понимаю, при удалении связанной таблицы, данные перестанут загружаться в запрос. |
LVL Пользователь Сообщений: 903 |
#6 15.01.2015 14:19:58
В чем проблема, не удаляйте связанную таблицу
Доля правды в этом есть, вернее даже не так… Варианта 2: Лично я предпочту первый вариант, он более прозрачен и его проще поддерживать, что касается производительности, то да, в теории второй вариант быстрее, но это только в теории, на практике время выполнения запроса врятле будет отличаться значительно. На самом деле вопрос несколько в ином, насколько сложно сформировать запрос сразу со всеми ограничениями? + Нужно ли будет его корректировать и как часто… Поэтому, как я уже сказал, я предпочту первый вариант. |
||||
LVL Пользователь Сообщений: 903 |
Перечитал ещё раз тему… Хочу уточнить — где находятся данные и куда их нужно вернуть? Я предполагал, что данные находятся в базе Access и вы хотите получать их с помощью запроса в файл Excel, при этом в тексте запроса использовать ограничения указанные в файле Excel… Я правильно вас понял? |
Antubas Пользователь Сообщений: 50 |
#8 15.01.2015 14:28:51
DAO.Recordset не спасет? Если в него записать SQL запрос условием отбора, после обнулить и закрыть. |
||
Ram-zes Пользователь Сообщений: 46 |
Вообще коммуникация очень сложная… Но если коротко то примерно так: Изменено: Ram-zes — 15.01.2015 14:36:16 |
LVL Пользователь Сообщений: 903 |
Задумчивая схема… |
Ram-zes Пользователь Сообщений: 46 |
Antubas, может DAO.Recordset и спасет… Но мне об этом не ведомо. Я не профессиональный IT и к сожалению об DAO.Recordset пока ничего не знаю. Можете показать пример кода, я попробую |
Ram-zes Пользователь Сообщений: 46 |
LVL, ну сейчас с запросами и получением (обменом) информации между файлами проблем нет. Есть другая проблема: Почему при обновлении данных в файле Excel открывается другой файл, связанный с ним через запрос Access? Есть файл данные_1.xlsx. Он связан с файлом данные_2.xlsx через запрос Access. Все файлы находятся в локальной сети. Подключение к базе данных Access в Excel идет по ссылке на сетевой диск Data Source=P:База… Можно ли решить эту проблему через настройку свойств подключения в Excel? В частности в настройке прав доступа: Изменено: Ram-zes — 15.01.2015 14:43:28 |
Ram-zes Пользователь Сообщений: 46 |
Когда я создавал эту тему, то хотел упростить (упорядочить) работу в Access, обнаружил в интернете информацию про прямое обращение к файлам Excel с помощью запросов из Access, но там не было информации о том, как делать такие запросы на диапазоны. Пока ждал помощи, сам разобрался с этими запросами, но вот появилась новая проблемы с обновлением данных (описал выше) |
Antubas Пользователь Сообщений: 50 |
#14 15.01.2015 14:51:53
Примерно так |
||||
Ram-zes Пользователь Сообщений: 46 |
Да, совсем забыл, есть еще одно огромное преимущество у SQL запросов перед связанными таблицами. Вы знаете, что Access не берет более 255 столбцов… |
Ram-zes Пользователь Сообщений: 46 |
Antubas, а вставляем этот код в SQL запрос? Я правильно понимаю, что вместо моего кода нужно вставить ваш? |
Antubas Пользователь Сообщений: 50 |
Может выложите примерчик с Excel и Access файлом, или сходите на http://www.cyberforum.ru/ms-access/ там помогут с Access. |
Antubas Пользователь Сообщений: 50 |
#18 15.01.2015 15:03:51
В VBA, лучше всего дайте файлы с примерами ) |
||
LVL Пользователь Сообщений: 903 |
#19 15.01.2015 15:04:20
Вы создаете таблицы в Access с таким количеством полей? |
||
Ram-zes Пользователь Сообщений: 46 |
LVL, а куда деваться? Если нужно такое количество полей: 01.01 | 02.01 | 03.01 и т.д. Antubas, с VBA не работаю, к сожалению… Изменено: Ram-zes — 15.01.2015 15:08:07 |
Antubas Пользователь Сообщений: 50 |
У Вас база Access типа «Клиент»-«Сервер», или же Вы Access используете просто для операции БД? Изменено: Antubas — 15.01.2015 15:08:14 |
Ram-zes Пользователь Сообщений: 46 |
видимо просто для операции БД |
Ram-zes Пользователь Сообщений: 46 |
В принципе, выложить можно, но мне нужно ее подготовить для этого, только завтра |
Antubas Пользователь Сообщений: 50 |
#24 15.01.2015 15:11:44
А почему бы тогда Вам не тратить время на Access и сделать все эти деления и обновления в самом Excel?
no problem Изменено: Antubas — 15.01.2015 15:21:55 |
||||
Ram-zes Пользователь Сообщений: 46 |
Вопрос в совместном доступе в Excel — не просто это сделать (ну мне не просто). Потребуется VBA. Ну или я не знаю адекватного способа Изменено: Ram-zes — 15.01.2015 15:21:11 |
Ram-zes Пользователь Сообщений: 46 |
В общем решение оказалось простым. Нужен офис 2010 на всех компах и в свойствах подключения в правах доступа нужно указать: Share Deny None |
zin-renat Пользователь Сообщений: 1 |
#27 24.07.2015 11:37:14 Добрый день. Ситуация такая. Имеется запрос из внешней базы данных MS SQL Server 2012, результат которого выводится в книгу Excel.
Как вместо цифры 10 подставить значение из ячейки листа Excel без использования VBA? |
||
JeyCi Пользователь Сообщений: 3357 |
#28 24.07.2015 12:05:22 попробуйте так — при обновлении запроса должно выскочить окно — там и указать ячейку или др (см вроде бы в свойствах выходной таблицы — параметры)…
или заново сформируйте параметрический (!) запрос через ms query… см пост№23 здесь p.s. и все запросы сваливать в эту ветку, наверно, не надо — лучше см. Правила форума — чуть что, я вас предупредила… Изменено: JeyCi — 24.07.2015 12:10:08 чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах) |
||
Перейти к содержанию
На чтение 2 мин Опубликовано 19.06.2015
Этот пример научит вас импортировать данные из базы данных Microsoft Access с помощью мастера запросов Microsoft Query. Используя Microsoft Query, вы можете выбрать нужные столбцы и импортировать в Excel только их.
- На вкладке Data (Данные) нажмите кнопку From Other Sources (Из других источников) и выберите From Microsoft Query (Из Microsoft Query).Появится диалоговое окно Choose Data Source (Выбор источника данных).
- Выберите MS Access Database* и поставьте галочку напротив опции Use the Query Wizard to create/edit queries (Использовать мастер запросов).
- Нажмите ОК.
- Выберите базу данных и кликните ОК.Эта база данных состоит из нескольких таблиц. Вы можете выбрать таблицу и столбцы, которые нужно включить в запрос.
- Выделите таблицу Customers и кликните по кнопке с символом «>«.
- Нажмите Next (Далее).
- Чтобы импортировать только указанный набор данных, отфильтруйте их. Для этого выделите City в списке Column to filter (Столбцы для отбора). Справа в первом выпадающем списке выберите equals (равно), а во втором название города – New York.
- Нажмите Next (Далее).
Вы можете отсортировать данные, если хотите, мы же не будем этого делать.
- Нажмите Next (Далее).
- Нажмите Finish (Готово), чтобы отправить данные в Microsoft Excel.
- Выберите тип отображения информации, куда следует поместить данные и нажмите ОК.
Результат:
Примечание: Когда база данных Access изменится, можно будет нажать Refresh (Обновить), чтобы загрузить изменения в Excel.
Оцените качество статьи. Нам важно ваше мнение:
- Что делает макрос
- Код макроса
- Как работает макрос
- Как использовать
- Скачать файл
Ссылка на это место страницы:
#zadacha
Если вы часто копируете и вставляете результаты запросов Microsoft Access в Excel вам пригодится этот макрос. В этом макросе используется DAO (Data Access Object), чтобы открыть и запустить запрос Access в фоновом режиме и вывести результаты в Excel.
В этом макросе вы указываете Excel базу данных Access и извлекаете данные из существующего запроса. Затем вы сохраняете этот запрос в Recordset объекта, который вы можете использовать для заполнения таблиц Excel. Необходимо установить ссылку на библиотеку объектов Microsoft Access. В дополнение к библиотеке объектов доступа, необходимо установить ссылку на Microsoft DAO XX библиотеки объектов, где XX это номер версии. Обратите внимание, что вы можете увидеть несколько версий этой библиотеки в диалоговом окне Reference. Как правило, нужно выбрать последнюю версию Microsoft DAO. Установите флажок рядом с записью.
Ссылка на это место страницы:
#formula
Sub
VipolnitZaprosAccessIzExcel()
Dim
MyDatabase
As
DAO.Database
Dim
MyQueryDef
As
DAO.QueryDef
Dim
MyRecordset
As
DAO.Recordset
Dim
i
As
Integer
Set
MyDatabase = DBEngine.OpenDatabase _
(
"C:TempYourAccessDatabse.accdb"
)
Set
MyQueryDef = MyDatabase.QueryDefs(
"Ваше имя запроса"
)
Set
MyRecordset = MyQueryDef.OpenRecordset
Sheets(
"Лист1"
).
Select
ActiveSheet.Range(
"A6:K10000"
).ClearContents
ActiveSheet.Range(
"A7"
).CopyFromRecordset MyRecordset
For
i = 1
To
MyRecordset.Fields.Count
ActiveSheet.Cells(6, i).Value = MyRecordset.Fields(i - 1).Name
Next
i
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.
2. Click From Other Sources, 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’.
4. Click OK.
5. Select the database and click OK.
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.
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.
9. Click Next.
You can sort your data if you want (we don’t do it here).
10. Click Next.
11. Click Finish to return the data to Microsoft Excel.
12. Select how you want to view this data, where you want to put it, and click OK.
Result:
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.
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. |
-
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
-
If the destination Excel workbook is open, close it before you continue.
-
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:
-
Double-click the form to open it.
-
Right-click the form, and then click Datasheet View. If this option is not available:
-
Click Design View.
-
Press F4 to display the Property Sheet task pane.
-
Select Form from the drop-down list at the top of the Property Sheet.
-
On the Format tab of the Property Sheet, set the Allow Datasheet View property to Yes.
-
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.
-
-
-
On the External Data tab, in the Export group, click Excel.
-
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.
-
In the File Format box, select the file format that you want.
-
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).
-
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.
-
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
|
«#» 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