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

Практические занятия для опытных пользователей. Улучшенные числовые форматы

Истинные педанты не будут довольны вариантами, перечисленными в табл. 7.2. Им ну­жен полный контроль количества десятичных знаков в числе. Один из возможных вари­антов — использовать функции FormatCurrency( ), FormatPercent ( ) и FormatNumber ( ) (в зависимости от необходимости вывода значения как денежного, процентного или обычного числового). В этих функциях в качестве первого аргумента задается число, которое нужно отформатировать, а в качестве второго — число десятич­ных знаков, которое нужно сохранить.

Для более полного контроля можно определить собственный формат, точно описы­вающий то, что вы хотите получить, и затем применить его в функции Format (). В данной книге не рассматриваются пользовательские числовые форматы, по вы мо­жете посмотреть дополнительную информацию в справочной системе программы Ac­cess (см. рис. 7.6).

Дополнительные математические функции

Математическим функциям в программе Access не уделяется должного внимания, потому что потребность в них возникает крайне редко. Вы уже видели функции Round ( ) и Format ( ) — самые полезные в этой категории — но есть еще несколько других (табл. 7.3), к которым знатоки Access обращаются время от времени в вычисляемых полях.

Таблица 7.3. Функции для числовых данных

Функция

Описание

Пример

Результат

Sqr ( )

Извлекает квадратный корень

Sqr(9)

3

Abs()

Возвращает положительное значение (отрицательные числа становятся положитель­ными)

Abs(-6)

6

Round ()

Округляет число до заданного числа десятич­ных знаков

Round(8.89, 1)

3.9

Fix ( )

Возвращает целую часть числа, отбрасывая любую дробную часть

Fix(8.89)

8

Int( )

То же что функция Fix (), но отрицательные числа округляются до ближайшего меньшего целого числа, а не большего

Int(-8.89)

-9

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

Функция

Описание

Пример

Результат

Rnd( )

Генерирует случайное дробное число в диапа­зоне от 0 до 1

Int ((6) * Rnd + 1)

Случайное целое от 1 до 6

Val ( )

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

Val ("315

Crossland St")

315

Format( )

Преобразует число в форматированную тексто­вую строку в соответствии с выбранными вами параметрами

Format(243.6 , Currency)

$243.60


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

Функцией Rnd ( ) пользуются редко — в конце концов, кому нужны столбцы, запол­ненные искусственно сгенерированными данными? Однако инициативные гуру Access предложили одно интригующее применение для функции Rnd ( ). Они применяют ее для сортировки таблицы, таким образом, чтобы записи выводились в случайном порядке.

По существу вы добавляете вычисляемое поле, содержащее случайное число. Можно использовать в поле выражение, такое как Random: Rnd ( ). Если посмотреть результа­ты вашего запроса, то можно увидеть случайное значение в диапазоне от 0 до 1 (например, 0.7045, 0.2344 и т. д.) рядом с каждой записью.

Теперь вернитесь в Конструктор и сбросьте флажок Вывод на экран для того, чтобы поле Random не выводилось на лист данных. Далее выберите порядок в ячейке Сорти­ровка по возрастанию или по убыванию (что на самом деле не имеет значения) и снова выполните запрос. Ву-а-ля! Каждое выполнение запроса выводит на экран записи в раз­ном порядке, в соответствии со случайными числами, которые программа Access гене­рирует на лету.

Текстовые функции

Все функции, которые вы видели до этого момента, работали с числовыми данными. Но с текстом тоже можно делать многое. В целом есть три способа обработки текста.

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

  • Извлечение подстроки из текстовой строки. Может быть, вам потребуется первое слово из заголовка или первые 100 символов в описании.

Замена строчных букв прописными и наоборот. Возможно, вы захотите отобразить строчные буквы прописными или наоборот.

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

Таблица 7.4. Функции для работы с текстом

Функция

Описание

Пример

Результат

UCase( )

Выводит текст прописными буквами

UCase("Hi There")

HI THERE

LCase( )

Выводит тест строчными буквами

LCase("Hi There")

hi there

Left ( )

Выводит заданное вами число символов, на­чиная от левого края строки

Left("Hi There", 2)

Hi

Right 0

Выводит заданное вами число символов, на­чиная от правого края строки

Right ("Hi There", 5)

There

Mid ( )

Выводит часть строки, начиная с заданной позиции, и заданное число символов

Mid ("Hi There", 4, 2)

Th

Trim ( )

Удаляет пробелы с обеих сторон (или исполь­зуйте LTrim ( ) и RTrim( ) для удаления пробелов только в начале или в конце строки)

Trim(" Hi There ")

Hi There

Len ( )

Подсчитывает количество символов в тексто­вой строке

Len("Hi There")

8

С помощью этих функций вы можете создать вычисляемое поле, которое отображает фрагмент длинной текстовой строки или изменяет вид отображения (строчные или пропис­ные буквы). Применение этих функций в условиях отбора не столь очевидно. Можно соз­дать условие фильтрации, задающее совпадение с частью текстовой строки, а не со всей строкой. Далее приведен пример условия отбора, выбирающего записи, начинающиеся с "Choco": Left([ProductName], 5) = "Choco"

На рис. 7.7 показано, как ввести это условие отбора.

Функция Len ( ) — особый случай. Она проверяет текстовое значение и возвращает чи­словую информацию (в данном случае количество символов в строке, включая все пробелы, буквы, цифры и специальные символы). Эта функция не слишком полезна в простых вы­числяемых выражениях, т. к. вас редко будет интересовать количество букв в текстовой строке. Но она позволяет создавать интересные условия отбора, включая, например, такое, которое отбирает все записи с полем Description короче 15 символов.

Len{Description) < 15

Соседние файлы в папке Управление данными