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 cadeia de caracteres ou expressão 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 para valores positivos. |
CDec |
Decimal |
+/-79,228,162,514,264,337,593,543,950,335 para números com escala zero ou números sem casas decimais. Para números com 28 casas decimais, o intervalo é +/-7.9228162514264337593543950335. O menor número diferente de 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 para valores positivos. |
CStr |
String |
O valor retornado depende do expression argumento. |
CVar |
Variant |
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 para o 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 da moeda nos casos em que a aritmética de precisão simples, dupla precisão ou inteiro normalmente ocorreria.
Use as funções de conversão de tipo de dados em vez de fornecer conversões com reconhecimento de localidade de um tipo de Val dados para outro. Por exemplo, quando você usa CCuro , o Access reconhece diferentes separadores decimais, separadores de milhar e opções de moeda com base na configuração de localidade do computador.
Quando a parte fracionária é exatamente 0.5, CInt e CLng sempre arredonda 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 and Int , que truncam a parte fracionária de um número em vez de arredondá-la.
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 convertido em uma data ou hora.
CDate Reconhece literais de data e literais de hora, bem como alguns números que estão dentro do intervalo de datas aceitáveis. Quando você converte um número em uma data, a parte inteira do número 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 Access pode não determinar a ordem correta do 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 longo 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 subtipo whose em Date vez de um tipo real Date . Como o Access agora inclui um tipo intrínseco Date , você não precisa mais do CVDate. Você pode obter o mesmo efeito convertendo uma expressão em um Date e, em seguida, atribuindo-o a um .Variant Esta 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 é verdadeiro e 0 se é falso. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
Retorna ProductID, converte os valores no Quantity campo em Byte, e os exibe na Expr1 coluna. |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Retorna ProductID, converte os valores no DateofSale campo em Date, e os exibe na Expr1 coluna. |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Retorna ProductID, converte os valores no Discount campo em Double, e os exibe na Expr1 coluna. |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
Retorna ProductID, converte os valores no Discount campo em Integer, e os exibe na Expr1 coluna. |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Retorna ProductID, converte os valores no Discount campo em Long, e os exibe na Expr1 coluna. |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
Retorna ProductID, converte os valores no Discount campo em Single, e os exibe na Expr1 coluna. |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
Retorna ProductID, converte os valores no Discount campo em String, e 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 do Visual Basic for Applications (VBA). 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 diferente de zero, CBool retornará True; caso contrário, 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 horas 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 CTtr
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.