Форум: "Начинающим";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];
ВнизПечать отчёта Найти похожие ветки
← →
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);
// открываем отч¸т
{Значение второго пораметра может быть одним из следующих
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-)
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.038 c