Проверка корректности данных.
Данные, которыми заполняются таблицы, могут представлять какую-либо ценность только в том случае, если они являются корректными. Даже опытные пользователи, заполняющие таблицы, могут допустить ошибку и добавить в таблицу неверные данные. Access 97 позволяет проверить корректность введенных данных с помощью простых выражений, присваиваемых свойству "Условие на значение". Если введенные данные не соответствуют условию назначение, то появится диалоговое окно, сообщающее пользователю об ошибке. Проверка данных на соответствие условию назначение, вместе с режимом обеспечения ссылочной целостности позволяют поддерживать целостность данных.
Выражения являются атомарными элементами языков программирования. Access 97 позволяет создавать выражения, не требуя от пользователя специальной подготовки, хотя даже самое поверхностное знакомство с языками программирования очень полезно при создании выражений. Выражения используются для вычисления различных величин и содержат, по крайней мере, один оператор (например, арифметические операторы, операторы сравнения и т. д.). Чаще всего используются арифметические операторы +, -, * (оператор умножения), / (оператор деления). Эти знакомые всем знаки называются операторами, поскольку они оперируют с (используют) величинами, стоящими слева и справа от знака операции.
Существуют операторы, позволяющие сравнивать значения своих операндов. Эти операторы называются операторами сравнения (например, > (знак больше), = (знак равенства) и т. д). Логические операторы (And, Or, Is, Not, Between и Like) возвращают в качестве результата одно из значений "Истина" (True), "Ложь" (False) или пустое значение (Null), если результат вычислить невозможно. Оператор & используется для слияния (конкатенации) двух строк в одну. В Access 97 для слияния строк также можно использовать оператор +, но оператор & предоставляет дополнительные возможности, и поэтому предпочтительней использовать именно его. Access 97 позволяет создавать сложные выражения из простых, комбинируя их в соответствии с синтаксисом операторов.
В условиях на значение используются выражения, возвращающие одно из значений "Истина" (данные корректны) или "Ложь" (ошибка в данных). Если данные записи не удовлетворяют условию назначение, то при переходе к другой записи или попытке сохранить изменения, появляется диалоговое окно, сообщающее об этом.
Задание 2. Определение условий на значение полей.
Условия на значения, проверяющие корректность данных только в одном поле, независимо от значений других полей, называются условиями на значение поля. В таблице 1 приведен список условий на значение для таблицы "Персональные мероприятия".
Таблица 1.Условия назначения полей таблицы "Персональные мероприятия"
Поле | Условие на значение | Текст сообщения об ошибке |
КодСотрудиика | >0 | Введите правильный код сотрудника |
ТипМероприятия | "П" Or "У Or "К" Or "Г" Or "М" Or "Н" Or "О" | Недопустимый код. Допустимы только коды "П", "У, "М", "К", "Г","Н"и"0" |
КодОтветствен-ного | >0 | Введите правильный код сотрудника, ответственного за мероприятие |
ДатаПлан | Between Date() -365 And Date() + 365 | Мероприятие не может быть запланировано более чем на один год вперед |
КодНачальника | >0 Or Is Null | Введите правильный код начальника или оставьте поле пустым |
Рейтинг | Between 0 And 9 Or Is Null | Введите правильный рейтинг сотрудника (число от 0 до 9) или оставьте поле пустым |
Сумма | Не определено | Нет |
Примечание | Не определено | Нет |
Условия назначения полей "КодСотрудника", "КодОтветственного" и "КодНачаль-ника" не могут определить, правильно ли был введен код Например, в одно из этих полей может быть введен код, которого нет в таблице "Сотрудники". Тем не менее, поскольку при создании связи с таблицей "Сотрудники" был установлен режим обеспечения ссылочной целостности. Access 97 не позволит сохранить запись в подчиненной таблице, которой не соответствует ни одна запись в главной таблице. Поэтому проверка корректности кода сотрудника, с которым связано мероприятие, не нужна. Для обеспечения корректности данных в полях "КодОтветственного" и "КодНачальника" необходимо проверять значения этих полей на совпадение с кодом одного из сотрудников в таблице "Сотрудники". Такая проверка обсуждена далее. Чтобы добавить условия на значение полей таблицы "Персональные мероприятия":
- Откройте таблицу "Персональные мероприятия" в режиме конструктора.
- Выделите поле "КодСотрудника".
- Нажмите клавишу <F6> и поместите точку вставки в поле ввода "Условие на значение".
- Введите >0 и нажмите клавишу <Enter>. Точка вставки переместится в поле ввода "Сообщение об ошибке".
- Введите строку:Введите правильный код сотрудника. Если текст не помещается целиком в поле ввода, то он прокручивается влево. Чтобы перейти в начало текста сообщения об ошибке, нажмите клавишу <Нomе>. Чтобы перейти к последнему символу строки, нажмите клавишу <End>. После завершения ввода строки нажмите клавишу <Enter>.
- Поместите точку вставки в поле ввода "Обязательное поле" (Required) и выберите "Да" в раскрывающемся списке. На рисунке 2 показаны свойства поля "КодСотрудника" после определения условий на значение.
- Нажмите клавишу <F6>, чтобы перейти в бланк структуры таблицы, выделите следующее поле и нажмите клавишу <F6>.
- Введите условия на значение и текст сообщения об ошибке для оставшихся полей таблицы, повторяя процедуру с шага 3 до шага 5. Установите для свойства "Обязательное поле" полей "ТипМероприятия", "КодОтветственного" и "ДатаПлан" значение "Да".
Рис. 2. Свойства поля "КодСотрудника"
Задание 3. Определение условий на значение записей
Значение поля "ДатаФакт" таблицы "Персональные мероприятия" не должно превышать значение поля "ДатаПлан". Поэтому для проверки корректности значения поля "ДатаФакг" это значение нужно сравнить со значением поля "ДатаПлан". В Access 97 нельзя задать условия на значения полей. Вместо этого можно задать условие на значение записи таблицы. В условии на значение записи могут сравниваться одновременно значения нескольких полей. Условие на значение записи и текст сообщения об ошибке, появляющийся при нарушении этого условия, можно задать в диалоговом окне "свойства таблицы" (Table Properties).
Чтобы определить условие на значение записи для поля "ДатаФакт":
- Откройте таблицу "Персональные мероприятия" в режиме конструктора и нажмите кнопку "Свойства" (Properties) на панели инструментов. Появится диалоговое окно "Свойства таблицы" (рис. 3).
- В поле ввода "Описание" введитеПерсональные мероприятия по отделу.
- Поместите точку вставки в поле ввода "Условие на значение" и нажмите кнопку "..." справа от поля ввода (рис. 3). Появится диалоговое окно Построителя выражений (рис. 4). В левом списке этого диалогового окна выделена таблица "Персональные мероприятия", а в центральном списке выводится список полей таблицы.
- Дважды щелкните левой кнопкой мыши по элементу "ДатаФакт" в списке полей таблицы. В окне выражения появится строка [ДатаФакт].
- Введите >= в окне выражения и дважды щелкните левой кнопкой мыши по элементу "ДатаПлан" в списке полей таблицы, чтобы добавить его в выражение.
Рис. 3. Диалоговое окно "Свойства таблицы"
- При создании таблицы "Персональные мероприятия" в поле "ДатаФакт" планировалось хранить пустые значения для мероприятий, которые еще не произошли. Поэтому добавьте к выражению, задающему условие назначение, строку Or [ДатаФакт] Is Null (рис. 4).
- Чтобы закрыть окно построителя выражений и добавить условие на значение записей таблицы, нажмите кнопку ОК.
- Поместите точку вставки в поле ввода "Сообщение об ошибке" и введите текст сообщения об ошибке: Дата проведения мероприятия не может предшествовать запланированной дате мероприятия (рис. 5).
- Закройте окно "Свойства таблицы", нажав кнопку "Закрыть" в правом верхнем углу окна или нажав кнопку "Свойства" на панели инструментов.
Рис. 4. Диалоговое окно Построителя выражений.
Задание 4. Добавление записей в таблицу "Персональные мероприятия"
В таблице 2 приведены данные о приеме на работу каждого из 9 сотрудников компании Борей, которые нужно ввести в таблицу "Персональные мероприятия".
Рис 5. Добавление текста сообщения об ошибке.
Значения полей "ДатаПлан" и "ДатаФакт" определены на основе поля "ДатаНайма" таблицы "Сотрудники". После заполнения таблицы "Персональные мероприятия" данными о приеме сотрудников на работу, поле "ДатаНайма" может быть удалено из таблицы "Сотрудники", поскольку в таблице "Персональные мероприятия" уже хранятся сведения о дате найма сотрудников.
При заполнении поля "Сумма" можно быть как скупым, так и щедрым по отношению к сотрудникам. В любом случае это никак не скажется ни на ваших взаимоотношениях с несуществующими сотрудниками вымышленной фирмы, ни на ваших финансовых средствах.
Заполнение таблицы "Персональные мероприятия" данными о приеме сотрудников на работу достаточно быстрый процесс, особенно для опытных пользователей. В процессе заполнения таблицы можно проверить правильность определения значений свойств "Значение по умолчанию" и "Формат поля". Можно попробовать ввести в таблицу некорректные данные, чтобы проверить условия на значение полей и записей.
Таблица 2. Сведения о найме сотрудников.
Код Тип Ответственный Дата-План Начальник Сумма |
1 П 1 01-май-92 2 000000 |
2 П 1 14-авг-92 3 500000 |
3 П 1 0l-апр-92 2 250000 |
4 Д 2 0З-май-93 2 2 250000 |
5 П 2 17-окт-93 2 2 500000 |
6 П 2 17-окт -93 2 4 000000 |
7 П 2 02-янв-94 2 3 000000 |
8 П 2 05-мар-94 2 2 500000 |
9 П 2 15-ноя-94 2 3 000000 |
Чтобы заполнить первые 9 записей таблицы "Персональные мероприятия", используйте данные из таблицы 2:
1. Откройте таблицу "Персональные мероприятия" в режиме таблицы Установите точку вставки в первое поле хвостовой записи.
2. Введите значение поля "КодСотрудника". Маркер текущей записи изменится на маркер изменяемой записи, а под ней появится новая хвостовая запись. Чтобы ввести значение следующего поля, нажмите клавишу <Enter>, клавишу <Таb> или клавишу <®>. Помните о том, что новая запись не добавляется в таблицу, пока не будут сохранены изменения или не будет выделена другая запись.
3. Введите значение полей "ТипМероприятия" и "КодОтветственного" и нажмите клавишу <Enter>.
4. Введите значение запланированной даты мероприятия. Заметьте, что при вводе нового значения старое удалять не нужно. Нужно просто начать вводить дату Она заменит значение по умолчанию. Нажмите клавишу <Enter>.
5. Введите значение кода начальника для тех записей, у которых оно определено, и нажмите клавишу <Enter>.
6. Введите значение даты проведения мероприятия и дважды нажмите клавишу <Еnter>, <Tаb> или <®>, чтобы пропустить поле 'Тейтннг", значение которого не определяется при приеме сотрудника на работу.
7. Введите значение месячного заработка сотрудника в момент приема на работу.
8. В поле "Примечание" введите комментарии о мероприятии. Нажмите клавишу <Еnter>, <Tаb> или <®>. Точка вставки переместится в первое поле хвостовой записи.
9. Введите данные об оставшихся восьми сотрудниках, повторив шаги 2—8.
После того как информация о приеме сотрудников на работу будет введена, таблица "Персональные мероприятия" примет вид, показанный на рисунке 6.
Рис.6. Первые 9 записей таблицы "Персональные мероприятия
При попытке добавить данные в поля, для которых определены условия на значение, появляются сообщения об ошибке.
Отредактируйте или введите заново данные удовлетворяющие установленным условиям на значение. Если при вводе в таблицу корректных данных появляется сообщение об ошибке, то скорее всего условие назначение задано неверно. В этом случае перейдите в режим конструктора таблиц и проверьте правильность условий на значение, сверяя их с таблицей 2. Можно попробовать временно удалить условие на значение, вырезав его в Буфер обмена (потом условие на значение можно вставить обратно из Буфера обмена), переключиться в режим таблицы и продолжить ее заполнение.
Задание 5. Проверка корректности данных в таблице "Персональные мероприятия"
Теперь с таблицей 'Персональные мероприятия" можно экспериментировать, добавляя в нее различные данные с целью проверки работы условий на значение и средств обеспечения ссылочной целостности данных. Тестирование приложений баз данных часто занимает гораздо больше времени, чемих разработка. Следующие тестовые примеры помогут проверить правильность работы условий на значение и режима ссылочной целостности:
1. Ссылочная целоситость. Введите в поле "КодСотрудника" хвостовой записи таблицы "Персональные мероприятия" значение 25, а в поле "КодОтветственного" значение 2 и нажмите клавишу <>. Нажатие клавиши <> означает сохранение изменений в ней и выделение предыдущей записи. При попытке сохранения изменений в новой записи Асcssе 97 автоматически проверяет, существует ли в таблице "Сотрудники" запись,, на которую ссылается по значению поля "КодСотрудннка" новая запись таблицы "Персональные мероприятия". Если такой записи не существует, то появляется сообщение об ошибке (рис. 7). Нажмите кнопку ОК или нажмите клавишу <Enter>.
Рис. 7. Сообщение о нарушении ссылочной целостности данных.
2. Уникальность значения ключа таблицы.В только что добавленной записи введите значения полей, совпадающие с предыдущей записью, а затем нажмите клавишу <>. Появится сообщение об ошибке (рис. 8). Нажмите кнопку ОК или наймите клавишу <Enter>.
Рис. 8. Сообщение о нарушении уникальности значений ключа таблицы.
3. Проверка корректности значений полей. Введите в поле "КодСотрудника" значение Ы и нажмите клавишу <®>. Появится сообщение об ошибке, текст которого был введен в свойство "Сообщение об ошибке" поля "КодСотрудиика". Нажмите кнопку ОК.
Рис. 9. Сообщение о нарушении условия ни значение поля ''КодСотрудника"
Введите в поле "ТипМероприятия" значение п и нажмите клавишу
<®>. После того как точка вставки покинет поле "ТипМероприятия", значение этого поля должно измениться на П, поскольку был использован формат ">@". В поде "КодОтветственного" введите значение 0 и нямсмоте к-првишу <®>. Появится сообщение об ошибке, текст которого был введен в свойство "Сообщение об ошибке" поля "КодОтветственного" (рис.10). Нажмите кнопку ОК.
Рис.10. Сообщение о нарушении условия назначение ноля "КодОтветственного"
Продолжайте процесс тестирования. Введите значение01/01/80 в поля "ДатаПлан" и "ДатаФакт", чтобы проверить работу условия на значение поля "ДатаПлан". Чтобы изменить значение поля, а не вводить заново его содержимое, выделите поле и нажмите клавишу <F2>, которая является переключателем между режимами перемещения и редактирования таблицы. После окончания тестирования, выделите запись таблицы, которая использовалась для тестирования, и нажмите клавишу <Delete>. Появится диалоговое окно, запрашивающее подтверждение удаления записи (рис.11). Подтвердите удаление, нажав кнопку "Да".
Дата добавления: 2014-12-12; просмотров: 3225;