Cada função converte uma expressão num tipo de dados específico.
Sintaxe
CBool(expression)CByte(expression)CCur(expression)CDate(expression)CDbl(expression)CDec(expression)CInt(expression)CLng(expression)CSng(expression)CStr(expression)CVar(expression)
O argumento necessário expression é qualquer expressão numérica ou de cadeia.
Tipos de devolução
O nome da função determina o tipo de retorno, conforme mostrado na tabela a seguir:
| Função | Tipo de devolução | Intervalo para expression argumento |
|---|---|---|
CBool |
Boolean |
Uma expressão de cadeia ou expressão numérica válida. |
CByte |
Byte |
0 a 255. |
CCur |
Currency |
-922,337,203,685,477.5808 a 922,337,203,685,477.5807. |
CDate |
Date |
Uma expressão de data válida. |
CDbl |
Double |
-1.79769313486231E308 para -4.94065645841247E-324 valores negativos; 4.94065645841247E-324 para 1.79769313486232E308 para valores positivos. |
CDec |
Decimal |
+/-79,228,162,514,264,337,593,543,950,335 para números sem casas decimais. Para números com 28 casas decimais, o intervalo é +/-7.9228162514264337593543950335. O menor número possível diferente de zero é 0.0000000000000000000000000001. |
CInt |
Integer |
-32,768 a 32,767; as frações são arredondadas. |
CLng |
Long |
-2,147,483,648 a 2,147,483,647; as frações são arredondadas. |
CSng |
Single |
-3.402823E38 para -1.401298E-45 valores negativos; 1.401298E-45 para 3.402823E38 para valores positivos. |
CStr |
String |
O valor devolvido depende do expression argumento. |
CVar |
Variant |
O mesmo intervalo dos Double valores numéricos. O mesmo intervalo que String para valores não numéricos. |
Comentários
Se o expression transmitido para a função estiver fora do intervalo do tipo de dados para o qual está a converter, ocorre um erro.
Em geral, você pode documentar seu código usando funções de conversão de tipo de dados para mostrar que o resultado de uma operação deve usar um tipo de dados específico em vez do tipo padrão. Por exemplo, utilize CCur para forçar a aritmética de moedas em casos em que normalmente ocorreria aritmética de precisão única, precisão dupla ou número inteiro.
Utilize as funções de conversão de tipo de dados em vez de Val fornecer conversões com reconhecimento de região de um tipo de dados para outro. Por exemplo, quando utiliza CCuro , o Access reconhece diferentes separadores decimais, separadores de milhares e opções de moeda com base nas definições de região do computador.
Quando a parte fracionária for exata 0.5, CInt arredonda-a CLng sempre para o número par mais próximo. Por exemplo, 0.5 arredonda para 0e 1.5 arredonda para 2.
CInt e CLng diferem das Fix funções e Int , que truncam a parte fracional de um número em vez de o arredondarem.
Fix e Int também sempre retornar um valor do mesmo tipo que você passa.
Utilize a IsDate função para determinar se date pode ser convertido numa data ou hora.
CDate reconhece literais de data e literais de tempo, bem como alguns números que se enquadram no intervalo de datas aceitáveis. Quando converte um número numa data, a parte do número inteiro torna-se uma data. Qualquer parte fracionária torna-se uma hora do dia que começa à meia-noite.
CDate Reconhece formatos de data de acordo com a definição de região do sistema. O Access poderá não determinar a ordem correta do dia, mês e ano se fornecer um formato diferente de uma das definições de data reconhecidas. Além disso, não reconhece um formato de data por extenso se também contiver a cadeia de dia da semana.
A CVDate função também está disponível para compatibilidade com versões anteriores do Visual Basic. A sintaxe de CVDate é idêntica à CDate função. No entanto, CVDate devolve um Variant subtipo cujo substitui em Date vez de um tipo real Date . Uma vez que o Access inclui agora um tipo intrínseco Date , já não precisa do CVDate. Pode obter o mesmo efeito convertendo uma expressão num ficheiro .DateVariant Esta técnica é consistente com a conversão de outros tipos intrínsecos em seus subtipos equivalentes Variant .
Nota
A CDec função não devolve um tipo de dados discreto. Em vez disso, devolve sempre um Variant valor cujo valor foi convertido num Decimal subtipo.
Exemplos de consulta
| Expressão | Resultados |
|---|---|
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; |
Devolve SalePrice e FinalPrice, e avalia se SalePrice é maior do que FinalPrice. Devolve -1 se for verdadeiro e 0 se for falso. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
Devolve ProductID, converte os Quantity valores no campo em Byte, e apresenta-os na Expr1 coluna. |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Devolve ProductID, converte os DateofSale valores no campo em Date, e apresenta-os na Expr1 coluna. |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Devolve ProductID, converte os Discount valores no campo em Double, e apresenta-os na Expr1 coluna. |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
Devolve ProductID, converte os Discount valores no campo em Integer, e apresenta-os na Expr1 coluna. |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Devolve ProductID, converte os Discount valores no campo em Long, e apresenta-os na Expr1 coluna. |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
Devolve ProductID, converte os Discount valores no campo em Single, e apresenta-os na Expr1 coluna. |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
Devolve ProductID, converte os Discount valores no campo em String, e apresenta-os na Expr1 coluna. |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
Devolve ProductID, converte valores numéricos Discount em Double, e converte valores não numéricos em String. |
Exemplos de VBA
Nota
Os exemplos que se seguem mostram como utilizar esta função num módulo Visual Basic for Applications (VBA). Para obter mais informações sobre como trabalhar com o VBA, consulte a referência do VBA do Access.
Função CBool
Este exemplo utiliza a CBool função para converter uma expressão num Booleanficheiro . Se a expressão devolver um valor diferente de zero, devolveTrue; CBool caso contrário, devolve 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.
Função CByte
Este exemplo utiliza a CByte função para converter uma expressão num Byteficheiro .
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
Função CMoeda
Este exemplo utiliza a CCur função para converter uma expressão num Currencyficheiro .
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).
Função CDATE
Este exemplo usa a CDate função para converter uma cadeia de caracteres em um Datearquivo . Em geral, não é recomendado codificar datas e horas como cadeias de caracteres, como mostrado neste exemplo. Utilize literais de data e de tempo, como #2/12/1969# e #4:45:23 PM#, em alternativa.
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)
Função CDbl
Este exemplo utiliza a CDbl função para converter uma expressão num Doubleficheiro .
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
Função CDec
Este exemplo utiliza a CDec função para converter um valor numérico em ficheiros Decimal.
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
Função CInt
Este exemplo usa a CInt função para converter um valor em um Integerarquivo .
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
Função CLng
Este exemplo utiliza a CLng função para converter um valor num Longficheiro .
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.
Função CSng
Este exemplo utiliza a CSng função para converter um valor num Singleficheiro .
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.
Função CStr
Este exemplo utiliza a CStr função para converter um valor numérico em ficheiros String.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
Função CVar
Este exemplo utiliza a CVar função para converter uma expressão num Variantficheiro .
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.