Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Access_2007.doc
Скачиваний:
257
Добавлен:
17.03.2015
Размер:
20.6 Mб
Скачать

Практические занятия для опытных пользователей. Как извлечь первое слово из текстовой строки

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

Единственный способ обойти это ограничение — применить функцию Instr ( ), которая ищет один или несколько символов в текстовой строке. (Название Instr ( ) — это со­кращение от "in string", поскольку вы ищите конкретные символы внутри текстовой строки.) Для поиска символов "he" с строке "Hi There" нужно применить функцию Instr ( ) следующим образом:

Instr("Hi There", "he")

Результат равен 5, потому что текст "he" начинается с пятой символьной позиции. Если программа Access не находит совпадения, функция Instr ( ) возвращает 0. Если же есть множественные совпадения, Instr () возвращает позицию первого.

Сама по себе эта функция не очень полезна в условиях отбора и вычисляемых полях. Но ее можно использовать в сочетании с другими функциями, такими как Mid ( ) и Left ( ), для вырезания части строки, расположенной рядом с какой-либо буквой. Можно при­менить функцию Instr ( ) для поиска первого пробела и вырезать весь текст до этого пробела. Таким образом, вы извлечете целое слово.

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

FirstWordProduct:

Left([ProductName], Instr([ProductName], ""- 1))

Это выражение переводится следующим образом: "Найди позицию первого пробела, вычти единицу и извлеки все символы слева от пробела". Вычислите это поле для зна­чения Banana Cream Fudge и вы получите вырезанный текст Banana, что выглядит как впечатляющий яркий трюк.

Рис. 7.7. Функции Left ( ), Right ( ) и Mid ( ) действуют во многом аналогично ключевому слову Like, помогая найти совпадения кусочков длинной текстовой строки

Функции для обработки дат

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

Несомненно, многие применяют функции Now () и Date (), с которыми вы познакоми­лись в главе 4. Эти функции извлекают текущие дату и время или только текущую дату. Их можно применять в запросах, работающих с заказами, принесшими доход в текущем году.

Вот условие для выбора просроченных проектов:

=<Date ( )

Вставьте его в ячейку Условие отбора поля DueDate (срок платежа) и вы увидите толь­ко те записи, в которых поле DueDate содержит дату, наступившую ранее нынешнего дня.

Анализ дат может быть более сложным в сочетании с функцией DatePart (), которая извлекает часть информации из даты. DatePart () может определить номер месяца или год, позволяя игнорировать другие подробности (такие как число или время). С помощью DatePart () и Date () можно легко написать условие фильтрации, отбирающее заказы, сде­ланные в текущем месяце.

DatePart("m", [DatePlaced])=DatePart("m", Date())

And DatePart("yyyy", [DatePlaced])=DatePart("yyyy", Date ())

Это довольно длинное выражение на самом деле представляет собой комбинацию двух условий, соединенных ключевым словом And. Первое условие сравнивает номер месяца те­кущей даты с датой, хранящейся в поле DatePlaced:

DatePart("m", [DatePlaced])=DatePart ("m", Date( ))

Приведенное выражение устанавливает, что у обеих дат один и тот же календарный ме­сяц, но вы должны также убедиться в том, что год у них тоже совпадает:

DatePart("yyyy", [DatePlaced])=DatePart("yyyy", Date ( ))

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

Таблица 7.5. Компоненты даты

Компонент

Описание

Значение на 20 февраля, 2006 г. 1:30 РМ

уууу

Год в четырехсимвольном формате

2006

q

Квартал от 1 до 4

1

т

Месяц от 1 до 12

2

у

День в году, от 1 до 365 (обычно)

51

d

День в месяце от 1 до 31

20

w

День недели, от 1 до 7

2

Таблица 7.5 (окончание)

Компонент

Описание

Значение на 20 февраля, 2006 г. 1:30 РМ

ww

Неделя в году, от 1 до 52

8

h

Час, от 1 до 24

13

n

Минута, от 1 до 60

30

s

Секунда, от 1 до 60

0

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]