Funções de conversão de tipo

Aplica-se a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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.