|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Экспорт отчета в 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, 22.11.2010 в 11:02. | 
| 
			 
			#2  
			
			
			
			
		 | ||||
| 
 | ||||
|   Если мне не изменяет память то к экселю можно подключиться как в бд (через адо например). Ну и значит делаем select к базе аксесса и потом insert в бд(эксель). думаю прокатит   |