Книги по разным темам Pages:     | 1 |   ...   | 3 | 4 | 5 | 6 |

специальных правил, в соответствии с которыми следует заполнять таблицы БД. К таким ограничениям, например, могут быть отнесены:

суммарное количество билетов, проданных на один рейс автобуса; возраст сотрудников предприятия (отдела); соотношение некоторых дат (дата приема и дата увольнения); объем поставок и т.д.

3.4 Создание отношений внутримашинной БД Отношения внутримашинной БД создаются в соответствии со структурой БД, разработанной в ходе выполнения этапов 1-3. Для этого могут быть использованы средства СУБД, применение которой предполагается заданием на курсовое проектирование. В случае, если предполагается использование СУБД ACCESS, процесс создания БД может выполняться следующим образом.

В режиме Конструктора создается структура каждой таблицы БД.

Имена полей задаются в соответствии с именами атрибутов, заданных при разработке структуры БД. Для каждого потенциального ключа задаются следующие свойства поля: Обязательное поле - Да, Индексированное поле - Да. Совпадения не допускаются (в соответствии с правилом целостности объекта). Для каждого внешнего ключа указываются свойства: Обязательное поле - Да, Индексированное поле - Да.

Совпадения допускаются (в соответствии с правилом ссылочной целостности). При этом тип данных для каждого внешнего ключа должен совпадать с типом данных потенциального ключа, на который он ссылается. Для упрощения работы рекомендуется обеспечить точное совпадение имен внешнего и потенциального ключа.

Создается схема данных для БД. Для каждого внешнего ключа отыскивается потенциальный ключ; для формируемой связи указывается требование на Обеспечение целостности данных, Каскадное обновление данных, Каскадное удаление данных (в случае, если рассматривается связь со слабым объектом БД или если это определяется спецификой предметной области БД).

Для каждой таблицы создаются формы для ввода данных в любом режиме.

Для всех внешних ключей создаются поля со списком. В список должны быть вынесены значения ссылочных потенциальных ключей (для обеспечения правила ссылочной целостности: среди значений внешнего ключа не должно быть null-значений и не согласованных значений).

Задаются частные ограничения целостности для каждой формы в режиме Конструктора с помощью указания в свойствах соответствующих полей Условий на значение и Сообщений об ошибке.

Рассматриваются вопросы повышения надежности работы конечных пользователей с БД. Для этого могут быть предприняты следующие меры:

- изменяется последовательность перехода по полям формы в случае, если при работе с формой рекомендуется заполнять поля в порядке, отличном от естественного (слева направо и сверху вниз), а расположить поля в нужном порядке графически не удается. Для этого выбирается меню Вид и затем Последовательность перехода. В открывающемся диалоговом окне названия полей формы располагаются в нужном порядке. Следует помнить, что изменение последовательности перехода означает изменение порядка перемещения курсора по полям с помощью клавиши Tab, но не визуальное изменение взаимного расположения полей;

- в случае необходимости дополнительных комментариев для некоторых полей в режиме Конструктора могут быть введены всплывающие подсказки. Они задаются в свойствах полей в строке Всплывающая подсказка;

- при наличии часто повторяющихся значений какого-либо поля работа конечного пользователя может быть существенно облегчена за счет задания Значения по умолчанию в режиме Конструктора в свойствах этого поля. В этом случае заданное значение будет автоматически формироваться в каждой новой записи. Оно может быть изменено пользователем в случае необходимости.

3.6 Заполнение БД Выполняется с помощью разработанных форм с учетом частных ограничений целостности.

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

Ниже рассматриваются вопросы применения некоторых операций и статистических функций, могущих оказаться полезными для решения задач автоматизации подготовки документов.

Оператор сравнения Between Используется для задания двойных неравенств вида x

Синтаксис Between ВыражениеAnd Выражение, где Выражение - выражение, определяющее граничное значение диапазона. Например, с помощью оператора Between 2 And 5, указанном в условии отбора поля [Лет] в запросе, содержащем данные о выслуге лет сотрудников, будут выделены записи о сотрудниках, имеющих стаж работы в организации от 2 до 5 лет.

Функция IIf Возвращает значение одного из двух выражений в зависимости от истинности заданного условия.

Синтаксис IIf(expr, truepart, falsepart) Функция имеет следующие аргументы (Таблица 6).

Таблица Аргумент Описание expr Условие, истинность которого необходимо определить truepart Выражение, значение которого вычисляется, если условие expr истинно (True).

falsepart Выражение, значение которого вычисляется, если условие expr ложно (False).

Например, если в поле [пол] таблицы СОТРУДНИКИ содержатся данные о поле сотрудников в виде одного символа ("ж" или "м"), а в документе необходимо указать полное название пола, то этого можно добиться с помощью вычисления значения функции IIf в отчете. Для этого в свойстве Данные вычисляемого поля следует задать = IIf([пол]="ж";

УженскийФ; УмужскойФ) Функция Choose Выбирает и возвращает значение, соответствующее заданному положению в списке аргументов.

Синтаксис Choose(index, choice-1[, choice-2,... [, choice-n]]) Функция имеет следующие аргументы (Таблица 7).

Таблица Аргумент Описание index Числовое выражение или поле, содержащее значение в диапазоне от 1 до количества вариантов выбора.

choice Варианты выбора. Если index равен 1, то выбирается первый элемент списка, если index равен 2, то второй элемент списка и т.д.

Например, в таблице, содержащей сведения об успеваемости студентов, удобно хранить оценки в числовой форме. Однако в некоторых документах, например, в справке об академической успеваемости, допустимы лишь оценки, представленные в текстовой форме: хорошо, лотлично и т.д. Для преобразования числового значения в текстовое целесообразно использовать вычисляемое поле, для которого в свойстве Данные установлено: = Choose ([оценка]; УнеудовлетворительноФ;

УнеудовлетворительноФ; УудовлетворительноФ; УхорошоФ; УотличноФ) Функция Len Возвращает число символов в строке.

Синтаксис Len (string | varname) Функция Len имеет следующие аргументы (Таблица 8).

Таблица Аргумент Описание string Любое значение строкового выражения. Если строка имеет Null значение, возвращается 0.

Varname Любое имя переменной. Если varname равно 0, то возвращается 0. Если varname - текстовая переменная, Len возвращает число символов в строке.

Например, если в поле [а] записано значение февраль, то Len ([а])=7.

Функция Len может быть использована для проверки частных ограничений целостности при работе пользователя с полями, в которых указываются ИНН, КПП, ОГРН и т.д.

Функция Date Возвращает текущую системную дату.

Синтаксис Date () По григорианскому календарю, установленному в MS Access по умолчанию, возвращает 10-ти значную строку в заданном формате даты (в кратком формате даты - дд мм.гггг, где дд - число в интервале от 01 до30, мм - число в интервале от 01 до12, и гггг - число в интервале от 1980 до 2099.

Функция DateDiff Возвращает число дней (месяцев, лет, кварталов, часов, минут) в интервале между двумя заданными датами.

Синтаксис DateDiff(interval; date1; date2[; firstdayofweek[; firstweekofyear]]) Аргументы и их описания представлены в Таблица 9.

Таблица Аргумент Описание interval Строковое выражение, которое указывает, в каких временных единицах вычисляется интервалу времени между датами date1 и date2 (дни, месяцы, годы и т.д.).

date1, date2 Две даты, используемые при вычислении, причем date1< dateПродолжение таблицы firstdayofweek Константа, которая возвращает название первого дня недели. Если аргумент не определен, по умолчанию предполагается воскресенье.

firstweekofyear Константа, которая определяет название первого дня недели в году. Если не определена, то равна дню недели, в котором наступило 1 января.

Значения аргумента interval представлены в Таблица 10, значения аргумента firstdayofweek в Таблица 11, значения аргумента firstweekofyear в Таблица 12.

Таблица 10 Таблица Значения описание Константа Значение Описание yyyy год vbFirstJan1 1 Начало - с дня недели, в котором наступило 1 января (по q квартал Константа Значение Описание умолчанию).

m месяц vbFirstFourDays 2 Начало - с недели, в которой vbSunday 1 Воскресенье (по y день года имеется четыре дня с начала умолчанию) нового года.

d день vbMonday 2 понедельник vbFirstFullWeek 3 Начало - с первой полной недели w день недели vbTuesday 3 вторник года.

ww неделя vbWednesday 4 среда h час vbThursday 5 четверг n минута vbFriday 6 пятница s секунда vbSaturday 7 суббота Таблица Если date1 больше date2, то функция DateDiff возвращает отрицательное число.

Функция DateAdd Позволяет формировать дату, отстоящую от указанной на заданное количество дней, месяцев, лет.

Синтаксис DateAdd(interval, number, date) Аргументы и их описания представлены в Таблица 13.

Таблица Аргумент Описание interval Строковое выражение, единица измерения интервала времени, на который должна отстоять формируемая дата от указанной.

number Числовое выражение, определяет число интервалов, которые нужно добавить. Оно может быть положительным (формируемая дата находится в будущем по отношению к указанной) или отрицательным (формируемая дата наступила раньше указанной).

date Дата (дата, функция, поле), по отношению к которой формируется новая дата.

Аргумент interval и его описание представлено в Таблица 14.

Таблица Функция DateAdd может возвращать Значение Описание неправильную дату. Например, если необходимо добавить один месяц к дате yyyy Год января 2005 г., то функция DateAdd должна быть задана следующим образом:

q Квартал DateAdd ("m"; 1; #31-января-2005#) m Месяц В этом случае функция DateAdd покажет y День в году 28-февраля 2005 г., так как не существует дата d День 31-февраля-2005. Если в функции DateAdd задана дата 31-января-1996, то ее результатом w День недели станет дата 29-февраля-1996, т.к. 1996 год ww Неделя високосный.

h Час n Минута s Секунда Функция Day Возвращает целое число в интервале между 1 и 31; позволяет выделить номер дня месяца в указанной дате.

Синтаксис Day(date) В качестве даты могут быть указаны дата, функция, имя поля, содержащего дату. Если дата не указана, возвращается значение Null.

Функция Month Возвращает число в интервале от 1 до12; позволяет определить номер месяца года в указанной дате.

Синтаксис Month(date) В качестве даты могут быть указаны дата, функция, имя поля, содержащего дату. Если дата не указана, возвращается значение Null.

Функция Year Возвращает номер года в указанной дате.

Синтаксис Year(date) В качестве даты могут быть указаны дата, функция, имя поля, содержащего дату. Если дата не указана, возвращается значение Null.

Следующая таблица (Таблица 15) содержит примеры выражений, которые используются в вычисляемых элементах управления в формах и отчетах.

Таблица Выражение Описание =Date() Использует функцию Date для отображения текущей даты в заданном формате; например, в кратком формате дата будет выглядеть так:

дд.мм.гггг, где дд означает день (от 1 до 31), мм означает месяц (от 1 до 12), а гггг означает год (в диапазоне от 1980 до 2099).

=DateAdd(УуууyФ; -10; [Дата]) Результатом вычисления функции DateAdd является дата, имеющая тот же месяц и день, что и значение в поле [Дата]. Однако номер года в новой дате на 10 меньше, чем в [Дата].

Например, если в поле [Дата] указано значение 23.07.2003, то результатом вычисления функции DateAdd является дата 23.07.Продолжение таблицы =DateDiff(УdФ; Результатом вычисления функции DateDiff [ДатаРазмещения]; является количество дней между датами, [ДатаИсполнения]) указанными в полях ДатаРазмещения и ДатаИсполнения. Если, например, в поле [ДатаРазмещения] указана дата 13.07.1993, а в поле [ДатаИсполнения] - дата 23.07.1993, то значение функции DateDiff равно 10.

= Year(date) Возвращает номер года в указанной дате.

Например, если поле [дата] содержит значение 14.02.2006, то в результате вычислений Year([дата])=2006.

=Month(date) Возвращает число в интервале от 1 до12;

позволяет определить номер месяца года в указанной дате. Например, если поле [дата] содержит значение 24.06.2004, то в результате вычислений Month([дата])=06.

= Day(date) Возвращает целое число в интервале между и 31; позволяет выделить номер дня месяца в указанной дате. Например, если поле [дата] содержит значение 21.04.2004, то в результате вычислений Day ([дата])=21.

Функция DCount Функция DCount используется для определения количества записей, отвечающих заданному условию и находящихся в некотором подмножестве записей - домене (таблице или запросе). Функция применяется в макросах, запросах, вычисляемых полях форм.

Синтаксис DCount(Expr, Domain, Criteria) Функция имеет следующие аргументы.

Expr - строка символов, идентифицирующая поле, в котором нужно подсчитать записи, удовлетворяющие заданному условию. В качестве нее может быть использовано имя поля таблицы или запроса, а также выражение, производящее вычисления с данными в этом поле. В строку могут быть включены имя поля, константа или функция. Функция может быть встроенной или самостоятельно определенной пользователем средствами VBA.

Domain - строка символов, идентифицирующая таблицу или запрос, в котором находится поле Expr.

Criteria - выражение, определяющее условие отбора данных. Если criteria отсутствует, функция DCount производит подсчет количества строк заданного поля. В выражение criteria может включаться только поле, которое входит в таблицу с именем, указанным как domain. В противном случае функция DCount возвращает Null.

Например, запись =DCount("[ФИО]", "Сотрудник", "[пол] = 'жен'") означает, что необходимо определить, сколько раз в поле [ФИО] таблицы СОТРУДНИК встречаются записи, для которых в поле [пол] этой же таблицы (СОТРУДНИК) указано значение 'жен'. Другими словами, с помощью функции DCount подсчитывается количество женщин, работающих в организации.

Pages:     | 1 |   ...   | 3 | 4 | 5 | 6 |    Книги по разным темам