Для замены данных служит диалоговое окно замены (см. рис.4.5.), открыть которое можно с помощью элемента головного меню Правка/Заменить или с помощью карточки Замена диалогового окна Найти.

Рис. 4.5. Диалоговое окно Замена

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

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

 

4.5. Сортировка и фильтрация данных

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

Для сортировки по отдельному столбцу достаточно в режиме таблицы установить в нем курсор мыши и выбрать команду сортировки по возрастанию (от А до Я) или по убыванию (от Я до А) из меню Записи. Эту же команду можно выполнить с использованием кнопок Сортировка по возрастанию и Сортировка по убыванию.

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

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

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

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

Задать критерии фильтрации можно несколькими способами. На вкладке Главная есть кнопка Фильтр (см. рис. 4.6.).

Рис. 4.6.

Для задания фильтра по выделенному нужно выделить букву, или имя целиком или что-то другое и нажать кнопку Выделение (см. рис.4.6). Появится небольшое меню, содержащее варианты отбора (см. рис. 4.7).

Рис. 4.7. Диалоговое окно Фильтр по выделенному

К набору, полученному в результате фильтрации, при необходимости можно снова применить фильтр. Пусть, например, требуется отобрать в таблице Студенты сведения о девушках 501 МО группы. Для этого нужно найти в поле Группа ячейку со значением "501 МО" и щелкнуть по кнопке Выделение – Равно "501 МО". На экране останутся записи, относящиеся к студентам 501 МО группы. Затем следует щелкнуть по заголовку ячейки поля Пол и поставить галочку у значения "Ж". В итоге на экране останется лишь требуемая информация (см. рис. 4.8).

Рис. 4.8

Вернуть на экран данные исходной таблицы можно кнопкой Применить фильтр на панели инструментов. Отметим, что эта команда не удаляет из памяти использованный критерий фильтра, а лишь отменяет его действие. Снова включить режим фильтрации можно, опять нажав кнопку Применить фильтр или Фильтр.

Команда Расширенный фильтр позволяет задать критерии фильтрации с помощью бланка запроса и позволяет понять основы построения запросов, да и сам фильтр может быть с помощью специальной команды преобразован в запрос и затем сохранен. При выборе этой команды на экране появляется бланк построения фильтра, в верхней части которого находится список полей таблицы, а в нижней — бланк для построения критериев фильтрации (см. рис. 4.9).

Рис. 4.9

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


Глава 5. Функции. Формулы. Выражения. Построитель выражений

При работе с различными объектами в Access широко используются выражения — аналог формул в Excel. Выражение — это любая комбинация операторов, констант, функций и идентификаторов - операндов, результатом которой является некоторое значение. Выражения часто употребляются для проверки различных условий и проведения вычислений в таблицах, запросах, формах и отчетах. Они позволяют выполнять действия с числами, датами и текстовыми значениями в каждой записи, используя данные из одного или нескольких полей. Например, с помощью выражения можно перемножить значения двух числовых полей или объединить несколько текстовых значений.

5.1. Операторы

В выражениях применяются следующие типы операторов:

– арифметические операторы — используются для выполнения математических вычислений;

– операторы конкатенации — используются для слияния строк;

– операторы сравнения — используются для выполнения операций сравнения;

– логические операторы — используются для выполнения логических операций;

– операторы идентификации — создают однозначные имена объектов БД.

5.1.1. Арифметические операторы

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

Например, оператор деления нацело «\» округляет оба операнда до целых значений, а затем делит первый на второй. Результат округляется до целого, например, 11 \ 2 = 5; 7,6 \ 2,5 = 4.

Таблица 5.1. Арифметические операторы

Оператор Описание Пример
+ Складывает два операнда [Цена] + 10
–   Вычитает из первого операнда второй или меняет знак операнда [Дата1] – [Дата2] –111  
* Перемножает два операнда [Цена]*[Вес]
/ Делит один операнд на второй [Сумма] / 10
\ Делит один операнд на второй нацело [Месяц] \ 4
^ Возводит первый операнд в степень, задаваемую вторым операндом [Число] ^ [Степень]  
Mod Возвращает остаток от деления нацело [Месяц] mod 4

5.1.2. Операторы слияния строк (конкатенации)

Операторы & (амперсанд) или + создают текстовую строку, присоединяя содержимое второй строки к концу первой. Если один из операндов — число, то он преобразуется перед проведением операции слияния в строку символов. Для объединения строк лучше использовать оператор &, а не +, так как если одна из участвующих в операции строк, например <строка 2>, имеет значение Null, то результат операции <строка 1> + <строка 2> равен Null, , а результат операции <строка1> & <строка 2> равен <строка 1>.

Например, в выражении "Число заказов = " & [Число заказов] объединяются строка символов и значение поля Число заказов. Если число заказов равно 100, то результатом выполнения операции будет строка "Число заказов = 100".

5.1.3. Операторы сравнения

Оператор сравнения сравнивает значения двух операндов и возвращает в качестве результата одно из логических значений: True или False. Если хотя бы один из операндов является выражением со значением Null, то результат имеет значение Null.

Кроме стандартных операторов сравнения, приведенных в таблице 2, в Access имеется еще четыре дополнительных оператора сравнения: Is, In, Between и Like, которые обычно используются для проверки условия на значение в поле или в условиях отбора записей в запросе.

Оператор Is при использовании вместе с Null определяет, является ли значение Null или Not Null. Например, Is Null применяется для отбора записей, имеющих в данном поле значение Null, а Is Not Null — для отбора записей, имеющих в данном поле непустое значение.

Таблица 5.2. Операторы сравнения

Оператор Описание Пример Результат
< Меньше, чем 1+2 < 3+4 True
<= Меньше или равно 1 <= 3/5 False
> Больше, чем 1 > 0 True
>= Больше или равно 0 >= 1 False
= Равно 1 = 1 True
<> Не равно 1 <> 1 False

 

Оператор In осуществляет проверку значения на совпадение с элементом из заданного списка. Элементы списка отделяются друг от друга точкой с запятой. Текстовые значения должны браться в кавычки, например, In("Москва";"Киев";"Минск") или In(2;4;6;8).

Оператор Between осуществляет проверку, находится ли числовое значение внутри заданного диапазона. Например, Between 10 And 20 означает, что значение должно находиться в интервале [10, 20].

Оператор Like осуществляет проверку значения на соответствие заданному шаблону.

Таблица 5.3. Спецсимволы, используемые в операторе Like

Спецсимвол Совпадающие символы
? Любой одиночный символ
# Любая одиночная цифра (0-9)
* Любое число символов или их отсутствие
[список] Любой одиночный символ, входящий в список
[!список] Любой одиночный символ, не входящий в список.

В таблице 3 перечислены специальные символы, используемые в шаблоне, и соответствующие им символы в сравниваемом выражении. При проверке совпадения символов их регистр роли не играет. Чтобы включить в список диапазон символов, нужно указать первый символ, знак дефиса и затем последний символ, например [К-Р].

Примеры использования оператора:

Like "А*ов" - любой текст, начинающийся с буквы «А» и заканчивающийся буквами «ов»;

Like "K??#" - значение должно содержать четыре символа, начинаться с буквы K и заканчиваться цифрой.

Like "[А-ВК]*" - любой текст, начинающийся с букв А, Б, В и К;

Like "[!П-СЯ]*" - любой текст, не начинающийся с букв П, Р, С и Я.

5.1.4. Логические операторы

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

Таблица 5.4. Логические операторы

Оператор Назначение
And Должны выполняться все условия
Or Должно выполняться хотя бы одно из условий
Not   Не должно выполняться данное условие.

 

Результат выполнения операции логического умножения And равен True, если значения всех операндов равны True; в противном случае он равен False.

Результат выполнения операции логического Or равен True, если значение хотя бы одного операнда равно True; в противном случае он равен False.

Результат выполнения операции логического отрицания Not равен True, если значение операнда равно False; в противном случае он равен False.

5.1.5. Операторы идентификации. Идентификаторы

Часто в выражениях используются значения полей таблиц, элементов управления форм и других объектов БД. Имена полей в разных таблицах или элементов управления в формах могут совпадать. Чтобы Access правильно вычислил значение выражения, необходимо обеспечить однозначность ссылок в выражениях на объекты БД и их свойства. Access использует два оператора идентификации "!" (восклицательный знак) и "." (точка).

Оператор "!"

Чаще в идентификаторах встречается оператор "!". Он используется для ссылок на объекты. При ссылке на поле таблицы он служит для отделения имени поля от имени таблицы. Сами имена заключаются в квадратные скобки, и ссылка имеет следующий вид: [<имя таблицы>]![<имя поля>].Это так называемая полная форма записи идентификатора поля таблицы. Если нет неопределенности в ссылке, то допустима и неполная форма записи идентификатора поля таблицы в виде [<имя поля>]. Так, в запросах, использующих одну таблицу, обычно используется неполная ссылка на поле. Например, полная ссылка на поле Фамилия в таблице Студент имеет вид [Студент]![Фамилия], а неполная — [Фамилия]. Соответственно, ссылка на элемент управления формы (главной формы, если она содержит подчиненную форму) имеет такую полную форму записи: