Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.01;
Скачать: CL | DM;

Вниз

Печать отчёта   Найти похожие ветки 

 
Washington   (2007-03-05 19:07) [0]

Ситуация такая. Имеется отчёт в БД Access. С помощью Delphi (вернее, программы созданной в Delphi) надо открыть этот отчёт и отправить на печать.


 
UMU ©   (2007-03-05 21:11) [1]

попробуй вот так:


> var
>   Access: Variant;
> begin
>   // Открываем Access
>   try
>     Access := GetActiveOleObject("Access.Application");
>   except
>     Access := CreateOleObject("Access.Application");
>   end;
>   Access.Visible := True;
>
>   // Открываем базу данных
>   // Второй параметр указывает - будет ли база открыта в
> Exclusive режиме
>   Access.OpenCurrentDatabase("C:\My Documents\Books.mdb",
>  True);
>
>   // открываем отч¸т
>   {Значение второго пораметра может быть одним из следующих
>   acViewDesign, acViewNormal, or acViewPreview. acViewNormal,
>
>   которые устанавливаются по умолчанию, для печати отч¸та.
>
>   Если Вы не используете библиотеку типов, то можете определить
>   эти значения следующими:
>
>   const
>   acViewNormal = $00000000;
>   acViewDesign = $00000001;
>   acViewPreview = $00000002;
>
>   Третий параметр - это имя очереди для текущей базы данных.
>
>   Четв¸ртый параметр - это строка для SQL-евского WHERE
> -
>   то есть строка SQL, минус WHERE.}
>
>   Access.DoCmd.OpenReport("Titles by Author", acViewPreview,
>  EmptyParam,
>     EmptyParam);
>
>   < ... >
>
>   // Закрываем базу данных
>   Access.CloseCurrentDatabase;
>
>   // Закрываем Access
>   {const
>   acQuitPrompt = $00000000;
>   acQuitSaveAll = $00000001;
>   acQuitSaveNone = $00000002;}
>   Access.Quit(acQuitSaveAll);
> end;


 
UMU ©   (2007-03-05 21:12) [2]

var
 Access: Variant;
begin
 // Открываем Access
 try
   Access := GetActiveOleObject("Access.Application");
 except
   Access := CreateOleObject("Access.Application");
 end;
 Access.Visible := True;

 // Открываем базу данных
 // Второй параметр указывает - будет ли база открыта в Exclusive режиме
 Access.OpenCurrentDatabase("C:\My Documents\Books.mdb", True);

 // открываем отч&#184;т
 {Значение второго пораметра может быть одним из следующих
 acViewDesign, acViewNormal, or acViewPreview. acViewNormal,
 которые устанавливаются по умолчанию, для печати отч&#184;та.
 Если Вы не используете библиотеку типов, то можете определить
 эти значения следующими:

 const
 acViewNormal = $00000000;
 acViewDesign = $00000001;
 acViewPreview = $00000002;

 Третий параметр - это имя очереди для текущей базы данных.
 Четв&#184;ртый параметр - это строка для SQL-евского WHERE -
 то есть строка SQL, минус WHERE.}

 Access.DoCmd.OpenReport("Titles by Author", acViewPreview, EmptyParam,
   EmptyParam);

 < ... >

 // Закрываем базу данных
 Access.CloseCurrentDatabase;

 // Закрываем Access
 {const
 acQuitPrompt = $00000000;
 acQuitSaveAll = $00000001;
 acQuitSaveNone = $00000002;}
 Access.Quit(acQuitSaveAll);
end;


торможу 8-)


 
Washington   (2007-03-06 14:41) [3]

Попробовал так. Вроде всё бы нормально, но функции GetActiveOleObject и CreateOleObject ему не нравятся. Говорит Undeclared identifier. В var"е всё замётано. В чём ошибка?


 
Плохиш ©   (2007-03-06 15:10) [4]


> Washington   (06.03.07 14:41) [3]


> В чём ошибка?

В нежелании пользоваться прилагаемой к делфи справкой.


 
Сергей М. ©   (2007-03-06 15:23) [5]


> Washington   (06.03.07 14:41) [3]


БД Access и Приложение MSAccess - вовсе не одно и тоже.

Разницу осюсяешь ?

Приложение MSAccess присутствует на данной машине ?


 
UMU ©   (2007-03-07 10:30) [6]


> В чём ошибка?


попробуй подключить библиотеку ComObj


 
Washington   (2007-03-07 12:49) [7]

Библиотеку ComObj подключил. Теперь говорит Invalid variant operation.
конечно есть. А если какое-то очередное извращение, устанавливающееся отдельно, то хто его знает. А справку я даже на великом и могучем читал. Вроде всё правильно. Ничо нового там нет.


 
Washington   (2007-03-07 13:07) [8]

Нет, уже не Invalid variant operation. Теперь операция не доступна.


 
UMU ©   (2007-03-07 19:11) [9]

Washington, проверь e-mail, там пример.



Страницы: 1 вся ветка

Текущий архив: 2007.04.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.054 c
4-1163515236
Max_2006
2006-11-14 17:40
2007.04.01
Вывести bmp-рисунок на окно на API


15-1173445736
boriskb
2007-03-09 16:08
2007.04.01
Байка?


4-1163413288
--= Eagle =--
2006-11-13 13:21
2007.04.01
Узнать марку привода


1-1170616649
flaxe
2007-02-04 22:17
2007.04.01
Bitmap в ICO


15-1173480005
Тот самый
2007-03-10 01:40
2007.04.01
Task Bar