Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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);

 // открываем отч&#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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.055 c
15-1173096896
Kerk
2007-03-05 15:14
2007.04.01
Федор Бондарчук снимает Обитаемый остров


15-1173178928
dolmat
2007-03-06 14:02
2007.04.01
Фильм нужен


1-1171005992
Choco
2007-02-09 10:26
2007.04.01
AutoSize для компонента Animate


15-1173602438
$Pl@Sh
2007-03-11 11:40
2007.04.01
Где скачать?


9-1143529208
Gleb
2006-03-28 11:00
2007.04.01
Нужно написать функцию которую при нажатии на кнопку выполняет





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский