Программирование в Access
12.1. Отличительные особенности создания приложений в Access
Программирование в Access сильно отличается от программирования в Word, Excel и других приложениях Office. Главное принципиальное отличие заклю-
чается в том, что Word, Excel, PowerPoint, Project и т. п. предназначены, пре-
жде всего, для непосредственной работы пользователя, без какой-либо их доработки со стороны разработчиков предприятия. Access иногда используется пользователями как конечное приложение, но чаще он все-таки применяется как платформа для создания своих приложений разработчиками.
Второе отличие заключается в том, что в Access встроено свое собственное ядро для работы с данными. Фактически Access — это полноценная система управления базами данных, поэтому для полного использования его возможностей необходимы знания о принципах работы с базами данных: что такое таблицы и отношения между ними (система ключей), что такое нормализация данных, типы данных, ограничения целостности и т. п. Очень часто пользователи на предприятиях такими знаниями не обладают.
Кроме того, существуют разные варианты использования Access с точки зрения архитектуры приложения. Иногда Access (файл MDB) используется просто как ядро, которое управляет данными, находящимися в таблицах. Пользователи работают с этими данными через внешние приложения, созданные разработчиками, например, на Visual Basic, Delphi или C++. В других ситуациях Access, наоборот, используется только для предоставления пользовательского интерфейса для работы с данными, которые физически расположены на серверах баз данных, например, SQL Server, Oracle, IBM D2 и т. п.
В Access предусмотрен встроенный язык запросов JET SQL, который активно используется разработчиками для работы с данными в базах Access.
Программирование в Access
Подводя итоги, можно сказать, что программирование средствами VBA в Access, которое будет рассмотрено в этой главе, — это лишь малая часть возможностей этого приложения. Очень многие возможности работы с Access (например, его язык запросов или проектирование и создание таблиц) останутся за пределами этой книги. Для этого существует отдельная литература. Заметим, что во многих книгах по Access за рамками остается как раз язык VBA и объектная модель самого Access, так что эта глава может послужить хорошим дополнением к ним.
Какие задачи на предприятии чаще всего решаются средствами автоматиза-
Сразу же скажем, что поскольку Access — это система управления базами данных, то он очень часто используется как контейнер для хранения данных. При этом данные могут быть самыми разными, например, обычные данные о заключенных договорах или клиентах вашего предприятия, цифровые фотографии, шаблоны Word и Excel, которые используются для генерации отчетов из баз данных. В Access все эти данные вместе с графическим интерфейсом можно «упаковать» в один MDB-файл, что позволяет сделать приложение очень компактным и удобным для переноса с одного компьютера на другой.
Еще одно важное назначение Access — обеспечение клиентского интерфейса для работы с данными, которые хранятся на мощных клиент-серверных сис-
темах, таких как SQL Server, Oracle, IBM DB2. Согласно Microsoft, рекомен-
дуется использовать настольные системы (такие как Access, FoxPro, Paradox и т. п.), если к данным одновременно будут обращаться не более 10 пользователей. Если пользователей больше или самих данных очень много (несколько гигабайт), то рекомендуется использовать более сложные, но и более функциональные клиент-серверные системы. А уже в рамках обеспечения доступа к данным (на клиент-серверных системах или прямо в базах данных Access) решаются более узкоспециализированные задачи приложений:
создание обычных форм , т. е. формирование программных интерфейсов для занесения, изменения или просмотра данных в базе и Web-форм (они называются страницами доступа к данным);
создание отчетов к базам данных , в том числе параметризованных;
создание программной логики приложения обычным способом — на VBA (модули) и для начинающих пользователей (макросы, которые всегда можно преобразовать в модули);
вспомогательные действия — печать, экспорт и преобразование данных (хотя для преобразования данных обычно удобнее использовать объектную модель DTS), загрузка данных, репликация и т. п.
12.2. Основные этапы создания приложений в Access
Если вы будете выступать в роли профессионального разработчика и создавать приложение, работающее с информацией на источнике данных (в базе данных Access или на клиент-серверной системе), то имеет смысл последовательно выполнить все рекомендованные далее этапы проектирования и создания таких приложений. Этим вы, возможно, убережете себя от ошибок, которые будет впоследствии трудно исправить.
Первый этап — сбор информации о потребностях предприятия , его под-
разделений и пользователей : с какими унаследованными системами они работают, с чем нужно обеспечивать совместимость, как организованы информационные потоки, какова изменчивость системы и т. п. Часто при этом используются специальные программные средства, такие как Microsoft Visio и ERWin.
Второй этап — выбор архитектуры приложения , выбор подходящей системы управления базами данных и проектирование СУБД . На этом этапе определяется, будет ли информация храниться с использованием ядра Jet, на котором работает Access, или клиент-серверной системы, проектируется система таблиц для хранения информации и отношений между ними, проектируются некоторые другие объекты базы данных. Кроме того, определяется архитектура приложения — сколько в ней будет уровней, будут ли использоваться терминальные или Web-технологии, будет ли применяться репликация и т. п.
Третий этап — реализация СУБД и бизнес-логики приложения . На этом этапе проектируются, создаются, настраиваются и заполняются исходными данными объекты базы данных: таблицы, представления, хранимые процедуры, формы, отчеты, макросы, программные модули и т. п. При создании приложений в Access бóльшая часть этих операций выполняется при помощи графического интерфейса разработчика. Код VBA используется для проверки вводимых пользователем значений, для работы с элементами управления на форме, для переключения между формами, отчетами, другими элементами управления, для обращения к внешним объектным моделям и т. п. На этом этапе опять-таки могут помочь Visio и ERWin.
Четвертый этап — оптимизация производительности базы данных , что часто упускается разработчиками. Задача эта комплексная, но включает в себя в том числе и оптимизацию кода VBA.
Пятый этап — тестирование и отладка приложения (см. гл. 6) . Шестой этап — развертывание приложения .
Программирование в Access
Как мы видим, эти этапы достаточно комплексные, и рассмотреть их все в этой книге не представляется возможным. Поэтому в данной главе будет рассказано только про те моменты, в которых нам может помочь VBA.
12.3. Объект Application ,
его свойства и методы
Объектная модель Access по своей архитектуре сильно отличается от объектных моделей Word и Excel. Возможно, это объясняется тем, что Access — не «родной» для Microsoft, как Word и Excel, а приобретенный продукт третьей фирмы.
Один из немногих моментов, в котором программирование в Access похоже на программирование в Word и Excel — это наличие объекта Application , который находится на вершине иерархии объектной модели Access. Он точно так же может использоваться для программного запуска Access из других приложений, и его свойства и методы доступны из любой части кода. Запуск Access из другого приложения может выглядеть так:
Dim appAccess As Object
Set appAccess = CreateObject(«Access.Application») appAccess.Visible = True
Если запустить такой код из процедуры Word или Excel, то по умолчанию по завершении работы этой процедуры объект будет удален из оперативной памяти (поэтому здесь и поставлено окно сообщения, чтобы этот процесс задержать).
Можно программно запускать Access еще множеством разных способов — через объектную модель Windows Explorer, через командный интерпретатор операционной системы, через текстовый ярлык mad, через API и т. п.
На практике программным образом запускать Access приходится достаточно редко, поскольку обычно удобнее оболочку приложения, запускающего Word, Excel и т. п., делать именно в Access. Открывать программным способом Access для доступа к данным базы в MDB-файле не рекомендуется, для этого лучше использовать объекты ADO, более простые и менее ресурсоемкие.
Теперь поговорим о свойствах и методах объекта Application . Как можно убедиться, их набор в Access мало похож на соответствующий набор в Word
AutomationSecurity — это свойство позволяет определить уровень безопасности при открытии базы данных. По умолчанию используется значе-
ние msoAutomationSecurityByUI — использовать то, что настроено на графическом экране через меню Макрос | Безопасность . Можно вообще запретить открытие файлов баз данных с макросами ( msoAutomationSecurity-
ForceDisable ), но чаще используется значение msoAutomationSecurityLow ,
которое позволяет открыть файл данных без лишних вопросов.
BrokenReference — позволяет проверить, есть ли разорванные ссылки (когда ваше приложение не может найти модуль dll или другую базу данных). Наличие конкретной ссылки можно проверить при помощи объекта
CodeContextObject — очень полезное свойство, которое позволяет определить, из какого объекта базы данных (формы, отчета и т. п.) был запущен модуль или макрос. Это свойство можно, например, использовать для обнаружения источника ошибок.
CodeData — еще одно важнейшее свойство. Оно позволяет получить дос-
туп к коллекциям AllDatabaseDiagrams , AllFunctions , AllQueries , AllStoredProcedures , AllTables и AllViews . Правда, в этих коллекциях на-
ходятся одни и те же объекты AccessObject . На первый взгляд возможностей у них не так много, но на самом деле при помощи этого объекта мы можем настраивать десятки свойств для таблиц, запросов, диаграмм и других объектов базы данных Excel. Пример использования свойства CodeData для получения информации о всех таблицах в базе данных может выглядеть так:
For Each oTable In CodeData.AllTables
CodeProject — используется для тех же целей, что и CodeData , но предоставляет доступ к коллекциям программных модулей AllForms , AllReports ,
AllMacros , AllModules и AllDataAccessPages .
CommandBars — возвращает коллекцию объектов CommandBar , т. е. панелей инструментов Access. Эту коллекцию можно использовать для настройки пользовательского интерфейса приложения, построенного на основе
CurrentData — действует аналогично CodeData и CodeProject . Это свойство позволяет получить доступ к тем же коллекциям, включая полученные с внешнего источника данных (SQL Server). Аналогично работает свойст-
CurrentObjectName и CurrentObjectType — позволяют определить, какой объект на момент запуска процедуры находился в фокусе (из какого объ-
Программирование в Access
екта был вызван данный код). Эти свойства, конечно, удобно использовать для проверок, когда один и тот же код может быть вызван разными способами. При этом свойство CurrentObjectType ведет себя несколько неожиданно. В обычных ситуациях оно возвращает значение из перечисления, но если вызвавшего объекта уже нет (объектная ссылка установлена в Nothing ) или информацию о нем получить не удалось, это свойство поче- му-то возвращает True .
DataAccessPages — позволяет получить ссылку на одноименную коллекцию, в которой находятся объекты всех Web-форм базы данных (они называются страницами доступа к данным) — объектов DataAccessPage .
DBEngine — позволяет получить ссылку на объект DBEngine , при помощи которого можно просмотреть или настроить свойства ядра Jet, на котором работает Access. Например, при помощи этого свойства можно сжать базу данных, настроить для нее пароль, определить используемую кодировку и т. п.
DoCmd — позволяет получить доступ к еще одному очень важному объекту — DoCmd , при помощи которого можно выполнить множество важных операций. Фактически этот объект — основная «рабочая лошадка» Access с точки зрения VBA. Он будет рассмотрен в разд. 12.4 . Сам объект DoCmd создавать нет необходимости — он всегда доступен через свойство объек-
та Application , например:
Application.DoCmd.RunSQL «Delete from table1»
Forms — позволяет вернуть ссылку на коллекцию объектов Form . От уже упомянутой коллекции AllForms эта коллекция отличается двумя особенностями:
• в ней находятся только открытые в настоящий момент формы;
• в ней находятся не объекты AccessObject , как в AllForms , а объекты Form с гораздо более богатым набором свойств и методов.
MenuBar — позволяет не совсем стандартным образом настроить пользовательское меню (уровня всего приложения), вернуться к показу встроенного меню или вообще отключить показ меню. Для работы с контекстным меню предусмотрено свойство ShortcutMenuBar .
Modules — действует аналогично свойству Forms . Оно позволяет получить доступ к одноименной коллекции с объектами Module , представляющими стандартные модули и модули классов. У объектов Module намного больше свойств и методов, чем у объекта AccessObject .
Printers и Printer — возвращают соответственно коллекцию всех установленных в системе принтеров и принтер по умолчанию. При помощи
объекта Printer можно настроить множество свойств принтера, которые будут использоваться при печати.
References — позволяет получить ссылку на коллекцию объектов Reference (ссылки на библиотеки типов). Можно использовать для проверки работоспособности ссылок или для добавления ссылок программным способом.
Reports — работает аналогично свойствам Forms и Modules , позволяя получить доступ к коллекции объектов Report .
Screen — это свойство возвращает специальный объект Screen , при помощи которого можно программным образом обратиться к активным элементам Access : формам, отчетам, элементам управления и т. п. (в Word и Excel свойства с префиксом Active. встроены непосредственно в объект Application ). При помощи этого объекта можно также изменить вид курсора мыши и вернуться к предыдущему элементу управления.
UserControl — позволяет определить, как именно был запущен Access: вручную пользователем или программным способом из другого приложения (в зависимости от этого, к примеру, можно решить, закрывать Access автоматически или положиться на пользователя).
Version — позволяет вернуть версию Access (например, для дополнительных проверок работоспособности приложений). Для Access 2003 эта вер-
Visible — позволяет сделать Access видимым для пользователя или, наоборот, спрятать. По умолчанию Accesss, запущенный программным способом, невидим для пользователя, и это свойство необходимо установить в True .
Методов у объекта Application также очень много (кроме того, часть методов искусственно перенесена в объект DoCmd ). Далее представлены самые важные из них.
AccessError() — очень важный метод для обработки ошибок. Он позволяет получить описание ошибок библиотек Access и DAO, для ко-
торых стандартное Err.Description возвращает «Application-defined or object-defined error» .
BuildCriteria() — позволяет очень быстро и удобно сконструировать критерий отбора записей, который может применяться в SQL-запросах, фильтрах для формы и отчетов, и т. п. Возвращает правильно сконструированное строковое значение.
CloseCurrentDatabase() — закрывает текущую базу данных без закрытия Access. Обычно применяется для того, чтобы затем открыть другую базу данных без запуска нового экземпляра Access.
Программирование в Access
CodeDb() — возвращает объект DAO.Database , представляющий базу данных, в которой в настоящее время выполняется код (обычно используется, когда у вас есть специальная библиотечная база данных с программными модулями, выполняющими различные операции с другими базами данных). Ссылку на такой же объект для текущей базы данных можно получить при помощи метода CurrentDb() .
CompactRepair() — позволяет сжать или починить базу данных Access и вернуть код ошибки (можно также записать протокол). Сжимаемая или ремонтируемая база данных должна быть в это время закрыта.
ConvertAccessProject() — позволяет выполнить еще одну служебную операцию, на этот раз по преобразованию версии базы данных Access. Воз-
можны варианты от acFileFormatAccess2 до acFileFormatAccess2002 .
CreateAccessProject() — позволяет программным образом создать проект Access (так называется программный интерфейс для доступа к SQL Server). Для того чтобы его сразу создать и открыть, можно использовать метод NewAccessProject() , а чтобы просто открыть существующий —
CreateAdditionalData() — позволяет создать объект AdditionalData , кото-
рый можно использовать вместе с методом ExportXML() при экспорте родительской таблицы в XML-файл. Применение этого объекта позволяет экспортировать набор таблиц.
CreateControl() — позволяет программным образом создать элемент управления на форме. Принимает множество параметров, которые определяют данный элемент управления. Для создания элемента управления в отчете используется метод CreateReportControl() . Удалить элемент управления можно при помощи соответственно DeleteControl()
CreateForm() — позволяет также программным образом создать форму Access и получить ссылку на объект созданной формы. Затем можно настроить свойства этой формы, добавить для нее элементы управления и т. п. Создание таким же образом отчета можно произвести при помощи метода CreateReport() .
CreateGroupLevel() — позволяет программным образом создать группировку в отчете или отсортировать записи. Принимает имя отчета, столбец, по которому производится сортировка, формулы для создания верхнего и нижнего колонтитула групп.
CreateNewWorkgroupFile() — позволяет программным способом создать файл рабочей группы с разрешениями для пользователей. На графическом
экране эту операцию можно выполнить при помощи пункта меню Сер-
вис | Защита | Администратор рабочих групп .
CurrentUser() — этот метод позволяет получить в виде строкового значения имя текущего пользователя базы данных. По умолчанию работа производится от имени пользователя Admin.
Методы с префиксом D. — очень удобны для выполнения различных операций, не прибегая к коду SQL, напрямую из Access:
• DAvg() , DSum() , DCount() , DMax() , DMin() и т. п. — позволяют применить
агрегатные функции к столбцу (или набору записей) в таблице или представлении;
• DLookup() — исключительно удобный метод, который позволяет найти и вернуть нужное вам значение из таблицы или представления (включая двоичные объекты, например шаблоны Word). Принимает в качестве параметров имя таблицы или представления, имя столбца и фильтр. Если условию фильтра удовлетворяет несколько значений, то возвращается первое из них;
• DFirst() и DLast() — несмотря на свои названия, эти методы работают
одинаково, возвращая случайное значение из столбца таблицы или представления.
Echo() — позволяет перерисовать экран Access, а также вывести текст в строку состояния.
Eval() — этот метод очень удобен во многих ситуациях. Он позволяет произвести над текстовой строкой операции, как будто это строка кода VBA. Этот метод возвращает значение типа Variant , чтобы подходили любые возвращаемые значения. Например:
вернет 2, а вызов:
Eval(» Моя _ Функция ()»)
вернет то, что возвращает эта функция. Eval() очень удобно использовать, чтобы избежать громоздких проверок и преобразований типов, например, когда мы принимаем разные значения, вводимые пользователем.
ExportXML() и ImportXML() — позволяют экспортировать и импортировать наборы таблиц с данными (включая информацию о ключах, индексах, кодировках и т. п.) в XML-совместимый текстовый файл. При этом экспорт и импорт из Access при помощи этих методов можно производить не только для баз данных Access, но и баз данных SQL Server, начиная с вер-
Программирование в Access
GetOptions() и SetOptions() — позволяют получить информацию и установить те настройки, которые доступны через меню Сервис | Параметры . Например, чтобы при нажатии клавиши <Enter> в таблице производился переход не вправо (по умолчанию), а вниз, можно использовать код:
Application.SetOption «Move After Enter», 2
hWndAccessApp() — очень нужный метод для тех, кто работает с Windows API. Позволяет вернуть указатель на окно Access.
NewCurrentDatabase() — позволяет создать и сразу открыть новую базу данных Access. Для открытия существующей базы данных можно исполь-
зовать метод OpenCurrentDatabase() .
Nz() — исключительно удобный метод для практической работы. Позволяет возвращать пустую строку или другое значение, если значение в данном столбце таблицы не определено ( Null ). Опытные разработчики очень часто используют эту функцию, чтобы избежать ошибок при обращении к пустым значениям (любым, включая Memo ), например, при поиске по таблице.
Quit() — закрывает Access. Может ничего не сохранять, сохранять все или спрашивать у пользователя.
RefreshDatabaseWindow() — позволяет обновить окно базы данных. Обычно применяется после программного создания форм, отчетов и т. п.
Run() — позволяет вызвать процедуру или функцию VBA из кода и передать ей до 30 параметров. Может использоваться для вызова пользовательских или встроенных функций, но поскольку их можно вызвать и стандартными способами, то чаще всего этот метод используется при вызове процедуры Access из внешней откомпилированной программы, например, DLL или EXE.
RunCommand() — позволяет выполнить одну из десятков встроенных команд Access (практически все, что есть на панелях управления и во встроенных меню). Например, чтобы максимизировать окно Access, можно воспользоваться командой:
SysCmd() — позволяет выполнить множество служебных операций: получить информацию о домашнем каталоге, о версии Access, о состоянии указанного вами объекта базы данных, запустить графический индикатор выполнения в строке состояния и т. п.
Создание полноценного приложения в среде MS ACCESS
Создание системы взаимосвязанных таблиц, обеспечивающей целостное обновление и удаление данных. Автоматизация работы программы с помощью механизма запросов на обновление. Составление отчетов с помощь схемы данных, макросов и модулей. Описание базы данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 14.02.2016 |
Размер файла | 815,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
1. Техническое задание
2. Описание предметной области
3. Описание базы данных
3.1 Система таблиц
3.2 Схема данных
3.3 Основные запросы
Список использованной литературы
1. Техническое задание
Разработать структуру база данных для учета результатов выступления танцевальных пар на различных конкурсах. В базе данных необходимо хранить следующую информацию:
фамилии и имена партнера и партнерши, даты рождения, рост, вес
спортклуб, за который выступает пара
Возрастная категория, которой относится пара (дети, юниоры, взрослые)
данные о конкурсах, проводимых в текущем спортивном сезоне
дата, место проведения конкурса
время начала конкурса
размеры призов, выплачиваемых победителям
результаты выступления спортивных пар
оценка по каждому танцу, полученная парой
занятое место, которое определяется в соответствии с суммой баллов по всем танцам программы
Построить запросы. Формы и отчеты, позволяющие получать следующую информацию:
в каких конкурсах приняла участие та или иная пара
каковы результаты выступления танцевальной пары
сумма премиальных, полученных парой за период выступлений ( за месяц, квартал, год)
стартовые протоколы для судей по каждой возрастной категории, в которой приведены номера, полученные парами при жеребьевке
протоколы по каждому танцу программы и итоговый протокол по конкурсу
Построить главную форму, позволяющую просматривать информацию по запросам 1-3.
2. Описание предметной области
В России в настоящее время проводится всё больше танцевальных конкурсов и фестивалей, как детских, так и взрослых. Сейчас всё популярнее становятся спортивные и современные танцы, однако конкурсы по классическим, а особенно народным танцам проводятся ничуть не реже.
В настоящее время растет количество танцевальных школ и коллективов, количество и программа многих танцевальных конкурсов усложняется, конкурсы проводятся во множество туров, каждый из которых может длиться несколько дней.
В 2002 году Президиум Московской Федерации Спортивного Танца принял решение о кардинальном изменении протоколов соревнований. Предлагалось заменить прежнюю форму протокола, когда на листах размещались списки участников, списки арбитров, списки нарушений и замечаний, на карточную форму, когда каждый элемент из всех списков находится на отдельном листе-карточке.
Некоторое время такая система применялась при проведении соревнований, однако всё же задумываются перейти на компьютерную обработку результатов. Дело в том, что система регистрации и оценки танцоров учитывает множество факторов, начиная от регистрационных книжек танцоров, заканчивая протоколами по каждому танцу программы. Компьютерная обработка значительно бы облегчило бы ввод информации, а также её обработку. Однако введение такой системы — очень сложный и трудоёмкий процесс.
Поэтому, учитывая сложность и разветвленность системы оценки в данной предметной области определим, что реализованная система будет являться системой для предоставления отчетности по различным критериям. Пусть реализованная система будет являться базой статистических данных, необходимых для оценки работы различных танцевальных клубов, успехов отдельных пар и танцоров, а также общей сумме разыгранных призов.
3. Описание базы данных
3.1 Система таблиц
Таблица представляет собой набор данных по конкретной теме. Таблицы, лежащие в основе реляционной модели данных, обладают следующими свойствами:
— Каждая строка представляет собой все сведения об одном объекте — записи
— Данные одного столбца имеют одинаковый тип
— Каждый столбец имеет свое имя
— Порядок следования строк не имеет значения
В создаваемой базе данных, при помощи конструктора были созданы таблицы:
4. Конкурсы за сезон
5. Участия в конкурсах
7. Распределение призов
8. Участники (дублер таблицы «Участия в конкурсах»)
Рассмотрим все таблицы по очереди:
Таблица «Партнерши» и таблица «Партнеры»
Обе эти таблицы имеют одинаковую структуру и отличаются лишь тем, что в таблице «Партнерши» указаны девушки, а в «Партнеры» — мальчики. Это сделано для того, чтобы можно было объединить их в пары, т. к. согласно п.4.6 правил Российского Танцевального Союза (РТК) во всех видах соревнований различных уровней, кроме фестивалей, пары составляют неделимую категорию и партнеры могут выступать только вместе.
Итак, структура таблицы «Партнеры»:
«Код» — числовой, целое, совпадения не допускаются, обязательное;
«Фамилия» — текстовый, обязательное;
«Дата Рождения» — дата\время, маска 00.00.00, обязательное;
«Рост» — числовой, целое, обязательное;
«Вес» — числовой, целое, обязательное;
Вид таблицы в режиме конструктора:
Поле «Код» является ключевым, т.е. содержит уникальные, неповторяющиеся данные. Сортировка в таблице происходит по этому полю.
Далее — таблица «Партнерши». Как говорилось ранее, она имеет точно такую же структуру и ключевое поле:
«Код» — числовой, целое, совпадения не допускаются, обязательное;
«Фамилия» — текстовый, обязательное;
«Дата Рождения» — дата\время, маска 00.00.00, обязательное;
«Рост» — числовой, целое, обязательное;
«Вес» — числовой, целое, обязательное;
Вид таблицы в режиме конструктора:
Далее рассмотрим таблицу «Пары». Её вид в конструкторе:
Рассмотрим свойства полей:
«Название» — текстовое, обязательное, является ключевым полем
«Партнер» — числовой, является не фамилией, а кодом, обязательное;
«Партнерша» — числовой, является не фамилией, а кодом, обязательное;
«Клуб» — текстовое, обязательное;
«Тренер» — текстовое, обязательное;
Вид заполненной таблицы:
Поле «Название» отражает названием команды в общем списке, оно является ключевым. Поля «Возраст» и «Категория» не являются обязательными для заполнения, т.к. значения этих полей вычисляются с помощью специальных запросов. Осуществление этого механизма происходит благодаря специальной таблице «Категории», в которых каждый возраст относится к определенной категории. Структура её довольно проста:
Эта таблица по полю возраст соединяется с таблицей «Пары» и необходима для автоматического определения категории.
таблица выглядит так:
Рассмотрим таблицу «Конкурсы за сезон», в которой указаны названия конкурсов, программа, время начала, денежные призы и т.п.
Вид таблицы в конструкторе:
Рассмотрим поля таблицы:
«Название» — текстовое, обязательное, ключевое поле;
«Дата» — дата/время, маска 00.00.00, кр. формат даты, обязательное;
«Время» — дата/время, маска 99:00;00, кр. формат времени, обязательное;
«Программа» — текстовый, обязательное;
«Первое место» — числовой, денежный, обязательное;
«Второе место» — числовой, денежный, обязательное;
«Третье место» — числовой, денежный, обязательное.
Рассмотрим заполненную таблицу:
Поле «Название» является ключевым для того, чтобы связать эту таблицу с таблицей «Участия в конкурсах».
Данные в этой таблице продублированы также в таблице «Распределение призов». Это сделано для того, чтобы автоматизировать распределение призов по конкурсов.
Её вид в конструкторе:
Рассмотрим свойства полей:
«Конкурс» — текстовое, обязательное; «Место»- числовое, обязательное;
«Приз» — числовое, формат денежный, обязательное.
В этой таблице нет ключевых полей, потому что записи могут повторяться. Вид рабочей таблицы представлен далее:
Как уже говорилось, у нас также имеется таблица «Участия в конкурсах». Она по сути является сводной таблицей, так как содержит наибольшее количество информации во всей баз
Рассмотрим также её поля:
«Конкурс» — текстовый, обязательное;
«Команда» — текстовый, обязательное;
«Номер» — числовой, обязательное;
«Танец1» — числовой, обязательное;
«Танец2» — числовой, обязательное;
«Танец3» — числовой, обязательное;
«Сумма» — числовой, по умолчанию равно 0;
«Место»- числовой, обязательное;
«Приз» — числовой, формат денежный, по умолчанию равно 0.
Поле «Конкурс» — название конкурса, «Команда» — название участвующей команды. «Категория» указывает возрастную категорию, которых в международных конкурсах бывает три: ювеналы, юниоры и взрослые, иногда конечно возможны выступления в категории сеньоры (от 35 лет) и гранд синьоры (от 45 лет), однако для упрощения и наглядности будем использовать только 3 основные категории. «Номер» — номер выступления пары, полученный при жеребьевке. «Танец1», «Танец2», «Танец3» — оценки за выступление по каждому танцу. Поле «Сумма» — вычисляемое специальным запросом поле, максимальная сумма соответствует победившей команде. Поле «Место» не является вычисляемым, так как структура таблицы слишком сложна, а вычислить его запросом не представляется возможным, поэтому таблица и носит статистический характер: опрератору необходимо вводить данные вручную. «Приз» — вычисляемее поле, значение которого определяется специальным запросом с помощью таблицы «Распределение призов».
3.2 Схема данных
Записи идентифицируются по некоторой уникальной характеристике. Идентификация строки — это свойство, позволяющее однозначно определить объект по значению одного или нескольких полей таблицы. Такой столбец называют первичным ключом таблицы или ключевым полем. Именно эти поля используются для связи таблиц.
В реляционной алгебре различают четыре типа связи между таблицами:
· Связь один-к-одному. Используется для связи одной записи в таблице с одной записью в другой таблице.
· Связь один-ко-многим. Используется для связи одной записи в таблице с несколькими записями в другой таблице.
· Связь многие-к-одному. Связь указывает, что несколько записей одной таблицы связаны с одной записью другой таблицы.
Связь таблиц позволяет поддерживать целостность данных. Целостность данных — это правила, регулирующие условия взаимодействия между таблицами и поддерживающие целостность информации. Эти правила сохраняют в неприкосновенности связи между таблицами в системе управления реляционной базой данных. Целостность данных предохраняет данные от изменений, которые нарушают связи между таблицами, и функционирует на основе ключевых полей таблицы.
Рисунок 11. Система запросов.
3.3 Основные запросы
1. Запрос «Участники конкурсов» показывает в каких конкурсах приняла участие та или иная пара.
PARAMETERS Команда Value;
SELECT [Участия в конкурсах].Команда, [Участия в конкурсах].Конкурс
FROM [Участия в конкурсах]
WHERE [Участия в конкурсах].Команда=Команда;
Название команды передается с помощью параметра. Выполненный запрос выглядит так:
Запрос «Итоговый» определяет результаты выступления пар на любом конкурсе, где конкурс передается в качестве параметра, а также формирует итоговый отчет.
PARAMETERS Конкурс Value;
SELECT [Участия в конкурсах].Конкурс, [Участия в конкурсах].Команда, [Участия в конкурсах].Категория, [Участия в конкурсах].Номер, [Участия в конкурсах].Танец1, [Участия в конкурсах].Танец2, [Участия в конкурсах].Танец3, [Участия в конкурсах].Сумма, [Участия в конкурсах].Место
FROM [Участия в конкурсах]
WHERE ((([Участия в конкурсах].Конкурс)=Конкурс))
ORDER BY [Участия в конкурсах].Место;
2. Запросы «ПризыПоМесяцам», «ПризыПоКварталам, «ПризыПоГоду» показывают сумму премиальных баллов, полученных парой за соответствующий период времени.
TRANSFORM Sum([Участия в конкурсах].Приз) AS [Sum-Приз]
SELECT [Участия в конкурсах].Команда, Sum([Участия в конкурсах].Приз) AS [Итоговое значение Приз]
FROM [Конкурсы за сезон] INNER JOIN [Участия в конкурсах] ON [Конкурсы за сезон].Название = [Участия в конкурсах].Конкурс
GROUP BY [Участия в конкурсах].Команда
PIVOT «Месяц » & DatePart(«m»,[Конкурсы за сезон].[Дата]);
TRANSFORM Sum([Участия в конкурсах].Приз) AS [Sum-Приз]
SELECT [Участия в конкурсах].Команда, Sum([Участия в конкурсах].Приз) AS [Итоговое значение Приз]
FROM [Конкурсы за сезон] INNER JOIN [Участия в конкурсах] ON [Конкурсы за сезон].Название = [Участия в конкурсах].Конкурс
GROUP BY [Участия в конкурсах].Команда
PIVOT «Кв » & DatePart(«q»,[Конкурсы за сезон].[Дата]);
TRANSFORM Sum([Участия в конкурсах].Приз) AS [Sum-Приз]
SELECT [Участия в конкурсах].Команда, Sum([Участия в конкурсах].Приз) AS [Итоговое значение Приз]
FROM [Конкурсы за сезон] INNER JOIN [Участия в конкурсах] ON [Конкурсы за сезон].Название=[Участия в конкурсах].Конкурс
GROUP BY [Участия в конкурсах].Команда
PIVOT «Год » & DatePart(«yyyy»,[Конкурсы за сезон].[Дата]);
Как видно, все три вида запроса являются перекрестными, соответственно их вид будет схожим:
3. Запрос «Стартовые», который формирует стартовые протоколы для судей по конкурсу (передается в качестве параметра) по возрастным категориям.
PARAMETERS Конкурс Value;
SELECT [Участия в конкурсах].Конкурс, [Участия в конкурсах].Команда, [Участия в конкурсах].Категория, [Участия в конкурсах].Номер
FROM [Участия в конкурсах]
WHERE ((([Участия в конкурсах].Конкурс)=Конкурс))
ORDER BY [Участия в конкурсах].Категория, [Участия в конкурсах].Номер;
Вспомогательные запросы в данной работе необходимы для автоматизации работы программы с помощью механизма запросов на обновление.
1. Запрос «Вычисление возраста» вычисляет возраст пары, чтобы отнести её к той или иной категории.
В правилах РТС указано:
«2. Принадлежность участника к возрастной группе определяется по дате рождения.
3. Возрастная категория определяется во возрасту партнера»
Поэтому SQL-запрос выглядит так:
UPDATE Партнеры INNER JOIN Пары ON Партнеры.Код = Пары.Партнер SET Пары.Возраст = ((Date()-[Партнеры].[ДатаРождения])\365);
Этим запросом обновляется содержимое таблицы Пары и в поле возраст записывается соответствующее число:
2. Запрос «Категория» и «Возраст в участ» записывают возрастную категорию в таблицы «Пары» и «Участия в конкурсах» соответственно
Их структура приблизительно одинакова. SQL-запрос «Категория»:
UPDATE Категории INNER JOIN Пары ON Категории.Возраст = Пары.Возраст SET Пары.Категория = [Категории].[Категория];
SQL-запрос «Возраст в участ»:
UPDATE [Конкурсы за сезон] INNER JOIN (Пары INNER JOIN [Участия в конкурсах] ON Пары.Название=[Участия в конкурсах].Команда) ON [Конкурсы за сезон].Название=[Участия в конкурсах].Конкурс SET [Участия в конкурсах].Категория = [Пары].[Категория];
3. Запрос «Сумма» определяет сумму баллов команды в каждом конкурсе
UPDATE [Распределение призов] INNER JOIN [Участия в конкурсах] ON ([Распределение призов].Конкурс=[Участия в конкурсах].Конкурс) AND ([Участия в конкурсах].Место=[Распределение призов].Место) SET [Участия в конкурсах].Приз = [Распределение призов].Приз;
4. Запрос «Распределение призов» автоматически распределяет призы победителям конкурсов
UPDATE [Распределение призов] INNER JOIN [Участия в конкурсах] ON ([Участия в конкурсах].Место=[Распределение призов].Место) AND ([Распределение призов].Конкурс=[Участия в конкурсах].Конкурс) SET [Участия в конкурсах].Приз = [Распределение призов].Приз;
5. «Обновить» необходим для обновления записей в таблице «Участники». Эта таблица используется для того, чтобы отсортировать с помощью запроса «Обновить» таблицу «Участия в конкурсах», а потом переписать данные из «Участники» обратно в участия в конкурсах. Это делается для корректного отображения суммы баллов и распределения призов и мест.
SELECT [Участия в конкурсах].Конкурс, [Участия в конкурсах].Команда, [Участия в конкурсах].Категория, [Участия в конкурсах].Номер, [Участия в конкурсах].Танец1, [Участия в конкурсах].Танец2, [Участия в конкурсах].Танец3, [Участия в конкурсах].Сумма, [Участия в конкурсах].Место, NULL AS Приз INTO Участники
FROM [Участия в конкурсах]
ORDER BY [Участия в конкурсах].Конкурс, [Участия в конкурсах].Сумма DESC;
Создает таблицу структуры:
Все перечисленные выше запросы являются вспомогательными, облегчающими работу пользователя в системе. На их основе формируются визуальные формы. Этот механизм рассмотрим далее.
Эта форма для редактирования и просмотра таблицы «Партнерши». Её вид:
На форме есть две кнопки для просмотра отчета и для закрытия формы. В других формах соответствующие кнопки определяют те же действия.
Форма для редактирования и просмотра таблицы «Партнеры». Вид:
Форма для просмотра и редактирования соответствующей таблицы. Для удобства оператора имена партнеров выбираются из списка, а при нажатии кнопки «Закрыть» запускается макрос, вычисляющий с помощью запроса возраст и категорию пары.
Форма «Конкурсы» имеет в своей структуре подчиненную форму «Распределение призов».
Форма «Участники конкурсов» показывает нам какие команды в каких конкурсах участвовали. Для формирования формы используется подчиненная форма «Участия в конкурсах», которая формируется с помощью запроса:
SELECT [Участия в конкурсах].Конкурс, [Участия в конкурсах].Команда, [Участия в конкурсах].Номер, [Участия в конкурсах].Место, [Участия в конкурсах].Приз
FROM [Участия в конкурсах]
WHERE ((([Участия в конкурсах].Команда)=[Формы].[Участники
где ПолеСоСписком2 — выбранное значение поля команда. Т.е. это параметр, передаваемый из главной формы в подчиненную. Вид формы:
Также в ней считается общий размер денежных выигрышей
Отчет также формируется параметрически. В зависимости от выбранной команды печатается соответствующий отчет.
Форма «Список участников» — форма для просмотра и редактирования таблицы «Участия в конкурсах». Для удобства оператора возрастную категорию вводить не нужно, она еще раз проверяется с помощью макроса и записывается в таблицу автоматически.
Форма «Стартовые» использует в своей структуре подчиненную форму, которая принимает параметр из основной и формируется запросом:
SELECT Стартовые.Конкурс, Стартовые.Команда, Стартовые.Категория, Стартовые.Номер
где ПолеСоСписком7 — выбранной значение конкурса.
Данные отсортированы по возрастной категории и по сути являются формой отображения запроса «Стартовые». Она вызывает соответствующий параметру отчет, т.е отчет исключительно по выбранному конкурсу.
Форма «Итоговые» использует в своей структуре подчиненную форму, которая принимает параметр из основной и формируется запросом:
SELECT Итоговый.Команда, Итоговый.Категория, Итоговый.Номер, Итоговый.Танец1, Итоговый.Танец2, Итоговый.Танец3, Итоговый.Сумма, Итоговый.Место
где ПолеСоСписком7 — выбранное значение конкурса.
На этом рассмотрение форм можно закончить. Далее перейдем к отчетам, которые формируются на основе этих форм.
На форме имеется кнопка , которая закрывает отчет и возвращает на главную форму.
Отчет «Участия в конкурсах» формируется в зависимости от того, какой параметр передастся из соответствующей формы.
Отчет «Средние баллы» формируется по всем конкурсам, которые имеются в таблице «Конкурсы за сезон».
Отчет «Стартовые протоколы» также формируется в зависимости от того, какой конкурс интересует оператора.
Отчет «Сумма призов» формируется в зависимости от того, какой период нас интересует, поэтому при нажатии кнопки «Сумма призов» появляется диалоговое окно, приглашающее нас выбрать необходимый отчет.
После того как пользователь выберет соответствующий отчет, он откроется перед ним, а диалоговое окно автоматически закроется.
Если нажать на диалоговой форме кнопку «Отмена», то она просто закроется и вернет нас в главной форме приложения.
Соответствующие изображения представлены на след. странице.
Диалоговое окно выбора отчета
Рисунок 31. Сформированный квартальный отчет
В базе использован макрос, вычисляющий возраст и категорию участников «Возраст\Категория».
Вид макроса в конструкторе:
По сути этот макрос запускает три запроса на обновление таблицы «Пары» и «Участия в конкурсах».
В разработанной системе используется 2 модуля:
— подмена (обновляет записи в таблице «Участия в конкурсах»)
Модуль «Место» используется для того, чтобы определить победителей конкурса; текст модуля VBA выглядит так:
Microsoft Access для чайников – что это за программа и как ей пользоваться
Microsoft Office – редактор, который позволяет создавать и редактировать офисные документы. В нем также встроено приложение, позволяющее пользователям работать с базами данных. Базы данных – это, в первую очередь, удобный инструмент для хранения, систематизации и извлечения нужной информации. В этом материале будет подробно разобран редактор Microsoft Access и опубликована пошаговая инструкция по работе с приложением.
Что такое Microsoft Access
Microsoft Office Access – мощный редактор, который представляет собой систему управления базами данных, основанными на реляционной модели. Также необходимо отметить, что он использует динамическую модель обмена между сетевыми ресурсами и приложениями. При этом редактор использует продвинутые инструменты для обработки любого типа информации и представление их в виде четкой последовательной структуры.
В Access также внедрена поддержка динамической библиотеки ActiveX. Эта технология, которая помогает не только представлять информацию в виде текста, а также в виде объектов мультимедии. Реляционная модель позволяет устанавливать связи между базами и контролировать любое изменение, своевременно внося коррективы.
Некоторые пользователи считают, что один из редакторов Microsoft Office Excel похож на программу Access, но это заблуждение. Excel является инструментом для работы с электронными таблицами, а последний, в свою очередь, используется для создания БД в виде таблиц.
Принцип работы Excel основывается на организации данных внутри отдельной таблицы, Access позволяет выполнять более сложные задачи, работая с большим массивом информации. И в заключении необходимо отметить важную особенность, Excel рассчитан для одного пользователя, так как изменение информации носит локальный характер, а Аксесс подразумевает многопользовательскую работу с базами.
Зачем используется
Редактор применяется для полной автоматизации работы с БД в разных сферах деятельности, бизнесе, управлении кадрами и т.д. Стоит заметить, что благодаря тому, что программное обеспечение имеет универсальную структуру, оно помогает избавиться от переизбытка данных, когда требуется изменить нужный параметр, не путем ввода нового, а корректировкой старого. Причем изменения отразятся не только в основной базе, но и в связанных с ней.
Структура приложения
Удобство работы с программой достигается благодаря наличию элементов, позволяющих автоматизировать процесс создания базы. Далее будет приведен список основных компонентов программного обеспечения.
- таблица. Компонент приложения предназначен для записи и хранения данных;
- запрос. Элемент предназначен для получения информации из одной или нескольких таблиц. Является средством для обращения к связанным БД и стороннему ПО;
- форма. Объект используется для представления введенной информации в более удобном для пользователя виде;
- отчет. Позволяет получить конечный результат в виде готового документа;
- макрос. Он представляет собой элемент, содержащий в себе последовательное описание для выполнения того или иного действия. С помощью него можно задать команду, которая будет выполнять определенную задачу, например, проверка изменения данных в одной из таблиц;
- модуль. Компонент, который содержит в себе программное обеспечение, написанное на языке программирования Visual Basic. С его помощью редактор существенно расширяет функционал. Достигается это благодаря использованию функций и процедур, призванных реагировать на те или иные изменения;
- страница доступа. С ее помощью можно получить доступ к удаленным базам, хранящимся на других персональных компьютерах.
Взаимосвязь с другими СУБД
Access позволяет не только использовать собственную введенную информацию, но и устанавливать взаимосвязь с другим СУБД. Также присутствует возможность импорта из других приложений, например, dBase, MySQL, Paradox, FoxPro, Excel. Для удобства пользователя реализована возможность не только использовать импорт, но и связывать данные с другими программами и сетевыми ресурсами.
Обзор интерфейса пользователя
Далее будут подробно рассмотрены основные элементы управления при работе с БД.
Важно! Обзор интерфейса будет проводиться на примере Microsoft Access 2013. Однако Microsoft Access 2007 и 2010 практически идентичны
Интерфейс в данной версии ПО разработан с целью повысить удобство работы с многочисленными элементами, в его основу заложена лента, которая обеспечивает быстрый доступ к основным функциям и командам.
- «Backstage» (создать). Элемент интерфейса появляется после старта программы и позволяет пользователю выбрать шаблон для создания БД. В процессе работы, чтобы перейти на данную вкладку необходимо проследовать по пути «Файл» и «Создать».
- «Файл». Позволяет сохранить, открыть, распечатать готовый документ, а также выставить параметры Access и установить подходящую тему оформления.
- «Лента». Является основным элементом при работе с редактором. Она содержит в себе модули с инструментами для создания и редактирования БД. В нее также входит панель быстрого доступа, на которой размещены наиболее часто используемые компоненты.
- «Область навигации». Позволяет увидеть результат выполненных действий и отражает структуру БД.
- «Диалоговое окно». Элемент интерфейса, с помощью которого пользователь может уточнить параметры объекта.
- «Контекстное меню». Чтобы отобразить компонент, потребуется щелкнуть «ПКМ» на элементе объекта. В него входят команды, которые зависят от выполняемой задачи.
- «Строка состояния». Используется для переключения режима представления документа, и для отображения состояния текущей операции.
Обзор интерфейса был выполнен на примере Microsoft Access 2013. В младших редакциях он может отличаться.
Работа с базами данных в Access
Далее будут подробно рассмотрены основные нюансы и особенности работы с базами данных в Access для чайников и начинающих.
Создание базы
Создать БД можно несколькими способами: с нуля или с использованием готового шаблона. В первом случае пользователю необходимо самостоятельно создавать элементы и объекты БД, во втором варианте все намного проще. Запускаем готовый шаблон и вписываем свою информацию. Далее рассмотрим подробно оба варианта работы с базами.
Чистая база
Начнем создание новой базы с последующим наполнением ее информацией:
- запускаем редактор, после запуска появится «Backstage», где требуется указать пользовательский шаблон;
- выбираем один из требуемых объектов, например, «Пустая база данных рабочего стола»;
- появится окно, где задаем имя документа и щелкаем «Создать».
Создание из шаблона
Работа с шаблоном выглядит следующим образом:
- переходим в «Файл» и «Создать»;
- Указываем походящий шаблон из предложенных категорий;
- кликаем по нужному, в новом окне задаем имя документа и путь, куда он будет сохранен, щелкаем по кнопке «Создать»;
- после этого появится готовая БД, где требуется только вписать нужную информацию.
Наполнение базы
Наполнение БД подразумевает под собой создание таблицы и внесение в нее нужной информации.
Для начала необходимо отметить, что с помощью MS Access можно произвести импорт. Для этого выбираем вкладку «Внешние», кликаем по иконке «Импорт». Далее откроется новое окно, где требуется указать путь к файлу и кликаем «Ок». Затем вновь появится окно импорта, щелкаем «Далее» и задаем сведения о каждом объекте. Задаем ключ, который поможет быстро обработать информацию, и кликаем «Далее». После этого объект появится в главном окне и можно приступать к ее созданию.
- щелкаем «Файл» и «Создать»;
- откроется рабочая область, где будет открыта пустая таблица. Для того, чтобы наполнить ее, переименуем строки и столбцы;
- далее, переходим в режим «Конструктор» и вводим имя «Продукция»;
- создаем первую таблицу и вводим следующие параметры, как показано на скриншоте;
Необходимо отметить, что поле «Цена» имеет числовой параметр. Это обусловлено тем, что информация в денежном эквиваленте, имеет размерность, выраженную в рублях (если используется официальная локализованная версия офисного пакета). Если мы говорим о цене компьютерной периферии, то, как правило, для выражения ее сравнительной стоимости используются условные единицы. Для такого случая и применяется числовой параметр, это позволит избежать перенастройки всей БД.
- затем кликаем по ячейке «Цена» и перемещаемся в нижнюю часть рабочей области к свойствам. Находим параметр «Число десятичных знаков» и устанавливаем «2»;
- чтобы в дальнейшем объект был связан необходимо задать параметр «Ключевое поле». Выделяем поле, например, «Модель» и щелкаем «ПКМ» и в контекстном меню выбираем «Ключевое поле»;
- после этого закрываем конструктор и сохраняем получившийся результат.
Далее требуется создать новую таблицу с заголовком «Поставка» и делаем это следующим образом:
- «Файл», «Создать» и «Пустая БД»;
- переходим в режим «Конструктор» и создаем новый объект со следующими значениями. Ключевые поля задавать не требуется;
- сохраняем получившийся результат и производим наполнение каждой таблицы;
- закончив создание и наполнение, сохраняем получившийся результат.
Проект №1 «Продукция»:
Проект №2 «Поставка»:
Схемы данных
Связь между таблицами устанавливается с помощью структуры, использованной в проекте. При этом структура отображается графически, что позволяет существенно облегчить обработку данных.
Устанавливаем взаимосвязь между проектами:
- в ленте переходим во вкладку «Работа с БД»;
- выбираем модуль «Отношения» и щелкаем по значку «Схема»;
- далее откроется новое окно «Добавление» и выделяем проекты «Продукция» и «Поставка».
- Далее, таблицы в виде блоков будут отображены на рабочей области;
Теперь нам требуется установить связь между двумя объектами, делаем это следующим образом:
- закрываем окно добавления таблиц;Окн
- затем переходим к блоку «Продукция» и выделяем ключевую запись, в нашем случае «Модель» и перетягиваем в блок «Поставка»;
- после этого откроется окно «Изменение связей»;
- в блоке установки зависимого объекта выбираем нужный (в нашем проекте это «Модель») и кликаем «Создать». После этого между таблицами будут установлены ключи связи.
Создаем запросы
Далее требуется создать запросы, предназначенные для быстрой обработки и внесения информации в базу данных.
Классическая выборка
Запрос выборки позволяет производить отбор данных в БД по заранее созданным условиям. В нашем проекте будет создана выборка, позволяющая найти товар по его наименованиям. Работу будем производить в БД «Продукция».
Процесс выглядит следующим образом:
- переходим ко вкладке «Создание» и к блоку «Запросы»;
- далее находим инструмент «Конструктор»;
- после этого откроется новое диалоговое окно, где требуется добавить нужный проект, в нашем случае «Продукция» и закрываем окно;
- внизу появится поле «Бланк запроса», которое необходимо заполнить;
- после того, как условия выборки прописаны, переходим к блоку «Результаты» и щелкаем по значку восклицательного знака «Выполнить».
Создание сущности
Запрос на создание сущности в Майкрософт Аксесс производит выборку из взаимосвязанных таблиц и других ранее созданных запросов. В отличии от первого варианта результат сохранится в новой постоянной таблице.
Процесс выглядит следующим образом:
- формируем новый запрос согласно вышеуказанной инструкции: «Создать», «Конструктор запроса» выбираем нужную таблицу;
- закрываем диалоговое окно и заполняем бланк запроса;
- далее выполняем преобразование запроса из выборки в создание сущности. В ленте выбираем инструмент «Создание таблицы»;
- в диалоговом окне вводим имя нового объекта, и щелкаем «Ок»;
- кликаем «Выполнить», появится предупреждение о невозможности отменить изменения, выбираем «Да»;
- после этого в левой части экрана в блоке «Все таблицы» появится новый созданный объект.
На добавление, удаление, редактирование
Данный вид запросов подразумевает под собой создание и выполнение какого-либо действия, в результате которого изменятся параметры в таблице.
Создаем запрос следующим образом:
- добавляем классический запрос на выборку на основе данных из БД, возьмем для примера «Поставка»;
- далее в верхней части выбираем «Удаление» для преобразования запроса;
- в бланке прописываем необходимые условия;
- щелкаем «Выполнить», появится предупреждение о удалении.
Запрос на добавление:
- добавляем запрос выборку через конструктор;
- затем в верхней части ленты выбираем «Добавление»;
- после этого появится диалоговое окно где требуется ввести новое имя;
- кликаем «Ок» и в бланке прописываем требуемые условия;
- кликаем выполнить, появится предупреждение о добавлении в существующую таблицу новых данных.
На редактирование:
- добавляем классический запрос;
- преобразуем запрос в «Обновления» выбрав соответствующий инструмент в ленте;
- далее в бланке запроса указываем условия и нажимаем «Выполнить»;
Создание и оформление форм
Формы являются одним из элементов, которые предназначены для правильной организации хранения данных.
Для чего нужны формы:
- предназначение форм заключается в выводе данных на экран в удобном для пользователя виде;
- управление запуском. В этом случае главным предназначением форм является запуск макросов;
- показ диалоговых окон. С помощью форм можно выводить на экран предупреждение о возможных ошибках.
Используем «Мастер форм» для создания объекта:
- Открываем вкладку «Конструктор форм»;
- в строке «Таблицы и запросы» и «Доступные поля» выбираем нужные элементы, щелкаем далее;
- затем выбираем тип формы: «в один столбец», «ленточный» и т.д., нажимаем «Готово».
После этого перед пользователем появится новая вкладка, где таблица будет представлена в виде формы. Как можно заметить, восприятие информации стало намного удобнее.
Рассмотрим вариант создания форм через Конструктор:
- добавляем стандартную форму через «Мастера»;
- в левом столбце навигации находим созданную форму и кликаем по ней «ПКМ»;
- в контекстном меню выбираем «Режим конструктор»;
- откроется новое окно в режиме конструктора. Чтобы улучшить навигацию, добавим кнопки;
- на панели инструментов выбираем «Кнопка» и размещаем ее в нужную ячейку;
- далее в окне выбора операции для элемента выбираем, например, «Следующая запись».
Создаем форму с нуля при помощи «Конструктор форм». С помощью этого варианта, можно настроить оформление, изменить заливку поля, добавлять файлы мультимедии, и т.д.
- переходим ко вкладке «Конструктор форм» и открываем ее;
- на экране появится пустое поле, куда требуется поместить необходимые объекты;
- выбираем инструмент «поле» и выделяем ячейки, в которых требуется разместить данные;
- далее настроим оформление, переходим во вкладку «Свойства» на панели инструментов, предварительно выделив нужное поле;
- в параметрах «Цвет фона», «Оформление», «Шрифт», «Цвет текста» можно настроить предпочтительный дизайн;
- также можно добавить файл мультимедиа, на панели инструментов отыскиваем «Рисунок» и выделяем нужные ячейки под его размещение;
- далее откроется окно «Выбор рисунка» и помещаем его в форму.
Для рисунка также можно настроить требуемые параметры: «Цвет фона», «Тип фона», «Границы» и т.д.
Формируем отчеты
Для работы с отчетами будем использовать «Мастер отчетов»:
- Открываем вкладку «Создание» и выбираем «мастер отчетов»;
- затем выбираем требуемую таблицу и необходимые для отчета поля;
- далее добавляем уровни группировки и сортировки;
- затем требуется выбрать макет отчета и его ориентацию, например, макет «Ступенчатый» и ориентация «Книжная»;
- Затем требуется выбрать вариант действия «Просмотреть отчет» или «Изменить».
Отчет с помощью Конструктора:
- переходим к панели инструментов, выбираем «Конструктор отчетов»;
- в верхнем колонтитуле прописываем заголовок;
- в правой части экрана в окне «Список полей» добавляем нужные поля;
- затем переходим ко вкладке «Режим» и выбираем «Предпросмотр». Здесь пользователь может задать необходимое оформление для отчета.
Создание приложений на языке VBA для MS Access
Небольшую и несложную базу данных или приложение Access можно создать в СУБД Access без использования языков программирования SQL и Visual Basic. В СУБД Access имеется достаточно средств (различных мастеров и конструкторов) для визуального проектирования таблиц, запросов, форм и отчетов.
Для решения некоторых задач автоматизации приложений Access можно использовать макросы вместо языка программирования Visual Basic (например, при создании главной и подчиненной кнопочной формы). Но создание коммерческих баз данных в СУБД Access невозможно без применения визуального языка программирования Visual Basic и языка запросов SQL.
Для автоматизации действий над объектами в Microsoft Access и в других приложениях Microsoft Office применяются макросы и модули. Макросы — это небольшие программы на языке макрокоманд (языке сценариев). Модули — это наборы описаний и процедур на языке программирования VBА, т.е. модули — это объекты, содержащие программы на языке Visual Basic.
Основное назначение макросов и модулей — это создание удобного интерфейса приложения, в котором формы и отчеты открывались бы при нажатии кнопок в этих формах или на панелях инструментов. Модули являются более мощным средством создания программных расширений в среде Microsoft Office. Применение модулей требует от пользователей знаний основных принципов объектно-ориентированного программирования.
Программирование на VBA в СУБД Access используют в основном разработчики (программисты) в процессе создания приложений (различных баз данных), с которыми работают пользователи.
Для программирования в Access используется не приложение Visual Basic, а встроенная в Microsoft Office система программирования Visual Basic for Applications (VBA). Система программирования VBA является неотъемлемой частью приложений Microsoft Office и предназначена для визуального программирования в таких приложениях как Word, Excel, PowerPoint, Access и т.д. В VBA языком программирования является Visual Basic (VB), а инструментальная среда программирования реализована в виде редактора VB, который может активизироваться из любого приложения MS Office. Редактор Visual Basic является отдельным приложением, поэтому можно переключаться между приложениями Microsoft Office и редактором Visual Basic клавишами $Alt+F11$.
Модули
Система программирования VBA предназначена для написания кода программ модулей, которые хранят текст этих программ.
Модуль — это совокупность описаний, инструкций и процедур, сохраненных под общим именем. В Access существует два типа модулей: стандартные модули и модули класса. Основное содержание модулей — это процедуры на языке VBA.
Процедура — совокупность описаний и инструкций в модуле, которые выполняются как одна программная единица. В VBA существуют процедуры-подпрограммы Sub и процедуры- функции Function.
Стандартные модули содержат общие процедуры, которые не связаны с конкретным объектом (формой, отчетом). Стандартный модуль — это модуль, в который помещают процедуры Sub и Function, которые должны быть доступны для всех процедур в данном приложении. Стандартные модули могут использоваться другими приложениями Access, так как в общих процедурах нет ссылок на конкретные объекты данного приложения (формы, отчеты). Кроме общих процедур, в стандартных модулях могут содержаться глобальные переменные и функции, а также объекты, которые доступные из других объектов базы данных.
Модуль класса отличается от стандартного модуля тем, что, кроме процедур, он содержит описание объекта и используется для создания классов (объектов). Отдельные модули класса, расположенные на вкладке Модули окна базы данных, содержат описание класса (объекта), созданного пользователем. К модулям класса также относятся модули объектов (форм, отчетов), которые связаны с конкретными формами или отчетами и содержат процедуры обработки событий форм (отчетов) и их элементов управления.
Модуль объекта (формы, отчета) — это модуль класса, содержащий программы всех процедур обработки событий, возникающих в конкретном объекте (форме, отчете) или в его элементах управления.
Все процедуры событий для формы или отчета хранятся в модуле объекта (форме или отчете). Вновь созданная форма (отчет) не содержит модулей, но их можно создать несколькими способами. Таким образом, формы или отчеты связаны с созданными модулями объектов (форм, отчетов). Если процедура используется только формой или отчетом, то она хранится в коде формы или отчета. Если процедура используется во многих формах и отчетах, то она сохраняется в отдельном модуле.
Первый способ создания пустого модуля: выбрать Да в поле наличия модуля на вкладке Все в окне диалога Форма или Отчет (рис.1). Окно диалога вызывается командой Свойства из контекстного меню, находясь в конструкторе форм или отчетов.
Другой способ создания модуля выполняется кнопкой Программа на панели инструментов в режиме конструктора форм или отчетов. Если щелкнуть мышью на кнопке Программа, то запуститься редактор VB, в котором мы можем вводить текст программы соответствующего модуля (рис.2).
Третий способ осуществляется путем обработки некоторых событий связанных с формой или каким-либо элементом управления формы, находясь в режиме Конструктора форм или отчетов. Для этого необходимо открыть окно редактора Visual Basic, щелкнув на команду Программы в Построителе (рис.3). Построитель вызывается командой Обработка событий из контекстного меню объекта, например кнопки.
Для просмотра модулей класса, которые связаны с конкретными формами или отчетами и содержатся в модулях объектов, нужно выделить форму или отчет в окне базы данных на вкладке формы или отчеты и щелкнуть на пиктограмме Программа на панели инструментов в главном окне Microsoft Access. Чтобы создать отдельный модуль класса или стандартный модуль, нужно выбрать пункт Модуль класса или Модуль в меню Вставка. Стандартный модуль можно создать, например, путем преобразования макроса. Модули отображаются в окне базы данных на вкладке Модули. Для просмотра процедуры в стандартном модуле или в модуле класса нужно выделить требуемый модуль в окне базы данных на вкладке Модули и щелкнуть на пиктограмме Программа на панели инструментов в главном окне Microsoft Access или щелкнуть на кнопке Конструктор в окне базы данных. Откроется редактор Visual Basic, на панели редактора кода которого отображаются процедуры.
Объекты и события
В СУБД Access объектами являются таблицы, формы, запросы, окна, меню, кнопки, линии прокруток и т.д., в том числе и приложение Access. Для каждого объекта определены возможные события. Некоторые события возникают от действия пользователей (щелчков мыши, нажатия клавиш клавиатуры и др.), а другая часть событий происходят в результате свершения других событий, например открытия окна. Каждое событие проявляется в определенных действиях программы.