Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ОТИ - копия.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
8.91 Mб
Скачать

Занятие №15 Создание таблиц в проекте Access. Связывание таблиц в проекте. Определение контрольных ограничений. Схема взаимодействия проекта Access и sql-сервера.

Работа с таблицами базы данных

Объекты приложения — формы, отчеты, страницы, макросы, модули — создаются и используются в проекте Access практически так же, как и в базе данных Access.

Рассмотрим некоторые особенности работы с объектами базы данных сервера в проекте Access. Объекты базы данных сервера - таблицы, запросы, схемы баз данных - отображаются в проекте как локальные. Для работы с этими объектами предназначен набор графических средств — конструкторов.

Таблицы базы данных сервера создаются в единственно доступном режиме — режиме конструктора.

  1. Давайте откроем любую таблицу проекта, в который была импортирована база данных Access Поставка товаров, в режиме таблицы, например, ТОВАР (рис. 14.8).

  2. Импортированная таблица не имеет ключа. Убедимся, что в таблице без ключа нельзя изменять данные. В строке кнопок перехода по записям кнопка добавления записей отключена. При попытке изменения данных в строке состояния выводится сообщение Данный набор записей не допускает обновление. Без ключа невозможно определение связей таблицы использование мастеров, например, для построения форм.

Рис. 14.8. Таблица сервера в режиме таблицы в проекте Access

На панели перехода по записям справа появились две дополнительные кнопки (см. рис. 14.8). Крайняя правая кнопка открывает окно для выбора максимального числа записей, передаваемых с сервера. Вторая справа кнопка подсвечивается красным цветом в процессе передачи записей с сервера и позволяет остановить этот процесс.

  1. Чтобы вернуть таблицам потерянные при импортировании ключи, нужно перейти в режим конструирования таблицы ТОВАР (рис. 14.9). Выбрать поле КОД_ТОВ, снять флажок Разрешить Null и щёлкнуть на значке панели инструментов Ключевое поле (Primary Key).

Рис. 14.9. Таблица в режиме конструктора в проекте Access

  1. Теперь можно убедиться, что теперь в таблице можно изменять существующие данные и добавлять новые записи. Например, зададим для полей таблицы потерянные значения свойства Подпись. Полю СТАВКА_НДС вернём процентный формат.

В проекте вкладки свойств полей таблицы в конструкторе таблиц сменили имена Общие (General) и Подстановка (Lookup) на Столбцы (Columns) и Поиск (Lookup). В таблицах сервера шире перечень используемых типов данных. Основные типы данных полей, хотя и отличаются от принятых в базах данных Access, совместимы с ними.

Связи таблиц

В проекте значительно расширены свойства таблицы.

1. Откроем окно свойств таблицы ТОВАР, щелкнув в режиме конструктора на кнопке Свойства (Properties). Окно содержит несколько вкладок. На рис. 14.10 показана вкладка Связи (Relationships).

Рис. 14.10. Окно определения связей таблицы ТОВАР

На этой вкладке имеется возможность посмотреть все связи таблицы с другими таблицами, если они определены в схемах данных или ранее в самой таблице, и при необходимости создавать новые связи или удалять существующие, изменять эти связи, не открывая специально схему данных. Список всех связей таблицы открывается в поле Выделенная связь (Selected relationships).

  1. Для создания связи таблиц ТОВАР и ПОСТАВКА_ПЛАН нужно щёлкнуть по кнопке Создать.

  2. Затем выбрать значения Таблица первичного ключа ТОВАР, Таблица внешнего ключа ПОСТАВКА_ПЛАН и поле связи в этих таблицах КОД_ТОВ.

  3. Потом установим параметры поддержания связной целостности. Если ключ таблицы ТОВАР не определен, невозможно создание ее связей.

Ограничения на значения полей таблицы

В окне Свойства (Properties) на вкладке Проверить ограничения

(рис. 14.11) могут быть заданы ограничения на значения полей таблицы. Введём для полей таблицы ТОВАР ограничения на значения: СТАВКА_НДС не должна принимать значений больше 40, а ЦЕНА должна быть не менее 10 и не более 2000.

  1. Для этого перейдём на вкладку Проверить ограничения. Для ввода ограничения нажмём кнопку Создать (New).

  2. Введём в поле Выражение для ограничения (Constraint expression) логическое выражение, определяющее нужное ограничение ([СТАВКА_НДС]<0.40). В поле Имя ограничения (Constraint name) изменим установленное по умолчанию имя СК_ТОВАР, например, на Ставка. В поле Текст для проверки введём сообщение, которое будет выводиться для пользователей при каждом вводе значения, противоречащего ограничению (см. рис. 14.11). Аналогично можно сформировать ограничения на значение другого поля таблицы: ([ЦЕНА]>=10) and ([ЦЕНА]<=2000) с именем Цена.

  3. Просмотрим сформированные ограничения и, если необходимо, исправим их, воспользовавшись списком Выделенное ограничение (Selected constraint).

Если мы не хотите, чтобы установленные ограничения действовали на ранее введенные значения, снимем флажок Проверять имеющиеся данные при создании (Check existing data on creation).

Рис. 14.11. Окно определения ограничений на значения полей таблицы ТОВАР

Рис. 14.12. Сообщение о нарушении ограничения

5. Перейдём в режим таблицы, изменим значение в поле СТАВКА_НДС на недопустимое. Изменение не будет произведено, и появится сообщение (рис. 14.12).

Индексы и ключи

В окне конструктора таблиц поля первичного ключа, как и в базе данных Access, отмечаются соответствующим значком.

Рис. 14.13. Окно определения первичного ключа и индексов таблицы ТОВАР

Используя кнопку панели инструментов Ключевое поле (Primary Key), можно создать или удалить его.

  1. Для просмотра и определения индексов откроем вкладку Индексы и ключи (Indexes/Keys) окна свойств таблицы.

  2. Убедимся, что для ключевого поля КОД_ТОВ автоматически создан первичный индекс с именем РК_ТОВАР.

  3. Индексы создаются и изменяются только в этом окне. Создадим по полю НАИМ_ТОВ (наименование товара) вторичный индекс. Для этого щелкнем на кнопке Создать, выберем Имя столбца НАИМ_ТОВ, дополним Имя индекса (рис. 14.13). Открыв список Выделенный индекс (Selected index), можно выбрать и при необходимости модифицировать любой индекс.

Прямой выход на вкладки определения индексов/ключей, отношений, связей, ограничений в окне свойств таблицы осуществляется по соответствующим командам меню Вид (View).

Занятие №16

Лабораторная работа №4 «Разработка проекта Access – приложения Microsoft SQL Server. Работа с таблицами».

Целью работы является формирование практических умений и навыков разработки клиентского приложения Microsoft SQL Server – проекта Access, использования интерфейса доступа к данным OLE DB для взаимодействия проекта Access с SQL Server, организации работы с таблицами базы данных.

Упражнение 1. Интерфейс доступа к данным OLE DB

Упражнение 2. Создание проекта для существующей на сервере базы данных

Упражнение 3. Создание проекта и новой базы данных на сервере

Упражнение 4. Импорт базы данных Access в проект

Упражнение 5. Работа с таблицами базы данных

Упражнение 6. Связи таблиц. Ограничения на значения таблиц.

Контрольные вопросы:

  1. Клиентом какого сервера является проект Access?

  2. Какие объекты включает проект Access?

  3. Может ли проект хранить запросы к базе данных?

  4. Где размещаются объекты базы данных, с которыми работает проект?

  5. Перечислите объекты базы данных, с которыми работает проект?

  6. Можно ли из проекта создать новую базу данных и ее объекты?

  7. Какой интерфейс используется проектом Access для доступа к данным Microsoft SQL Server?

  8. Может ли проект Access использовать файлы связи с данными - udl?

  9. Какое расширение имеет файл, сохраняющий проект?

  1. Какие параметры необходимо задать для подключения проекта к базе данных сервера?

  2. Какая команда позволяет просмотреть и изменить параметры подключения проекта?

  3. Куда попадут таблицы локальной базы данных при выполнении из проекта команды Файл | Внешние данные | Импорт (File | Get External Data | Import)?

  4. Сохраняется ли определение ключа таблицы при ее импорте в из БД Access в БД SQL Server?

  5. Можно ли таблицу без ключа дополнить новыми данными?

  6. Возможно ли из проекта изменение структуры таблицы?

  7. Можно ли в таблице БД SQL Server задать ограничения на значения полей?