Vvmebel.com

Новости с мира ПК
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Format access пример

Форматы отображения данных

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

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

Свойство Формат поля (Format) определяет только способ отображения данных, не влияя на способ их сохранения.

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

Таблица 2.6. Встроенные числовые форматы для числовых и денежных типов данных

По умолчанию, т. е. если значением свойства Число десятичных знаков является Авто (Auto), форматы Фиксированный, С разделителями разрядов и Процентный выводят числа с двумя десятичными знаками.

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

Таблица 2.7. Символы форматирования для числовых типов данных

Для добавления в специальный формат запятой или другого символа разделителя следует ввести этот символ в кавычках, например, формат » # » ## задает последовательности вида #1, #35, #, #99.

Таблица 2.8. Встроенные форматы для полей типа Дата/Время

Специальные форматы даты и времени определяются с помощью символов форматирования, перечисленных в табл. 2.9.

Таблица 2.9. Символы форматирования для типа данных Дата/Время

Примеры:

ddd», «d imranm yyyy Пн, 1 января 2001

dd mmm уу 01 ЯНВ 01

dddd», «dd mmmmm yyyy понедельник, 01 января 2001

Специальные форматы выводятся в соответствии со значениями, установленными в окне Язык и стандарты панели управления Windows. Специальные форматы, противоречащие настройкам окна Язык и стандарты, игнорируются.

Специальные форматы для текстовых полей и полей MEMO могут включать один или два раздела, разделяемых точкой с запятой (;). В первом разделе описывается формат отображения текста, во втором — формат отображения строк нулевой длины и пустых (Null) значений.

В Access различаются понятия пустого значения и строки нулевой длины. Если поле имеет значение Null — пустое, то это означает, что поле не имеет никакого значения. Если значением текстового или МЕМО-поля является строка нулевой длины, то значение этого поля известно — пустая строка. Пустое значение не может быть равно никакому значению, в том числе другому пустому значению, поэтому связывать таблицы по значению Null нельзя. Пустые строки считаются равными друг другу, поэтому по пустым строкам таблицы связывать можно.

Таблица 2.10. Символы форматирования для текстовых и МЕМО-полей

Для логических полей свойство Формат (Format) позволяет указать использование встроенных форматов: Истина/Ложь (True/False), Да/Нет (Yes/No) или Вкл/Выкл (On/Off). В Microsoft Access элементом управления, используемым по умолчанию для логических полей, является Флажок (Check Box). При его применении игнорируются встроенные и специальные форматы.

Специальный логический формат может содержать от одного до трех разделов, разделяемых точкой с запятой (;). Первый раздел не влияет на формат логических значений, но символ точки с запятой указать необходимо. Во втором разделе задается строковое выражение, определяющее значение Истина (True), Да (Yes) или Вкл (On), а в третьем — строковое выражение, определяющее значение Ложь (False), Нет (No) или Выкл (Off).

Не разрешается смешивать в одном формате специальные символы, предназначенные для определения числовых форматов, форматов даты/времени и текстовых форматов. Но существует ряд символов форматирования, которые используются для любых типов данных. Эти символы представлены в табл. 2.11.

Access format функция примеры

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

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

Свойство Формат поля (Format) определяет только способ отображения данных, не влияя на способ их сохранения.

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

Таблица 2.6. Встроенные числовые форматы для числовых и денежных типов данных

По умолчанию, т. е. если значением свойства Число десятичных знаков является Авто (Auto), форматы Фиксированный, С разделителями разрядов и Процентный выводят числа с двумя десятичными знаками.

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

Таблица 2.7. Символы форматирования для числовых типов данных

Для добавления в специальный формат запятой или другого символа разделителя следует ввести этот символ в кавычках, например, формат » # » ## задает последовательности вида #1, #35, #, #99.

Таблица 2.8. Встроенные форматы для полей типа Дата/Время

Специальные форматы даты и времени определяются с помощью символов форматирования, перечисленных в табл. 2.9.

Таблица 2.9. Символы форматирования для типа данных Дата/Время

Примеры:

ddd», «d imranm yyyy Пн, 1 января 2001

dd mmm уу 01 ЯНВ 01

dddd», «dd mmmmm yyyy понедельник, 01 января 2001

Специальные форматы выводятся в соответствии со значениями, установленными в окне Язык и стандарты панели управления Windows. Специальные форматы, противоречащие настройкам окна Язык и стандарты, игнорируются.

