Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/75: Рейтинг темы: голосов - 75, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 24.03.2014
Сообщений: 42
1

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

24.03.2014, 09:40. Показов 14912. Ответов 25
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!

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

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

Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2014, 09:40
Ответы с готовыми решениями:

Экспорт отчета из Access в Excel
Нужна помощь в экспорте отчета из access в excel, как это программно осуществить на vba...не...

Экспорт отчета Access c изображениями в Excel, возможно ли?
Добрый день! В базе MS Access 2016 в таблицах хранятся фотографии, но ни как вложения или объект...

Экспорт многостраничного отчета access в определенные ячейки excel
Спасибо за топик. У меня такой вопрос. Создается отчет, в зависимости от разных условий он может...

Экспорт отчета access в таблицу excel урезает символы
Доброго времени суток! Столкнулся с проблемой при экспорте отчета access в таблицу excel. Поля...

25
3356 / 1775 / 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
3356 / 1775 / 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
3356 / 1775 / 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.
Миниатюры
Экспорт отчета из access в excel   Экспорт отчета из access в excel   Экспорт отчета из access в excel  

0
3356 / 1775 / 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
12082 / 4942 / 791
Регистрация: 07.08.2010
Сообщений: 14,509
Записей в блоге: 4
24.03.2014, 14:05 10
похоже связи неправильно установлены
0
3356 / 1775 / 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
3356 / 1775 / 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
3356 / 1775 / 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 Посмотреть сообщение
Повторюсь, выложите пример БД в виде тех трех табличек (можно без записей). На нем проще показать, если не понимаете о чем речь.
Думаю проще будет всю БД показать.
Вложения
Тип файла: rar OII - копия (2).rar (3.75 Мб, 60 просмотров)
0
3356 / 1775 / 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
Думаю проще будет всю БД показать.
Да, только нормальный файл, а не битый.
У меня открывается, перезалил все равно.
Вложения
Тип файла: rar OII - копия (2).rar (222.9 Кб, 104 просмотров)
0
24.03.2014, 15:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2014, 15:51
Помогаю со студенческими работами здесь

Экспорт отчета из Access в jpg
Приветствую! Подскажите пожалуйста как выполнить экспорт одностраничного отчета в файл .jpg?? как...

Экспорт-импорт данных Excel-Access-Excel
Доброе время суток уважаемые форумчане. Приходит информация в экселевской таблице. Скидываю её в...

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

Excel -> Access -> Excel, импорт - экспорт
Добрый день! Есть табель учета рабочего времени в таблице Excel, задача - переместить данные со...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru