Практические занятия для опытных пользователей. Как извлечь первое слово из текстовой строки
Как извлечь первое слово из текстовой строки
Функции обработки строк созданы с ориентацией на символы. Они умеют подсчитывать символы, но не понимают, что такое слово пли предложение.
Единственный способ обойти это ограничение — применить функцию 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 РМ |
уууу | Год в четырехсимвольном формате | |
q | Квартал от 1 до 4 | |
т | Месяц от 1 до 12 | |
у | День в году, от 1 до 365 (обычно) | |
d | День в месяце от 1 до 31 | |
w | День недели, от 1 до 7 |
Таблица 7.5 (окончание)
Компонент | Описание | Значение на 20 февраля, 2006 г. 1:30 РМ |
ww | Неделя в году, от 1 до 52 | |
h | Час, от 1 до 24 | |
n | Минута, от 1 до 60 | |
s | Секунда, от 1 до 60 |
Для тех, кто понимает.