Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Основные операции в запросе




Окно запроса

Окно запроса разделено на две части.

В верхней части находятся таблицы, представленные в форме списков полей.

Каждый список полей снабжен заголовком, содержащим имя таблицы.

В нижней части окна содержится спецификация запроса. Эта область называется QBE – областью проектирования (запрос по образцу). В ней запросы описываются наглядными элементами. Поля перетаскиваются из верхней области запроса в QBE – область проектирования.

Каждая колонка области содержит информацию о поле в запросе.

Поле:

Имя таблицы:

Сортировка:

Вывод на экран:

Условие отбора:

1) Связывание таблиц в запросе.

Если пользователь составляет запрос на основе нескольких таблиц, между таблицами необходимо объявить отношение, связывая их поля друг с другом.

Связь отображается на экране соединенной линией между связанными полями обеих таблиц.

Для объявления связи между двумя таблицами прямо в окне проектирования запроса необходимо перетащить поле одной таблицы в поле такого же типа другой таблицы.

2) Добавление полей.

а) добавить поля к запросу можно путем перетаскивания полей из списка полей в верхней части окна проектированием в нижнюю или двойным щелчком на имени поля;

б) если в запрос помещают все поле таблицы, необходимо маркировать поле с символом "*" в списке полей таблицы в верхней части окна проектирования запроса и перетащить его в область спецификации. Все поля таблицы включаются в запрос, но в спецификации отображаются в одной колонке в виде "Имя таблицы". При модификации таблицы изменения автоматически отображаются в запросе;

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

3) Удаление полей

а) маркировать колонку удаляемого поля, щелкнув мышью над ней в селекторной строке;

б) нажать клавишу Del или Правка – Удалить столбец.

4) Удаление таблицы из запроса

а) в верхней части окна проектирования запроса следует маркировать соответствующую таблицу, выполнив щелчок на имени любого из ее полей;

б) нажать клавишу Del или Правка – Удалить столбец.

5) Ввод условий отбора

Условия отбора (критерии) – это инструкции, определяющие какие записи должны отбираться по запросу и индицироваться в Dynaset.

Условия могут задаваться для одного или нескольких полей запроса.

Access проверяет корректность выражения для отбора.

а) Использование в критерии временных значений.

MS Access хранит значения дат и времени как десятичное число длиной восемь байт. Отсчет ведется от 30 декабря 1899 года (Внутренний формат даты/время). Дата и время заключаются в символы #.

Пример: #5:30 РМ#<=>#17:30#

б) Сравнение AND и OR.

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

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

Для задания условия «или» необходимо перейти в строку Или.

Исследование использования OR; AND в условиях отбора для таблицы студенты.

в) Применение служебных слов BETWEEN, IN, LIKE.

BETWEEN определяет диапазон значений.

Пример: BETWEEN 10 and 20

>=10 and<=20

IN задает используемый для сравнения список значений, разделенных запятой.

IN (5, 8, 9) <==> 5 OR 8 OR 9

LIKE – используют при поиске образцов в текстовых полях. Используемые символы:

* - любое количество любых символов;

? – один любой символ;

[] – диапазон значений;

! – отрицание «не».

Пример: LIKE «?[а-к]d[0-9]» - в первой позиции – произвольный символ; вторая позиция буквы от а до к; в третьей позиции d; в четвертой – цифры от 0 до 9.

г) Использование функции DateDiff.

Синтаксис функции DateDiff следующий:

DateDiff(<interval>, <date1>, <date2>[,<firstdayofweek>])

Эта функция вычисляет разницу между значениями <date1> и <date2>, используя указанную единицу измерения времени (интервал), и возвращает отрицательное значение, если <date1> больше, чем <date2>. Необязательным параметром является <firstdayofweek> (первый день недели) (по умолчанию он равен 1 – воскресенье), который определяет, как будет вычисляться значение функции при использовании в качестве интервала значения “ww”. В таблице 1 представлены значения, которые может принимать параметр <interval>.


Таблица 1 – Значения параметра interval для функции DateDiff

Значение Описание
yyyy Вычисляет разность в годах. DateDiff вычитает часть, представляющую год в первой дате, из части, представляющей год во второй дате. Например, DateDiff(“yyyy”, #31 дек 2002#, #01 янв 2003#) возвращает 1.
q Вычисляет разность в кварталах. Если две даты находятся в одном квартале, то будет получен 0.
m Вычисляет разность в месяцах. DateDiff вычитает часть, представляющую месяц в первой дате, из части, представляющей месяц во второй дате.
y Вычисляет разность в днях. В DateDiff этот параметр ничем не отличается от d, но в других функциях использование этого значения интервала приводит к возвращению номера дня года.
d Вычисляет разность в днях.
w Вычисляет разность в неделях, основываясь на дне недели в <date1>. Если, например, в первой дате днем недели является вторник, то DateDiff считает количество вторников между первой и второй датами. Например, 30 апреля 2003 – это среда, а 5 мая 2003 – понедельник, поэтому DateDiff(“w”, #30 апр 2003#, #05 май 2003#) вернет 0.
ww Вычисляет разность в неделях. Если в качестве первого дня недели используется воскресенье (по умолчанию), то DateDiff считает количество воскресений, попадающих в интервал от первой даты и до второй даты. Например, DateDiff(“ww ”, #30 апр 2003#, #05 май 2003#) вернет 1.
h Вычисляет разность в часах.
n Вычисляет разность в минутах.
s Вычисляет разность в секундах.

 


Таблица 2 – Функции обработки и вычисления дат

Функция Описание Пример
Day (Дата) Возвращает значение от 1 до 31, соответствующее указанному в параметре дата дню. Для выбора записей с событиями контакта, произошедшими после 10-го числа, в строке Поле свободного столбца введите Day([ContactDateTime]), а в качестве критерия укажите >10.
Month (Дата) Возвращает значение от 1 до 12, соответствующее указанному в параметре дата месяце. Для нахождения всех событий контакта, произошедших в марте (любого года), в строке Поле свободного столбца введите Month([ContactDateTime]), а в качестве критерия введите 3.
Year (Дата) Возвращает значение от 100 до 9999, соответствующее указанному в параметре дата году. Для поиска событий, произошедших в 2003 году, в строке Поле пустого столбца введите Year([ContactDateTime]), а в качестве критерия введите 2003.
Weekday (Дата) По умолчанию возвращает значение от 1 (Воскресенье) до 7 (Суббота). Для поиска событий контакта, произошедших между понедельником и пятницей в строке Поле пустого столбца, введите Weekday([ContactDateTime]), а в качестве критерия укажите Between 2 And 6.
Hour (Дата) Возвращает значение от 0 до 23, соответствующее указанному в параметре дата времени. Для поиска событий контактов, произошедших до полудня, в строке Поле пустого столбца введите Hour([ContactDateTime]), а в качестве критерия <12.
DateAdd (интервал, количество, дата) Добавляет значение параметра количество в указанное значение даты. Для поиска событий контакта, произошедших более 6 месяцев назад, в столбце ContactDateTime в качестве критерия введите <DateAdd(“m”, -6, Date())
DatePart (интервал, дата) Возвращает часть даты или времени, в зависимости от кода интервала. Наиболее полезными интервалами являются: q – квартал (четверть года) и ww – неделя года (1-53). Для поиска событий контакта во втором квартале в строке Поле пустого столбца введите DatePart(“q”, [ContactDateTime]), а в качестве критерия введите 2
Date() Возвращает текущую системную дату. Для выбора событий контакта, произошедших более 30 дней назад, в качестве критерия поля ContactDateTime введите <(Date() – 30)

6) Сортировка данных в запросе

Записи в запросе (наборе Dynaset) могут быть рассортированы в алфавитном порядке или числовым способом в возрастающей или убывающей последовательности. Сортировку можно производить по содержимому нескольких полей. Для сортировки необходимо щелкнуть мышью в спецификации на ячейке Sort того поля, по которому необходимо произвести сортировку и указать способ сортировки: Ascending (По возрастанию) или Descending (По убыванию), который выбирают из списка, not sorteol– позволяет отказаться от сортировки.

Отсортированные поля группируются в левой части окна спецификациями.

7) Подавление индикации полей в запросе (Show)

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

Для индикации используется строка Show (Вывод на экран) – наличие отметки.

8) Проведение вычислений.

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

Результат обработки появится в Dynaset.

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

9) Вычисляемые поля в запросах.

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

[Конец больничного]-[Начало больничного]+1.

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

При записи всех типов выражений имена таблиц и имена полей нужно:

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

- при записи выражений можно использовать знаки арифметических операций, операции &, логические операции.

При создании вычисляемого поля необходимо:

1) Установить курсор в строку Поле свободного столбца;

2) На панели инструментов нажать кнопку Построить, открыв окно построителя выражений;

3) Ввести имя создаваемого поля, обязательно завершив его двоеточием (:), и выражение. Если имя нового поля не введено, Access выражению при своит имя по умолчанию: Выражение1.

Рассмотрим примеры вычисляемых полей различных типов.

Выражение числового типа. Полный возраст можно вычислить следующим образом:

Возраст: (Date()-[Дата рождения])/365.

Выражение текстового типа. Для создания полного адреса в одном поле создадим выражение:

Адрес: [Индекс]&”, г.” & [Город] &”,” &”ул. ”& [Улица] &”,”& [Дом].

Для формирования фамилии с инициалами используется выражение:

ФИО: [Фамилия]&””& Left ([Имя],1)&”!”& Left ([Отчество],1) &”.”.

Здесь используются функция Left(Поле, n), которая позволяет выделить из текстового Поля n левых букв.




Поделиться с друзьями:


Дата добавления: 2014-10-17; Просмотров: 485; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.025 сек.