Funciones de conversión de tipo

Se aplica a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Cada función convierte una expresión en un tipo de datos específico.

Sintaxis

  • CBool(expression)
  • CByte(expression)
  • CCur(expression)
  • CDate(expression)
  • CDbl(expression)
  • CDec(expression)
  • CInt(expression)
  • CLng(expression)
  • CSng(expression)
  • CStr(expression)
  • CVar(expression)

El argumento obligatorio expression es cualquier cadena o expresión numérica.

Tipos devueltos

El nombre de la función determina el tipo devuelto, como se muestra en la tabla siguiente:

Función Tipo de devolución Intervalo para argumento expression
CBool Boolean Cualquier cadena o expresión 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 Cualquier expresión de fecha válida.
CDbl Double -1.79769313486231E308 a -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 de escala cero o números sin posiciones decimales. Para números con 28 posiciones decimales, el rango es +/-7.9228162514264337593543950335. El número distinto de cero más pequeño posible es 0.0000000000000000000000000001.
CInt Integer -32,768 a 32,767; las fracciones se redondea.
CLng Long -2,147,483,648 a 2,147,483,647; las fracciones se redondea.
CSng Single -3.402823E38 a -1.401298E-45 para valores negativos; 1.401298E-45 para 3.402823E38 valores positivos.
CStr String El valor devuelto depende del expression argumento.
CVar Variant El mismo rango que Double para los valores numéricos. El mismo rango que String para los valores no numéricos.

Observaciones

Si el expression que se pasa a la función está fuera del rango del tipo de datos al que va a convertir, se produce un error.

En general, puede documentar el código mediante las funciones de conversión de tipos de datos para mostrar que el resultado de una operación debe usar un tipo de datos determinado en lugar del tipo predeterminado. Por ejemplo, se usa CCur para forzar la aritmética de moneda en casos en los que normalmente se produce una precisión simple, una precisión doble o un entero aritmético.

Use las funciones de conversión de tipos de datos en lugar de Val proporcionar conversiones con conocimiento de configuración regional de un tipo de datos a otro. Por ejemplo, cuando se usa CCur, Access reconoce diferentes separadores decimales, miles de separadores y opciones de moneda según la configuración regional del equipo.

Cuando la parte fraccionaria es exactamente 0.5y CLngCInt siempre la redondea al número par más próximo. Por ejemplo, 0.5 redondea a 0y 1.5 redondea a 2. CInt y CLng difieren de las Fix funciones y Int , que truncan la parte fraccionaria de un número en lugar de redondearla. Fix y Int , además, siempre devuelve un valor del mismo tipo que se pasa.

Use la IsDate función para determinar si date se puede convertir en una fecha u hora. CDate reconoce literales de fecha y literales de hora, así como algunos números que se encuentran dentro del intervalo de fechas aceptables. Al convertir un número en una fecha, la parte numérica completa se convierte en una fecha. Cualquier parte fraccionaria se convierte en una hora del día que comienza a medianoche.

CDate reconoce los formatos de fecha según la configuración regional del sistema. Es posible que Access no determine el orden correcto de día, mes y año si proporciona un formato distinto de una de las opciones de configuración de fecha reconocidas. Además, no reconoce un formato de fecha larga si también contiene la cadena de día de la semana.

La CVDate función también está disponible para la compatibilidad con versiones anteriores de Visual Basic. La sintaxis de CVDate es idéntica a la CDate función. Sin embargo, CVDate devuelve un Variant subtipo Date en lugar de un tipo real Date . Como Access ahora incluye un tipo intrínseco Date , ya no necesita CVDate. Puede obtener el mismo efecto si convierte una expresión en a Date y, a continuación, la asigna a una Variant. Esta técnica es coherente con la conversión de otros tipos intrínsecos a sus subtipos equivalentes Variant .

Nota

La CDec función no devuelve un tipo de datos discreto. En su lugar, siempre devuelve un Variant valor cuyo valor se ha convertido en un Decimal subtipo.

Ejemplos de consulta

Expression Resultados
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; Devuelve SalePrice y FinalPrice, y evalúa si SalePrice es mayor que FinalPrice. Devuelve -1 si es verdadero y 0 si es falso.
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; Devuelve ProductID, convierte los valores del Quantity campo Byteen y los muestra en la Expr1 columna.
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; Devuelve ProductID, convierte los valores del DateofSale campo Dateen y los muestra en la Expr1 columna.
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; Devuelve ProductID, convierte los valores del Discount campo Doubleen y los muestra en la Expr1 columna.
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; Devuelve ProductID, convierte los valores del Discount campo Integeren y los muestra en la Expr1 columna.
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; Devuelve ProductID, convierte los valores del Discount campo Longen y los muestra en la Expr1 columna.
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; Devuelve ProductID, convierte los valores del Discount campo Singleen y los muestra en la Expr1 columna.
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; Devuelve ProductID, convierte los valores del Discount campo Stringen y los muestra en la Expr1 columna.
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; Devuelve ProductID, convierte valores numéricos Discount en Doubley convierte valores no numéricos en String.

Ejemplos de VBA

Nota

En los ejemplos siguientes se muestra cómo usar esta función en un módulo de Visual Basic para Aplicaciones (VBA). Para obtener más información sobre cómo trabajar con VBA, vea la referencia de VBA de Access.

Función CBool

En este ejemplo se usa la CBool función para convertir una expresión en .Boolean Si la expresión se evalúa como un valor distinto de cero, CBool devuelve True; en caso contrario, devuelve 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.

Función CByte

En este ejemplo se usa la CByte función para convertir una expresión en .Byte

Dim MyDouble, MyByte
MyDouble = 125.5678    ' MyDouble is a Double.
MyByte = CByte(MyDouble)    ' MyByte contains 126.

Función CCur

En este ejemplo se usa la CCur función para convertir una expresión en .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).

Función FechaC

En este ejemplo se usa la CDate función para convertir una cadena en .Date En general, no se recomienda la codificación rígida de fechas y horas como cadenas, como se muestra en este ejemplo. Use literales de fecha y literales de hora, como #2/12/1969# y #4:45:23 PM#, en su lugar.

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)

Función CDbl

En este ejemplo se usa la CDbl función para convertir una expresión en .Double

Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)

Función CDec

En este ejemplo se usa la CDec función para convertir un valor numérico en .Decimal

Dim MyDecimal, MyCurr
MyCurr = 10000000.0587    ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr)     ' MyDecimal is a Decimal.

Función CInt

En este ejemplo se usa la CInt función para convertir un valor en .Integer

Dim MyDouble, MyInt
MyDouble = 2345.5678    ' MyDouble is a Double.
MyInt = CInt(MyDouble)    ' MyInt contains 2346.

Función CLng

En este ejemplo se usa la CLng función para convertir un valor en .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.

Función CSng

En este ejemplo se usa la CSng función para convertir un valor en .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.

Función CStr

En este ejemplo se usa la CStr función para convertir un valor numérico en .String

Dim MyDouble, MyString
MyDouble = 437.324    ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".

Función CVar

En este ejemplo se usa la CVar función para convertir una expresión en .Variant

Dim MyInt, MyVar
MyInt = 4534    ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.