Специальные форматы для текстовых полей и полей MEMO могут включать один или два раздела, разделяемых точкой с запятой (;). В первом разделе описывается формат отображения текста, во втором — формат отображения строк нулевой длины и пустых (Null) значений.

В Access различаются понятия пустого значения и строки нулевой длины. Если поле имеет значение Null — пустое, то это означает, что поле не имеет никакого значения. Если значением текстового или МЕМО-поля является строка нулевой длины, то значение этого поля известно — пустая строка. Пустое значение не может быть равно никакому значению, в том числе другому пустому значению, поэтому связывать таблицы по значению Null нельзя. Пустые строки считаются равными друг другу, поэтому по пустым строкам таблицы связывать можно.

Таблица 2.10. Символы форматирования для текстовых и МЕМО-полей

Для логических полей свойство Формат (Format) позволяет указать использование встроенных форматов: Истина/Ложь (True/False), Да/Нет (Yes/No) или Вкл/Выкл (On/Off). В Microsoft Access элементом управления, используемым по умолчанию для логических полей, является Флажок (Check Box). При его применении игнорируются встроенные и специальные форматы.

Специальный логический формат может содержать от одного до трех разделов, разделяемых точкой с запятой (;). Первый раздел не влияет на формат логических значений, но символ точки с запятой указать необходимо. Во втором разделе задается строковое выражение, определяющее значение Истина (True), Да (Yes) или Вкл (On), а в третьем — строковое выражение, определяющее значение Ложь (False), Нет (No) или Выкл (Off).

Не разрешается смешивать в одном формате специальные символы, предназначенные для определения числовых форматов, форматов даты/времени и текстовых форматов. Но существует ряд символов форматирования, которые используются для любых типов данных. Эти символы представлены в табл. 2.11.

Таблица. 2.11. Символы форматирования для всех типов данных

Возвращает значение типа Variant ( String), которое содержит выражение, отформатированное в соответствии с указаниями, содержащимися в выражении формата.

Об Возникла проблема с использованием этой функции. Последний понедельник в некоторых годовых годах может быть возвращен в неделю 53, когда она должна быть неделей 1. Дополнительные сведения и временное решение можно найти в статье функции Format и datepart могут возвращать неверный номер недели для последнего месяца в году.

Format( выражение [ , формат ] [ , первый_день_недели ] [ , первая_неделя_года ] )

Читать еще:  Подключение odbc access

Функция Format имеет следующие аргументы:

Обязательный аргумент. Любое допустимое выражение.

Необязательный. Допустимое именованное или определяемое пользователем выражение формата.

Необязательный. Константа, задающая первый день недели.

Необязательный аргумент. Константа, задающая первую неделю года.

Аргумент Format может использовать разнообразные параметры, в зависимости от типа данных аргумента Expression . Дополнительные сведения см. в статьях, указанных в таблице ниже.

Аргумент первый_день_недели может принимать следующие значения:

Используются параметры API NLS.

Воскресенье (по умолчанию)

Аргумент первая_неделя_года может принимать следующие значения:

Используются параметры API NLS.

Начинается с недели, на которую приходится 1 января (по умолчанию).

Первой неделей считается та, которая содержит хотя бы четыре дня нового года.

Первой неделей считается первая полная неделя года.

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

Значения даты и времени

Используйте стандартные именованные форматы даты и времени или создайте пользовательские форматы даты и времени.

Серийные номера даты и времени

Используйте форматы даты и времени или числовые форматы.

Создайте пользовательские форматы строк.

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

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

Примечание: Если для свойства Calendar задано значение Gregorian, а для аргумента формат указано форматирование даты, предоставленное выражение должно иметь тип Gregorian. Если для свойства Calendar в Visual Basic задано значение Hijri, выражение должно иметь тип Hijri.

Если используется григорианский календарь, значение символов выражения формат не изменяется. Если используется календарь Хиджра, все символы формата даты (например, dddd, mmmm, yyyy) имеют то же значение, но применяются к календарю Хиджра. Символы формата остаются английскими; символы, отображаемые в текстовом виде (например, AM и PM), выводят строку (на английском или арабском языке), связанную с этим символом. Диапазон некоторых символов при использовании календаря Хиджра изменяется.

Отображает полное название месяца (у названий месяцев Хиджра нет сокращений).

Примеры

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

В этом примере в источнике записей отчета есть поле «Дата», содержащее дату изменения каждой конкретной записи и использующееся в отчете. Во время выполнения отчета результаты фильтруются и отображаются только те записи, в которых значение недели в поле «Дата» (Format([Дата],»ww»)) равно прошлой неделе (Format(Now(),»ww»)-1).

Использование функции Format в коде VBA

Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.

В данном примере показаны различные варианты использования функции Format для форматирования значений с помощью предварительно заданных форматов и форматов, определенных пользователем. Для разделителя даты ( /), разделителя времени ( 🙂 и литералов AM/ PM фактические отформатированные выходные данные, отображаемые системой, зависят от ее региональных параметров. В среде разработки для отображения времени и даты используется краткий формат времени и даты, заданный в региональных параметрах программы. При отображении в работающей программе применяется краткий формат даты и времени из региональных параметров системы, который может отличаться от региональных параметров программы. В этом примере используется локаль «Английский (США)».

MyTime и MyDate отображаются в среде разработки с использованием текущих системных параметров для краткого формата времени и даты.

Использование функции Format с пустыми строками

В Microsoft Access версии 2,0 и более ранних версиях можно использовать функцию Format , чтобы возвращать одно значение для пустая строка, а другое — для значения. Например, вы можете использовать выражение формата, например следующее, с функцией Format , чтобы вернуть соответствующее строковое значение из кода:

В Microsoft Access 97 и более поздних версиях необходимо отдельно проверить, не равно ли значение Null, а затем вернуть соответствующее значение с учетом результата. Например, можно использовать функцию IIf в выражении с функцией Format:

varX = IIf(IsNull(varStrX),»Null», Format(varStrX, «@;ZLS»))

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

При преобразовании базы данных из Microsoft Access 2.0 или более ранней версии в Microsoft Access 2002 или более поздней версии необходимо изменить текст программы так, чтобы проверка для случая Null выполнялась отдельно.

Примеры использования функций VBA

Удаление ненужных символов

Зачастую строки в программе содержат ненужные символы пробелов в конце или в начале строки, которые необходимо удалить, т.к. посторонние начальные или конечные пробелы в строке могут вызвать «неполадки» в работе программы.

В VBA имеются три функции, предназначенные для удаления начальных и конечных пробелов из строки: LTrim, RTrim, Trim. Следует иметь ввиду, что эти функции на самом деле не изменяют исходную строку, а возвращают копию строки с удаленными лишними пробелами.

Определение длины строки

Длину строки, как правило, надо знать при форматировании сообщений для пользователя или при форматировании строковых данных, вводимых процедурой в рабочий лист Excel или документ Word. VBA для этих целей использует функцию Len. В приведенным ниже листинге между знаками круглых скобок и словом присутствует по два пробела.

Следует быть внимательными со строками фиксированной длины. Поскольку строка фиксированной длины имеет всегда одну и ту же длину, функция Len всегда возвращает объявленную длину строки, независимо от фактической длины строки. Например, если в строковой переменной фиксированной длины StrokeName, имеющей длину 15 символов, фактически находится слово «солнце», то функция Len(StrokeName) возвратит результат 15. Чтобы в таком случае узнать фактическую длину строки (в нашем случае — 6), необходимо использовать следующую комбинацию функций: Len(Trim(StrokeName)).

Сравнение и поиск строк

В VBA имеются две функции, помогающих сравнивать строки: StrComp, InStr.

Функция StrComp

StrComp (String1, String2 [, Compare])

String1, String2 — любые два строковых выражения, которые необходимо сравнивать.

Compare — необязательный аргумент, может быть любой из следующих предопределенных констант (если он опускается, то используется текущая установка Option Compare):

  • vbBinaryCompare — бинарное сравнение двух строк;
  • vbTextCompare — текстовое сравнение двух строк;
  • vbDatabaseCompare — используется только в Microsoft Access.

При выполнении StrComp возвращается одно из следующих значений:

  • -1, если String1 меньше String2;
  • 0, если String1 и String2 равны;
  • 1, если String1 больше String2.

В вышеприведенном листинге в текстовом режиме сравниваются две строки: «Строка по умолчанию» и » Строка по умолчанию». Результат сравнения = 1, т.е. «Строка по умолчанию» больше, чем » Строка по умолчанию».

Поэкспериментируйте с разнообразными строками для лучшего понимания работы функции StrComp.

Функция InStr

Функция InStr дает возможность определить, содержит ли одна строка другую строку.

StrComp ([Start, ] String1, String2 [, Compare])

String1, String2 — любые допустимые строковые выражения. Функция проверяет содержится ли String1 в String2.

Compare — необязательный аргумент, может быть любой из следующих предопределенных констант (если он опускается, то используется текущая установка Option Compare):

  • vbBinaryCompare — бинарное сравнение двух строк;
  • vbTextCompare — текстовое сравнение двух строк;
  • vbDatabaseCompare — используется только в Microsoft Access.

Start — необязательный аргумент, является численным выражением и указывает положение символа в String1, с которого должна начинаться проверка.

InStr возвращает число, обозначающее положение символа в String1, где было обнаружено String2. Если InStr не находит String2 в String1, то возвращается 0. Если String1 (или String2) имеет значение Null, то функция также возвращает Null.

Разбиение строки

Иногда возникает необходимость разбиения строки на составляющие части. В VBA эту задачу решают три функции: Left, Right, Mid.

Функция Left

Left (String, Length)

String — любое допустимое строковое выражение.

Length — любое численное значение.

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

Функция Right

Right (String, Length)

String — любое допустимое строковое выражение.

Length — любое численное значение.

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

Читать еще:  Access итоговая сумма в запросе

Функция Mid

Mid (String, Start, [, Length])

String — любое допустимое строковое выражение.

Length, Start — любые численные значения.

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

Символы, которые нельзя ввести с клавиатуры

Зачастую случается, что надо ввести какой-либо символ, для которого отсутствует клавиша на клавиатуре (например, символ копирайта). Другая ситуация — когда надо в строку включить служебный символ VBA (самый распространенный случай — включение двойных кавычек).

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

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

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

Поскольку символы, используемые для начала новой строки, являются очень важными при форматировании сообщений и других строковых данных, которыми манипулируют VBA-процедуры, имеется несколько предопределенных констант для этих символов, чтобы не было необходимости использовать функцию Chr:

  • vbCr — символ возврата каретки. Эквивалент Chr(13)
  • vbLf — символ смещения на одну строку. Эквивалент Chr(10)
  • vbCrLf — символ возврата каретки+смещения на одну строку. Эквивалент Chr(13)+ Chr(10)
  • vbTab — символ табуляции. Эквивалент Chr(9)

Для просмотра списка код-символ надо открыть справочную систему VBA и по запросу «character sets» будет представлена соответствующая таблица.


Форматирование значений данных

Очень часто формат данных на выходе программы по тем или иным причинам нас не совсем устраивает. Эту задачу решает функция Format.

VBA-функция Format идентична функции Format в Excel и использует те же символы-заполнители форматирования данных.

Format (Expression [, Format[, Firstdayofweek [, Firstweekofyear]]])

Expression — любое допустимое выражение (обязательный аргумент).

Format — допустимое выражение именованного или определенного пользователем формата.

Firstdayofweek — константа, которая определяет первый день недели.

Firstweekofyear — константа, которая определяет первую неделю года.

Чтобы использовать функцию Format, надо либо задать предопределенный формат, либо создать образ определенного формата, используя символы-заполнители.

Использование встроенных форматов для функции Format

Использование встроенных форматов для функции Format

В табл. 11.2 приводятся именованные встроенные форматы для данных различных типов в VBA. Используйте их как аргумент в функции Format. He забудьте при этом заключить в кавычки имя выбранного вами формата (из первого столбца таблицы).

Таблица 11.2. Именованные форматы для использования с функцией Format

Пример (соответствует установке языка Русский в панели управления)

Число без выделения разрядов тысяч

Число с выделением разрядов тысяч и с двумя знаками после десятичного разделителя, а также с символом денежной единицы

Как минимум один знак слева и два знака справа от десятичного разделителя (без выделения разрядов тысяч)

Число с выделением разрядов тысяч и как 1 минимум одним знаком слева и двумя знаками справа от десятичного разделителя

Число, умноженное на 100, с двумя знаками справа от десятичного разделителя и знаком процентов (%) справа

Число в стандартном виде для научных расчетов

Нет, если значение равно 0, иначе Да

Ложь, если значение равно 0, иначе Истина

Выкл, если значение равно 0, иначе Вкл

Дата и/или время, в зависимости от значения, представленного в соответствии с установками в панели управления

Дата в виде, заданном в панели управления для полного формата даты

Дата в виде, заданном в панели для среднего формата даты

Дата в виде, заданном в панели управления для краткого формата даты

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

Время (часы и минуты) в 12-часовом формате с метками до/после полудня, заданными в панели управления

Время (часы и минуты) в 24-часовом формате

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

MsgBox «Сейчас » & Format(Now, «h:nn») & _

«. Это время » & Iif(Format(Now, «a/p») = «a», _

«до обеда.», «после обеда.»)

Если вы выполните этот программный код до обеда, оператор отобразит на экране строку типа «Сейчас 9:07. Это время до обеда». После обеда вы получите нечто похожее на сообщение, показанное на рис. 11.1. (Кстати, функция MsgBox обсуждается ниже в этой же главе в разделе «Отображение окон сообщений».)

Рис. 11.1. Окно сообщения

Теперь объяснения. В первой функции Format аргументом формат является «h:nn».

Символ h соответствует стандарту отображения часа одной цифрой, когда имеется в виду время до 10:00. После двоеточия пп задает отображение минут с незначащим нулем, если прошло меньше 10 минут после начала часа.

Вторая из используемых функций Format вложена в функцию Iif. Ввиду того, что аргументом формат в данном случае является «а/р», возвращаемыми значениями будут просто либо «а», либо «р», в зависимости от того, превышает время 12 часов дня или нет. Обычно а/р используется как компонент более длинной строки аргумента формат, но в данном случае результат функции видеть не требуется, и он обрабатывается функцией Iif.

Функция Iif — это миниатюрная версия оператора If. Then (обсуждаемого в деталях в главе 32). Синтаксис этой функции следующий:

Iif (выражение, результатЕслиИстина, результатЕслиЛожь)

В переводе на «человеческий» язык функция работает следующим образом: если выражение есть истина, то функция возвращает значение результатЕслиИстина, если же выражение есть ложь, то возвращается значение результатЕслиЛожь.

В прелыдущем примере выражением для проверки было

Format(Now, «а/р») = «а»

Поэтому если функция Format возвращает значение а, данное выражение есть Истина.

Если же она возвращает любое другое значение, включая р, то выражение есть Ложь. Затем VBA вычисляет результат функции Iif на основе того, является ли значение выражения истиной или ложью. Если это значение Истина, функция Iif возвращает до обеда, а если Ложь, то после обеда.

В VBA 6 были добавлены несколько функций, подобных функции Format, — Format Number, Format DateTime, Format Currency и Format Percent — для работы сданными соответствующих типов. Подобно оригинальной функции Format, каждая из этих функций-наследниц возвращает строку с форматированным представлением исходного значения. Ввиду того, что эти новые функции по умолчанию возвращают результаты, нужные вам чаще всего, эти функции могут оказаться в использовании удобнее, чем сама функция Format. Вкратце их работу можно описать следующим образом.

* FormatNumber(число,ЧислоЗнаковПослеЗапятой, ОтображатьНезначащийНуль, ИспользоватьСкобкиДляОтрицательныхЧисел, ГруппироватьРазряды). Возвращает значение числа- единственного обязательного аргумента- в виде форматированной строки. Если опустить необязательные аргументы, функция FormatNumber отформатирует число на основе установок по умолчанию, заданных на вкладке Числа окна контрольной панели Язык и стандарты Windows. В предположении, что языком Windows выбран русский, вы получите число вида 132 328,55. Необязательные аргументы функции FormatNumber позволяют изменить заданные по умолчанию значения для числа знаков после запятой, отображения незначащего нуля перед запятой для чисел, меньших 1, представления отрицательных чисел в скобках и отделения групп разрядов одной от другой (например, пробелами).

* Format DateTime (дата, формат). Конвертирует значение даты в форматированную строку. Если аргумент формат не указан, строка форматируется в соответствии с системными установками для краткого формата даты и длинного формата времени, заданными на вкладках Дата и Время панели управления Язык и стандарты Windows. Здесь аргумент формат является числом (а не строкой, как в функции Format), но его можно задавать, используя именованные константы вида vbLongDate или vbShort Time.

* Format Currency (число). Возвращает значение числа, отформатированного как денежное, в соответствии с текущими установками в панели управления. В остальном функция Format Currency работает подобно функции FormatNumber и имеет те же необязательные аргументы.

Format Percent (число). Умножает число на 100 и добавляет знак процентов (например, 0,05 превращается в 5,00%). Функция Format Percent имеет те же необязательные аргументы, что и функция FormatNumber. Чтобы не выводить знаки дробной части, задайте аргумент ЧислоЗнаковПослеЗапятой равным 0 (например, Format Percent ( .05, 0)).

Как упоминалось в главе 9, VBA автоматически конвертирует данные одних типов в другие «на лету». Такие автоматические преобразования, конечно, удобны, да и получаемые при этом результаты обычно соответствуют желаемым. Правда, при этом нужно обязательно подчеркнуть слово обычно.

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

* быть уверенным, что VBA выполняет именно то преобразование, которое нужно;

* выполнить преобразования, которые не выполняются в VBA автоматически;

Читать еще:  Sharepoint workspace 2020 что это

* сделать свой программный код яснее.

Для конвертирования данных в VBA предусмотрена целая группа функций — CBool, Cbyte, CCur и т.д. — своих для каждого из встроенных типов данных, за исключением Object. Например, в результате выполнения оператора boolMaybe = CBool (123) переменная bool Maybe будет содержать значение True (вообще любое число, не равное нулю, в результате даст True, наверное потому, что любое такое число ассоциируется с чем-то существующим).

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

Функции Fix и intотбрасывают дробную часть любого заданного им числа, возвращая целое число. Но, в отличие от функций CInt и CLng, они не выполняют привычного округления — например, int(4 . 98 9) возвращает 4, а не 5.

Результаты этих двух функций отличаются только при обработке отрицательных чисел.

Тогда intвозвращает ближайшее к значению аргумента меньшее целое число, a Fix просто отбрасывает дробную часть аргумента.

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

Возможность явного конвертирования в обратном направлении в VBA не предусмотрена, но зато вы можете напечатать буквальные шестнадцатеричные или восьмеричные значения и позволить редактору Visual Basic превратить их в десятичные автоматически. При этом любой шестнадцатеричный или восьмеричный литерал должен предваряться специальным кодом: шестнадцатеричный – кодом &Н, а восьмеричный — кодом &О (это буква О, а не цифра 0). Например, в результате выполнения оператора intBas es = 10+&О12 + &НА значением переменной intBases будет число 30, как и должно быть (это очевидно).

Некоторые функции VBA конвертируют числа в строки. К таким функциям относятся следующие.

* CStr. Превращает данные любых типов (кроме типа Object ), включая числовые, в соответствующую им строку. Вывод форматируется в соответствии с установками заданными в панели управления Язык и стандарты Windows. Например, во Франции CStr ( 200.02) на выходе выдаст строку «200, 02». Здесь следует заметить, что хотя результирующая строка и соответствует региональным установкам, подаваемые на вход числовые данные должны быть представлены в формате, соответствующем английскому языку США.

* Str. Конвертирует число в строку, но всегда форматирует строку в соответствии со стандартом английского языка США с точкой в качестве десятичного разделителя.

* Функции конвертирования в числовые типы данных. Конвертируют строки в соответствующие числовые значения, но только тогда, когда все символы в строке распознаются как допустимые для чисел. В данном случае тоже все зависит от установок в панели управления. Например, в России CDbl («200, 02р. «) в результате дает 200, 02; в США тот же оператор порождает ошибку, но CDbl ( «$200 . 02» ) прекрасно работает.

* Val. Конвертирует числа в строках в числовые значения, останавливаясь там, где встречается первый символ, недопустимый для чисел. Независимо от установок панели управления, распознает только цифры и десятичную точку (а не запятую, например). Однако игнорирует пробелы, символы табуляции и переходы на новую строку.

Так, выражение Val («28 190.43 12 by 14 «) в результате даст 28190,4312.

Chr. Конвертирует числовой ANSI-код в соответствующий символ. Используйте эту функцию, когда в строку нужно поместить символ, который нельзя напечатать.

Asc. Примерно соответствует обратной к функции Chr — возвращает числовой код первого символа в строке.

Функция Format

Возвращает значение типа Variant (String), которое содержит выражение, отформатированное в соответствии с указаниями, содержащимися в выражении формата.

Предупреждение Возникла проблема с использованием этой функции. Последний понедельник в некоторых годовых годах может быть возвращен в неделю 53, когда она должна быть неделей 1. Дополнительные сведения и временное решение можно найти в статье функции Format и datepart могут возвращать неверный номер недели для последнего месяца в году.

Format( выражение [, формат ] [, первый_день_недели ] [, первая_неделя_года ] )

Функция Format имеет следующие аргументы:

Обязательный аргумент. Любое допустимое выражение.

Необязательный. Допустимое именованное или определяемое пользователем выражение формата.

Необязательный. Константа, задающая первый день недели.

Необязательный аргумент. Константа, задающая первую неделю года.

Аргумент Format может использовать разнообразные параметры, в зависимости от типа данных аргумента Expression . Дополнительные сведения см. в статьях, указанных в таблице ниже.

Аргумент первый_день_недели может принимать следующие значения:

Используются параметры API NLS.

Воскресенье (по умолчанию)

Аргумент первая_неделя_года может принимать следующие значения:

Используются параметры API NLS.

Начинается с недели, на которую приходится 1 января (по умолчанию).

Первой неделей считается та, которая содержит хотя бы четыре дня нового года.

Первой неделей считается первая полная неделя года.

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

Значения даты и времени

Используйте стандартные именованные форматы даты и времени или создайте пользовательские форматы даты и времени.

Серийные номера даты и времени

Используйте форматы даты и времени или числовые форматы.

Создайте пользовательские форматы строк.

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

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

Примечание: Если для свойства Calendar задано значение Gregorian, а для аргумента формат указано форматирование даты, предоставленное выражение должно иметь тип Gregorian. Если для свойства Calendar в Visual Basic задано значение Hijri, выражение должно иметь тип Hijri.

Если используется григорианский календарь, значение символов выражения формат не изменяется. Если используется календарь Хиджра, все символы формата даты (например, dddd, mmmm, yyyy) имеют то же значение, но применяются к календарю Хиджра. Символы формата остаются английскими; символы, отображаемые в текстовом виде (например, AM и PM), выводят строку (на английском или арабском языке), связанную с этим символом. Диапазон некоторых символов при использовании календаря Хиджра изменяется.

Отображает полное название месяца (у названий месяцев Хиджра нет сокращений).

Примеры

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

В этом примере в источнике записей отчета есть поле «Дата», содержащее дату изменения каждой конкретной записи и использующееся в отчете. Во время выполнения отчета результаты фильтруются и отображаются только те записи, в которых значение недели в поле «Дата» (Format([Дата],»ww»)) равно прошлой неделе (Format(Now(),»ww»)-1).

Использование функции Format в коде VBA

Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.

В данном примере показаны различные варианты использования функции Format для форматирования значений с помощью предварительно заданных форматов и форматов, определенных пользователем. Для разделителя даты (/), разделителя времени (:) и литералов AM/ PM фактические отформатированные выходные данные, отображаемые системой, зависят от ее региональных параметров. В среде разработки для отображения времени и даты используется краткий формат времени и даты, заданный в региональных параметрах программы. При отображении в работающей программе применяется краткий формат даты и времени из региональных параметров системы, который может отличаться от региональных параметров программы. В этом примере используется локаль «Английский (США)».

MyTime и MyDate отображаются в среде разработки с использованием текущих системных параметров для краткого формата времени и даты.

Использование функции Format с пустыми строками

В Microsoft Access версии 2,0 и более ранних версиях можно использовать функцию Format , чтобы возвращать одно значение для пустая строка, а другое — для значения. Например, вы можете использовать выражение формата, например следующее, с функцией Format , чтобы вернуть соответствующее строковое значение из кода:

В Microsoft Access 97 и более поздних версиях необходимо отдельно проверить, не равно ли значение Null, а затем вернуть соответствующее значение с учетом результата. Например, можно использовать функцию IIf в выражении с функцией Format:

varX = IIf(IsNull(varStrX),»Null», Format(varStrX, «@;ZLS»))

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

При преобразовании базы данных из Microsoft Access 2.0 или более ранней версии в Microsoft Access 2002 или более поздней версии необходимо изменить текст программы так, чтобы проверка для случая Null выполнялась отдельно.

Ссылка на основную публикацию
Adblock
detector