![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Печать отчёта [D7, XP]
Washington © (2007-03-05 19:07:00)Ситуация такая. Имеется отчёт в БД Access. С помощью Delphi (вернее, программы созданной в Delphi) надо открыть этот отчёт и отправить на печать.
UMU (2007-03-07 19:11:00) [1]Washington, проверь e-mail, там пример.
Washington (2007-03-07 13:07:00) [2]Нет, уже не Invalid variant operation. Теперь операция не доступна.
Washington (2007-03-07 12:49:00) [3]Библиотеку ComObj подключил. Теперь говорит Invalid variant operation.
конечно есть. А если какое-то очередное извращение, устанавливающееся отдельно, то хто его знает. А справку я даже на великом и могучем читал. Вроде всё правильно. Ничо нового там нет.
UMU (2007-03-07 10:30:00) [4]
> В чём ошибка?
попробуй подключить библиотекуComObj
Сергей М. (2007-03-06 15:23:00) [5]
> Washington (06.03.07 14:41) [3]
БДAccess и ПриложениеMSAccess - вовсе не одно и тоже.
Разницу осюсяешь ?
ПриложениеMSAccess присутствует на данной машине ?
Плохиш (2007-03-06 15:10:00) [6]
> Washington (06.03.07 14:41) [3]
> В чём ошибка?
В нежелании пользоваться прилагаемой к делфи справкой.
Washington (2007-03-06 14:41:00) [7]Попробовал так. Вроде всё бы нормально, но функции GetActiveOleObject и CreateOleObject ему не нравятся. Говорит Undeclared identifier. В var'е всё замётано. В чём ошибка?
UMU (2007-03-05 21:12:00) [8]
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;
торможу 8-)
UMU (2007-03-05 21:11:00) [9]попробуй вот так:
> 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;