Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.11.2010, 10:57
SpecDrum SpecDrum вне форума
Прохожий
 
Регистрация: 22.11.2010
Сообщения: 1
Репутация: 10
По умолчанию Экспорт отчета в Excel

Здравствуйте, уважаемые эксперты!
Используется Delphi 7 + база Access. Помогите пожалуйста, уже замучился.
Необходимо программно вывести отчет по запросу в Excel, при этом в запросе выборка идет по введенному пользователем параметру. Как это реализовать? Неужели выводить построчно записи на лист Excel?
В Access есть функция экспорта отчета в Excel, но никак не удается ее использовать, чтобы все работало правильно. Нужно, чтобы стандартный Access'овский диалог ввода параметра запроса не появлялся, потому что значение параметра устанавливается созданным мной в Delphi диалогом.
Отчет называется Employees, в базе он уже создан и настроен, и работает. Дело в том, что в Access мне удавалось решить эту задачу при помощи VBA, даже несколькими способами, но при использование этих инструкций в Delphi приводило к различным ошибкам.
Как решить проблему? Буду очень благодарен любой помощи!

Процедура экспорта в Excel, но при ее использовании помимо вывода моего диалога, также после него появляется стандартный диалог Access с запросом ввода того же параметра.
Код:
procedure TEmployeeIDReportDialog.EmployeeIDReportExport;
// формирование отчета по таб. номеру и экспорт в Excel
var
  AccessApp: _Application;
  EmployeeIDExportFileName: String;
begin
  EmployeeIDExportFileName := ExtractFilePath(paramstr(0)) + 'Отчет по таб. номеру ' + IntToStr(EmployeeIDReportDialog.EmployeeID) + '.xls';
  try
    AccessApp := CoAccessApplication.Create;
    if AccessApp.Version >= '11' then
       AccessApp.AutomationSecurity := 1;  //1 = msoAutomationSecurityLow
    AccessApp.OpenCurrentDatabase(ExtractFilePath(paramstr(0)) + '\Permits.mdb', False, MainForm.DBPass);
    AccessApp.DoCmd.OutputTo(acReport, 'Employees', 'Microsoft Excel (*.xls)',
          EmployeeIDExportFileName, True, '', 0);
  finally
    AccessApp.CloseCurrentDatabase;
    AccessApp.Quit(acQuitSaveNone);
  end;
end;
Admin: Пользуемся тегами!

Последний раз редактировалось Admin, 22.11.2010 в 11:02.
Ответить с цитированием
  #2  
Старый 25.11.2010, 17:18
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

Если мне не изменяет память то к экселю можно подключиться как в бд (через адо например). Ну и значит делаем select к базе аксесса и потом insert в бд(эксель). думаю прокатит
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:04.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter