Cada função converte uma expressão em um 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 de cadeia de caracteres ou numérica.
Tipos de retorno
O nome da função determina o tipo de retorno, conforme mostrado na tabela a seguir:
| Função | Tipo de retorno | Intervalo para expression argumento |
|---|---|---|
CBool |
Boolean |
Qualquer expressão de cadeia de caracteres ou 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 |
Qualquer expressão de data válida. |
CDbl |
Double |
-1.79769313486231E308 para -4.94065645841247E-324 para valores negativos; 4.94065645841247E-324 para 1.79769313486232E308 valores positivos. |
CDec |
Decimal |
+/-79,228,162,514,264,337,593,543,950,335 para números em escala zero ou números sem casas decimais. Para números com 28 locais decimais, o intervalo é +/-7.9228162514264337593543950335. O menor número não zero possível é 0.0000000000000000000000000001. |
CInt |
Integer |
-32,768 para 32,767; as frações são arredondadas. |
CLng |
Long |
-2,147,483,648 para 2,147,483,647; as frações são arredondadas. |
CSng |
Single |
-3.402823E38 para -1.401298E-45 para valores negativos; 1.401298E-45 para 3.402823E38 valores positivos. |
CStr |
String |
O valor retornado depende do expression argumento. |
CVar |
Variant |
O mesmo intervalo que Double para valores numéricos. Mesmo intervalo que String para valores não numéricos. |
Comentários
Se o expression passado para a função estiver fora do intervalo do tipo de dados ao qual você está convertendo, ocorrerá 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, use CCur para forçar a aritmética de moeda nos casos em que a aritmética de precisão única, precisão dupla ou aritmética inteiro normalmente ocorreria.
Use as funções de conversão de tipo de dados em vez de Val fornecer conversões com reconhecimento local de um tipo de dados para outro. Por exemplo, quando você usa CCur, o Access reconhece diferentes separadores decimal, mil separadores e opções de moeda com base na configuração de localidade do computador.
Quando a parte fracionária for exatamente 0.5, CInt e CLng sempre arredondar para o número par mais próximo. Por exemplo, 0.5 arredonda para 0, e 1.5 arredonda para 2.
CInt e CLng diferem das Fix funções e Int , que truncam a parte fracionária de um número em vez de arredondar.
Fix e Int também sempre retorna um valor do mesmo tipo que você passa.
Use a IsDate função para determinar se date pode ser convertida em uma data ou hora.
CDate reconhece literais de data e literais de hora, bem como alguns números que se enquadram no intervalo de datas aceitáveis. Quando você converte um número em uma data, a parte número inteiro se torna uma data. Qualquer parte fracionária se torna uma hora do dia que começa à meia-noite.
CDate reconhece formatos de data de acordo com a configuração de localidade do sistema. O acesso pode não determinar a ordem correta de dia, mês e ano se você fornecer um formato diferente de uma das configurações de data reconhecidas. Além disso, ele não reconhecerá um formato de data longa se ele também contiver a cadeia de caracteres do 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 retorna um Variant cujo subtipo é Date em vez de um tipo real Date . Como o Access agora inclui um tipo intrínseco Date , você não precisa CVDatemais . Você pode obter o mesmo efeito convertendo uma expressão em um Date e atribuindo-a a um Variant. Essa técnica é consistente com a conversão de outros tipos intrínsecos em seus subtipos equivalentes Variant .
Observação
A CDec função não retorna um tipo de dados discreto. Em vez disso, ele sempre retorna um Variant cujo valor foi convertido em um Decimal subtipo.
Exemplos de consulta
| Expressão | Armazenamento de |
|---|---|
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; |
Retorna SalePrice e FinalPrice, e avalia se SalePrice é maior que FinalPrice. Retorna -1 se for verdade e 0 se for falso. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
Retorna ProductID, converte os valores no campo em QuantityBytee os exibe na Expr1 coluna. |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Retorna ProductID, converte os valores no campo em DateofSaleDatee os exibe na Expr1 coluna. |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Retorna ProductID, converte os valores no campo em DiscountDoublee os exibe na Expr1 coluna. |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
Retorna ProductID, converte os valores no campo em DiscountIntegere os exibe na Expr1 coluna. |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Retorna ProductID, converte os valores no campo em DiscountLonge os exibe na Expr1 coluna. |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
Retorna ProductID, converte os valores no campo em DiscountSinglee os exibe na Expr1 coluna. |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
Retorna ProductID, converte os valores no campo em DiscountStringe os exibe na Expr1 coluna. |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
Retorna ProductID, converte valores numéricos Discount em Doublee converte valores não numéricos em String. |
Exemplos de VBA
Observação
Os exemplos a seguir mostram como usar essa função em um módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, consulte a referência do Access VBA.
Função CBool
Este exemplo usa a CBool função para converter uma expressão em um Boolean. Se a expressão for avaliada como um valor não zero, CBool retornará True; caso contrário, ela retornará 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 usa a CByte função para converter uma expressão em um Byte.
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.
Função CCur
Este exemplo usa a CCur função para converter uma expressão em um 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).
Função CDate
Este exemplo usa a CDate função para converter uma cadeia de caracteres em um Date. Em geral, não é recomendável codificar datas e horários como cadeias de caracteres, conforme mostrado neste exemplo. Use literais de data e literais de hora, como #2/12/1969# e #4:45:23 PM#, em vez disso.
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 usa a CDbl função para converter uma expressão em um Double.
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
Função CDec
Este exemplo usa a CDec função para converter um valor numérico em um 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 Integer.
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
Função CLng
Este exemplo usa a CLng função para converter um valor em um 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.
Função CSng
Este exemplo usa a CSng função para converter um valor em um 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.
Função CStr
Este exemplo usa a CStr função para converter um valor numérico em um String.
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".
Função CVar
Este exemplo usa a CVar função para converter uma expressão em um Variant.
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.