Как можно открыть отчёт (в режиме Print Preview а также Print Direct) в MS Access
От: Святой Петр
Кому: Всем на Земле
Дата Октябрь, 1999 от рождества Христова
Тема: Не помирать!
Для ускорения регистрационного процесса у врат Рая, мы стали использовать Microsoft Access, после чего у нас начались серьeзные проблемы. А посему, пожалуйста, не помирайте пока!
var
Access: Variant;
begin// Открываем Accesstry
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;
Перевод контента на русский язык:
Код, который я предоставил, написан на Delphi и используется для открытия отчета в Microsoft Access с помощью метода DoCmd.OpenReport. Вот шаг за шагом, как он работает:
Сначала код пытается получить активную инстанцию Access с помощью метода GetActiveOleObject, а если это не удается, то создает новую инстанцию с помощью метода CreateOleObject.
Затем код устанавливает видимость приложения Access в True, что делает его видимым на экране.
Код открывает файл базы данных, расположенный по адресу C:\My Documents\Books.mdb, в исключительном режиме (то есть другой пользователь не может открыть базу данных, пока она не будет открыта этим кодом).
Затем код открывает отчет с именем "Titles by Author" в режиме просмотра с помощью метода DoCmd.OpenReport.
Первый параметр метода OpenReport - имя отчета, второй параметр - режим просмотра (в этом случае acViewPreview для просмотра на печать), третий и четвертый параметры - пустые строки (EmptyParam), которые могут использоваться для указания дополнительных опций или WHERE-условия SQL.
Код также закрывает файл базы данных и выходит из Access после выполнения отчета.
Также стоит отметить, что для открытия отчета в режиме прямой печати нужно использовать acViewNormal вместо acViewPreview, как показано ниже:
Access.DoCmd.OpenReport('Titles by Author',acViewNormal,EmptyParam,EmptyParam);
Это откроет отчет напрямую для печати без просмотра в режиме просмотра.
Надо отметить, что этот код довольно старый (от октября 1999 года) и может не работать так, как ожидалось, с современными версиями Access. Кроме того, использование поздней привязки (Variant) может привести к ошибкам времени выполнения, если объект не был должным образом инициализирован или не поддерживает ожидаемые свойства или методы. Рекомендуется использовать раннюю привязку (TAccessApplication интерфейс) для лучшей совместимости и обработки ошибок.
Вот обновленная версия кода, которая использует раннюю привязку:
usesAccess;procedureOpenReport;varAccessApp:TAccessApplication;begin// Получение активной инстанции AccesstryAccessApp:=AccessApp.Active;except// Создание новой инстанции, если она не активнаAccessApp:=CreateOleObject(TAccessApplication)asTAccessApplication;end;AccessApp.Visible:=True;// Открытие файла базы данныхAccessApp.OpenCurrentDatabase('C:\My Documents\Books.mdb',True);// Открытие отчета в режиме просмотра на печатьAccessApp.DoCmd.OpenReport('Titles by Author',acViewPreview,'','');// Закрытие файла базы данных и выход из AccessAccessApp.CloseCurrentDatabase;AccessApp.Quit(0);end;
В этом коде используется интерфейс TAccessApplication для взаимодействия с Access, что обеспечивает лучшую типизацию и обработку ошибок. Метод OpenReport также вызывается с более явными параметрами, чтобы избежать любых потенциальных проблем.
Открывать отчёт в MS Access можно с помощью команды DoCmd.OpenReport, указав имя отчёта и режим отображения (например, acViewPreview для просмотра отчёта в режиме Print Preview).
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.