Текст в число в access: Функции преобразования типа — Служба поддержки Майкрософт
Содержание
Функции преобразования типа — Служба поддержки Майкрософт
Каждая функция привнося выражение к определенному тип данных.
Синтаксис
CBool(
выражение
)
CByte(
выражение
)
CCur(
выражение
)
CDate(
выражение
)
CDbl(
выражение
)
CDec(
выражение
)
CInt(
выражение
)
CLng(
выражение
)
CSng(
выражение
)
CStr(
выражение
)
CVar(
выражение
)
Обязательный аргумент выражениеаргумент — это любое строковое выражение или числовое выражение.
Возвращаемые типы
Тип возвращаемого значения определяется по имени функции в соответствии со следующей таблицей:
|
|
|
|
Boolean
|
Любое допустимое строковое или числовое выражение.
|
|
Byte
|
От 0 до 255.
|
|
Currency
|
От -922 337 203 685 477,5808 до 922 337 203 685 477,5807.
|
|
Date
|
Любое допустимое выражение даты.
|
|
Double
|
От -1,79769313486231E308 до
|
|
Decimal
|
+/-79 228 162 514 264 337 593 543 950 335 для чисел без дробной части. Для чисел с 28 десятичными знаками допустимый диапазон составляет
|
|
Integer
|
От -32 768 до 32 767, дробная часть округляется.
|
|
Long
|
От -2 147 483 648 до 2 147 483 647, дробная часть округляется.
|
|
Single
|
От -3,402823E38 до -1,401298E-45 для отрицательных значений и от 1,401298E-45 до 3,402823E38 для положительных.
|
|
String
|
Результат, возвращаемый функцией CStr, зависит от аргумента выражение.
|
|
Variant
|
Тот же диапазон, что и для числов Double. Такой же диапазон, как и для строк для не числов.
|
Замечания
Если передаваемое функции выражение находится за пределами диапазона типа данных, в который оно преобразуется, возникает ошибка.
Как правило, функции преобразования типов используются в тексте программ для того, чтобы указать, что результатом той или иной операции должны стать данные определенного типа, а не типа, заданного по умолчанию. Например, с помощью функции CCur можно принудительно перейти к вычислениям в денежном формате в тех случаях, в которых обычно используются действия с числами с обычной точностью, двойной точностью или с целыми числами.
Функции преобразования типа данных следует использовать вместо функции Val для преобразования типов данных в приложениях, поддерживающих различные региональные стандарты. Например, при использовании функции CCur десятичные разделители, разделители групп разрядов и параметры денежных единиц распознаются в соответствии с языковыми и региональными параметрами компьютера.
Если дробная часть целого числа строго равна 0,5, функции CInt и CLng всегда округляют результат до ближайшего четного числа. Например, 0,5 округляется до 0, а 1,5 — до 2. В отличие от функций CInt и CLng, в функциях Fix и Int дробная часть не округляется, а отбрасывается. Кроме того, функции Fix и Int всегда возвращают значение того же типа, что и переданное им выражение.
Для определения возможности преобразования даты в дату или время используется функция IsDate. Функция CDate распознает литералы даты и времени, а также некоторые числа, которые находятся в диапазоне допустимых дат. При преобразовании числа в дату преобразуется целая часть числа. Дробная часть преобразуется во время суток, начиная с полуночи.
CDate распознает форматы даты в соответствии с языковые стандарты системным параметром. Правильный порядок дат, месяца и года может быть определен не в том формате, который не является распознаемой датой. Кроме того, длинный формат даты не распознается, если он также содержит строку дней недели.
Функция CVDate предназначена для обеспечения совместимости с предыдущими версиями Visual Basic. Синтаксис функции CVDate идентичен синтаксису функции CDate, однако функция CVDate возвращает не результат типа Date, а результат типа Variant с подтипом Date. Поскольку теперь реализован встроенный тип Date, необходимость в функции CVDate отпадает. Того же результата можно добиться, преобразовав выражение в тип Date и присвоив это значение переменной типа Variant. Этот способ позволяет преобразовать все прочие встроенные типы в эквивалентные им подтипы Variant.
Примечание: Функция CDec не возвращает отдельный тип данных. Вместо этого она всегда возвращает результат типа Variant, значение которого преобразовано в подтип Decimal.
Примеры запросов
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Примеры VBA
Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
Функция CBool
Совет: В Access 2010 и более поздних версиях есть построитель выражений с поддержкой IntelliSense, который помогает создавать выражения.
В этом примере функция CBool используется для преобразования выражения в тип Boolean. Если выражение разрешается в ненулевое значение, функция CBool возвращает значение True; в противном случае она возвращает значение False.
Dim A, B, Check
A = 5: B = 5 ' Initialize variables.
Check = CBool(A = B) ' Check contains True.
A = 0 ' Define variable.
Check = CBool(A) ' Check contains False.
Функция CByte
В этом примере функция CByte используется для преобразования выражения в тип Byte.
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
Функция CCur
В этом примере функция CCur используется для преобразования выражения в тип Currency.
Dim MyDouble, MyCurr
MyDouble = 543.214588 ' MyDouble is a Double.
MyCurr = CCur(MyDouble * 2)
' Convert result of MyDouble * 2 (1086.429176) to a
' Currency (1086.4292).
Функция CDate
В этом примере функция CDate используется для преобразования выражения в тип Date. Как правило, не рекомендуется определять дату и время в виде строк (как показано в этом примере). Вместо этого пользуйтесь литералами даты и времени, например #2/12/1969# и #4:45:23 PM#.
Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "February 12, 1969"
' Convert to Date data type.
MyShortDate = CDate(MyDate)
MyTime = "4:35:47 PM"
' Convert to Date data type.
MyShortTime = CDate(MyTime)
Функция CDbl
В этом примере функция CDbl используется для преобразования выражения в тип Double.
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
Функция CDec
В этом примере функция CDec используется для преобразования выражения в тип Decimal.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
Функция CInt
В этом примере функция CInt используется для преобразования выражения в тип Integer.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
Функция CLng
В этом примере функция CLng используется для преобразования выражения в тип Long.
Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45
MyVal2 = 25427.55 ' MyVal1, MyVal2 are Doubles.
MyLong1 = CLng(MyVal1)
' MyLong1 contains 25427.
MyLong2 = CLng(MyVal2)
' MyLong2 contains 25428.
Функция CSng
В этом примере функция CSng используется для преобразования выражения в тип Single.
Dim MyDouble1, MyDouble2, MySingle1, MySingle2
' MyDouble1, MyDouble2 are Doubles.
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555
MySingle1 = CSng(MyDouble1)
' MySingle1 contains 75.34211.
MySingle2 = CSng(MyDouble2)
' MySingle2 contains 75.34216.
Функция CStr
В этом примере функция CStr используется для преобразования выражения в тип String.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
Функция CVar
В этом примере функция CVar используется для преобразования выражения в тип Variant.
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.
Функция Str — Служба поддержки Майкрософт
Access для Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Еще…Меньше
Возвращает значение типа Variant (String), представляющее число.
Синтаксис
Str
(
число
)
Обязательный аргумент числоаргумент представляет собой значение типа Long, содержащее любое допустимое числовое выражение.
Замечания
При преобразовании числа в текст в начале строки всегда резервируется пробел для указания знака аргумента число. Если аргумент число имеет положительное значение, возвращаемая строка будет начинаться с пробела, под которым подразумевается знак «плюс».
Для преобразования числового значения в формат даты, времени, денежный, а также в любой пользовательский формат применяется функция Format. В отличие от функции Str, функция Format возвращает строку без начального пробела, соответствующего знаку аргумента число.
Примечание: Функция Str распознает в качестве допустимого десятичного разделителя только точку (.). Если используются другие десятичные разделители, например в международных приложениях, для преобразования числа в строку следует пользоваться функцией CStr.
Пример запроса
|
|
|
|
Пример VBA
Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
В этом примере функция Str используется для получения строкового представления числа. При преобразовании числа в строку возвращаемая строка начинается с пробела, указывающего на знак числа.
Dim MyString
MyString = Str(459) ' Returns " 459".
MyString = Str(-459.65) ' Returns "-459.65".
MyString = Str(459.001) ' Returns " 459.001".
Преобразование текста в число в MS Access
следующий → В этом модуле мы научимся преобразовывать числовые данные, хранящиеся в поле в MS Access, в текст. Мы будем использовать функцию Val для выполнения этой функции. Мы изучим синтаксис и выполним некоторые реализации. Вал ФункцияЭта функция используется в MS Access для преобразования строки в числовое значение. Функция принимает одно значение на вход и возвращает числовое значение на выходе. Параметр в Val Function В качестве входного параметра принимает строковое значение. Числовое значение получается из строки, введенной в качестве параметра. Возвращаемое значение в функции Val Функция Val возвращает числовое значение, полученное из строки. Это числовая часть, которая хранится как строковый тип данных. Примечание. Функция Val не считывает текстовую информацию, но преобразует тип данных числового значения, сохраненного в виде строки. Функция считывает слева направо строку, введенную в качестве параметра. Он прекратит чтение строки, когда функция встретит самый первый символ, который не может быть распознан как числовое значение в строке.Это означает, что если вы хотите преобразовать данные в числовое значение, числовая часть должна располагаться в начале вводимой строки. Если перед числовой частью есть какой-либо символ, то он не сможет преобразовать эту часть в число. Синтаксис функции Val Синтаксис реализации функции Val следующий: Вал ( строка ) Помните о следующих пунктах:
Версии MS Access, поддерживающие функцию Val Функция Val может быть реализована только в следующих версиях Microsoft Access: Access 2019, Access 2016, Access 2013, Access 2010, Access 2007, Access 2003, Access XP, Access 2000. Если какие-либо обновленные версии в MS Access выпущены после указанной версии, то пользователь может обратиться к документации по выпуску, чтобы проверить, есть ли какие-либо изменения в реализации функции Val. Реализация функции Val в MS Access:Давайте обсудим несколько примеров, чтобы увидеть реализацию в Microsoft Access. Вэл («10 участников тренировались в спортзале») Выход: 10 Вышеуказанная функция вернет в результате 10. Следующим символом, который встретится после пробела, будет m, который нельзя преобразовать в числовое значение. Вал («10 15 — это время, когда мы уйдем») Выход: 1015 В результате вышеприведенная функция вернет 1015. Сначала он встретит 10, затем через несколько пробелов он встретит 15, которые также будут преобразованы, но после этого следующим символом после пробела будет i, который не может быть преобразован. Тем самым он перестанет читать строку дальше. Вал («10 : 15 — время, когда мы уйдем») Выход: 10 Приведенная выше функция возвращает 10. Так как ‘:’ не является числовым символом, она сразу остановится. Вал («075») Выход: 75 Функция возвращает значение 75. Числовой эквивалент 075 — только 75. Вал («В их команде было еще 2 игрока») Выход: 0 Он вернет 0, так как первым символом в строке является T, который не является числовым символом. Реализация кода VBAФункция Val может быть реализована в коде VBA в MS Access Dim LNo как двойной После преобразования с использованием функции Val LNo сохранит значение 96,9. Он сохраняет числовое значение в переменной. Реализация функции Val в запросах SQLДля реализации функции Val используйте следующий запрос: Expr01: Val([Поле описания]) Приведенный выше запрос вернет числовое значение, расположенное в начале поля «Описание». Он работает так же, как и со строковым значением. Результат после вычисления будет сохранен в Expr01. Пользователь может использовать имя столбца вместо Expr01, что упрощает понимание. Next TopicIlf Состояние в MS Access ← предыдущая |
Функции преобразования типов — служба поддержки Microsoft
Каждая функция приводит выражение к определенному типу данных.
Синтаксис
CBool(
выражение
)
КБайт(
выражение
)
CCur(
выражение
)
CДата(
выражение
)
CDbl(
выражение
)
CDec(
выражение
)
CInt(
выражение
)
КЛнг(
выражение
)
CSng(
выражение
)
CStr(
выражение
)
CVar(
выражение
)
Требуемый аргумент выражение представляет собой любое строковое выражение или числовое выражение.
Типы возврата
Имя функции определяет тип возвращаемого значения, как показано ниже:
Функция | Тип возврата | Диапазон для |
CBool | Булево значение | Любая допустимая строка или числовое выражение. |
байт | Байт | от 0 до 255. |
CCur | Валюта | -922 337 203 685 477,5808 до 922 337 203 685 477,5807. |
CДата | Дата | Любое допустимое выражение даты. |
CDbl | Двойной | от -1,79769313486231E308 до |
CDec | Десятичный | +/-79 228 162 514 264 337 593 543 950 335 для чисел с нулевой шкалой, то есть чисел без десятичных знаков. Для чисел с 28 знаками после запятой диапазон равен |
Синт | Целое число | -32 768 до 32 767; дроби округлены. |
КЛнг | Длинный | -2 147 483 648 до 2 147 483 647; дроби округлены. |
CSng | Одноместный | от -3.402823E38 до -1.401298E-45 для отрицательных значений; от 1.401298E-45 до 3.402823E38 для положительных значений. |
CStr | Строка | Возвраты для CStr зависят от выражения аргумент. |
CVar | Вариант | Тот же диапазон, что и у Double для числовых значений. Тот же диапазон, что и у String для нечисловых значений. |
Замечания
Если переданное в функцию выражение выходит за пределы диапазона преобразуемого типа данных, возникает ошибка.
В общем, вы можете документировать свой код, используя функции преобразования типа данных, чтобы показать, что результат некоторой операции должен быть выражен в виде определенного типа данных, а не типа данных по умолчанию. Например, используйте CCur 9.0121 для принудительной денежной арифметики в случаях, когда обычно используется арифметика с одинарной точностью, двойной точностью или целочисленная арифметика.
Вы должны использовать функции преобразования типов данных вместо Val , чтобы обеспечить преобразование из одного типа данных в другой с учетом международных стандартов. Например, когда вы используете CCur , разные десятичные разделители, разные разделители тысяч и различные параметры валюты правильно распознаются в зависимости от региональных настроек вашего компьютера.
Когда дробная часть равна точно 0,5, CInt и CLng всегда округляют ее до ближайшего четного числа. Например, 0,5 раунда до 0 и 1,5 раунда до 2. CInt и CLng отличаются от функций Fix и Int , которые усекают, а не округляют дробную часть числа. Кроме того, Fix и Int всегда возвращают значение того же типа, что и переданное.
Используйте функцию IsDate , чтобы определить, можно ли преобразовать date в дату или время. CDate распознает литералы даты и литералы времени, а также некоторые числа, попадающие в диапазон допустимых дат. При преобразовании числа в дату вся числовая часть преобразуется в дату. Любая дробная часть числа преобразуется во время суток, начиная с полуночи.
CDate распознает форматы даты в соответствии с языковыми настройками вашей системы. Правильный порядок дня, месяца и года может быть не определен, если он предоставляется в формате, отличном от одной из распознаваемых настроек даты. Кроме того, длинный формат даты не распознается, если он также содержит строку дня недели.
Функция CVDate также предоставляется для совместимости с предыдущими версиями Visual Basic. Синтаксис функции CVDate идентичен функции CDate , однако CVDate возвращает Variant , подтипом которого является Date вместо фактического типа Date . Поскольку теперь имеется встроенный тип Date , больше нет необходимости в CVDate . Тот же эффект может быть достигнут путем преобразования выражения в Date, , а затем присвоив его варианту . Этот метод согласуется с преобразованием всех других внутренних типов в их эквивалентные подтипы Variant .
Примечание: Функция CDec не возвращает дискретный тип данных; вместо этого он всегда возвращает Variant , значение которого было преобразовано в подтип Decimal .
Примеры запросов
| |
SELECT SalePrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales; | Возвращает «SalePrice», «FinalPrice» и оценивает, превышает ли SalePrice окончательную цену. Возвращает «-1», если истинно, и «0», если ложно. |
ВЫБЕРИТЕ ProductID, CByte (количество) AS Expr1 FROM productSales; | Возвращает «ProductID», преобразует значения в поле «Количество» в байтовый формат и отображает в столбце Expr1 Возвращает «ProductID», преобразует значения в поле «Количество» в формат валюты и отображает в столбце Expr1. |
ВЫБЕРИТЕ ProductID, CDate(DateofSale) AS Expr1 FROM productSales; | Возвращает «ProductID», преобразует значения в поле «DateofSale» в формат даты и отображает в столбце Expr1. |
ВЫБЕРИТЕ ProductID, CDbl(скидка) AS Expr1 FROM productSales; | Возвращает «ProductID», преобразует значения в поле «Скидка» в формат Double и отображает в столбце Expr1. |
ВЫБЕРИТЕ ProductID, CInt(скидка) AS Expr1 FROM productSales; | Возвращает «ProductID», преобразует значения в поле «Скидка» в целочисленный формат и отображает в столбце Expr1. |
ВЫБЕРИТЕ ProductID, CLng (скидка) AS Expr1 FROM productSales; | Возвращает «ProductID», преобразует значения в поле «Скидка» в длинный формат и отображает в столбце Expr1. |
ВЫБЕРИТЕ ProductID, CSng (скидка) AS Expr1 FROM productSales; | Возвращает «ProductID», преобразует значения в поле «Скидка» в формат Single и отображает в столбце Expr1. |
ВЫБЕРИТЕ ProductID, CStr(скидка) AS Expr1 FROM productSales; | Возвращает «ProductID», преобразует значения в поле «Скидка» в строковый формат и отображает в столбце Expr1. |
ВЫБЕРИТЕ ProductID, CVar(скидка) AS Expr1 FROM productSales; | Возвращает «ProductID», преобразует значения в поле «Скидка» в Double для числовых значений и String для нечисловых значений. |
Примеры VBA
Примечание. В следующих примерах показано использование этой функции в модуле Visual Basic для приложений (VBA). Для получения дополнительной информации о работе с VBA выберите Справочник разработчика в раскрывающемся списке рядом с Найдите и введите одно или несколько условий в поле поиска.
Функция CBool
Совет. Построитель выражений с IntelliSense, начиная с Access 2010, помогает создавать правильные выражения.
В этом примере функция CBool используется для преобразования выражения в Boolean . Если выражение дает ненулевое значение, CBool возвращает True ; в противном случае возвращается False .
Dim A, B, Check
A = 5: B = 5 ' Инициализировать переменные.
Check = CBool(A = B) ' Проверка содержит True.
A = 0 'Определить переменную.
Check = CBool(A) ' Проверка содержит False.
CByte Функция
В этом примере используется функция CByte для преобразования выражения в байт .
Dim MyDouble, MyByte
MyDouble = 125,5678 ' MyDouble является двойным.
MyByte = CByte(MyDouble) ' MyByte содержит 126.
CCur Функция
В этом примере функция CCur используется для преобразования выражения в числовое значение 9.0120 Валюта .
Dim MyDouble, MyCurr
MyDouble = 543,214588 ' MyDouble является двойным.
MyCurr = CCur(MyDouble * 2)
' Преобразование результата MyDouble * 2 (1086,429176) в валюту
' (1086,4292).
Функция CDДата
В этом примере используется функция CDate для преобразования строки в Date . Как правило, жесткое кодирование даты и времени в виде строк (как показано в этом примере) не рекомендуется. Используйте литералы даты и литералы времени, например #2/12/19.Вместо этого 69# и #16:45:23#.
Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "12 февраля 1969 г. "
' Преобразование в тип данных Date.
MyShortDate = CDate(MyDate)
MyTime = "16:35:47"
'Преобразовать в тип данных Дата.
MyShortTime = CDate(MyTime)
Функция CDbl
В этом примере используется функция CDbl для преобразования выражения в Двойной .
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Преобразовать результат в Double.
MyDouble = CDbl(MyCurr * 8,2 * 0,01)
Функция CDec
В этом примере функция CDec используется для преобразования числового значения в Decimal .
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr — это валюта.
MyDecimal = CDec(MyCurr) ' MyDecimal является десятичным числом.
Функция CInt
В этом примере используется функция CInt для преобразования значения в целое число .
Dim MyDouble, MyInt
MyDouble = 2345,5678 ' MyDouble является двойным.
MyInt = CInt(MyDouble) ' MyInt содержит 2346.
Функция CLng
В этом примере используется функция CLng для преобразования значения в Long .
Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427,45
MyVal2 = 25427,55 ' MyVal1, MyVal2 являются двойными.
MyLong1 = CLng(MyVal1)
' MyLong1 содержит 25427.
MyLong2 = CLng(MyVal2)
' MyLong2 содержит 25428.
Функция CSng
В этом примере используется функция CSng для преобразования значения в Single .
Dim MyDouble1, MyDouble2, MySingle1, MySingle2
' MyDouble1, MyDouble2 являются двойными.
MyDouble1 = 75,3421115: MyDouble2 = 75,3421555
MySingle1 = CSng(MyDouble1)
' MySingle1 содержит 75,34211.