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

Sintaxis

CBool( expr )

CByte( expr )

CCur( expr)

CDate( expr)

CDbl( expr )

CDec( expr)

CInt( expresión )

CLng( expr )

CSng( expr )

CStr( expr)

CVar( expr )

La expresión necesariaargumento es cualquier expresión de cadena o expresión numérica.

Tipos devueltos

El nombre de la función determina el tipo devuelto como se muestra a continuación:

Función

Tipo de devolución

Intervalo para el argumento expresión

CBool

Boolean

Cualquier cadena o expresión numérica válida.

CByte

Byte

0 a 255.

CCur

Moneda

-922.337.203.685.477,5808 a 922.337.203.685.477,5807.

CDate

Fecha

Cualquier expresión de fecha válida.

CDbl

Double

- 1,79769313486231E308 a -4,94065645841247E-324 para valores negativos; 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos.

CDec

Decimal

+/-79.228.162.514.264.337.593.543.950.335 para números de escala cero, es decir, números sin 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

Entero

-32.768 a 32.767; fracciones se redondea.

CLng

Largo

-2.147.483.648 a 2.147.483.647; fracciones se redondea.

CSng

Single

-3,402823E38 a -1,401298E-45 para valores negativos; 1,401298E-45 a 3,402823E38 para valores positivos.

CStr

String

Las devoluciones de CStr dependen del argumento expresión .

CVar

Variante

Double para los valores numéricos. Mismo intervalo que String para los valores no numéricos.

Comentarios

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

En general, puede documentar el código con las funciones de conversión de tipo de datos para mostrar que el resultado de alguna operación debe expresarse como un tipo de datos determinado en lugar del tipo de datos predeterminado. Por ejemplo, use CCur para forzar la aritmética de moneda en los casos en los que normalmente se produciría una precisión simple, una precisión doble o un entero aritmético entero.

Debe usar las funciones de conversión de tipo de datos en lugar de Val para proporcionar conversiones con conocimientos internacionales de un tipo de datos a otro. Por ejemplo, cuando se usa CCur, se reconocen correctamente separadores decimales diferentes, miles de separadores diferentes y varias opciones de moneda según la configuración regional del equipo.

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

Use la función EsFecha para determinar si la fecha 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 del número se convierte en una hora del día, a partir de medianoche.

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

También se proporciona una función CVDate por motivos de compatibilidad con versiones anteriores de Visual Basic. La sintaxis de la función FECHA.VC es idéntica a la función FechaC , pero FECHA.VC devuelve un tipo Variant cuyo subtipo es Date en lugar de un tipo Date real. Dado que ahora hay un tipo intrínseco de fecha , no hay ninguna necesidad adicional de CVDate. Para lograr el mismo efecto, convierta una expresión en una fecha y , a continuación, asígnela a un tipo de datos Variant. Esta técnica es coherente con la conversión de todos los demás tipos intrínsecos a sus subtipos Variant equivalentes.

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

Ejemplos de consulta

Expression

Resultados

SELECT SalePrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales;

Devuelve "PrecioVentas", "PrecioUnidad" y se evalúa si PrecioVenta es mayor que Precio final. Devuelve "-1" si es verdadero y "0" si es falso.

SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales;

Devuelve "IdProducto", convierte los valores del campo "Cantidad" en formato de bytes y se muestran en la columna Expresión1 Devuelve "IdProducto", convierte los valores del campo "Cantidad" en formato moneda y se muestran en la columna Expr1.

SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales;

Devuelve "IdProducto", convierte los valores del campo "DateofSale" en formato Fecha y se muestra en la columna Expr1.

SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales;

Devuelve "IdProducto", convierte los valores del campo "Descuento" en formato Doble y se muestra en la columna Expr1.

SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales;

Devuelve "IdProducto", convierte los valores del campo "Descuento" en formato Entero y se muestra en la columna Expresión1.

SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales;

Devuelve "IdProducto", convierte los valores del campo "Descuento" en formato Largo y se muestra en la columna Expr1.

SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales;

Devuelve "IdProducto", convierte los valores del campo "Descuento" en formato Único y se muestra en la columna Expr1.

SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales;

Devuelve "IdProducto", convierte los valores del campo "Descuento" en formato Cadena y se muestra en la columna Expresión1.

SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales;

Devuelve "IdProducto", convierte los valores del campo "Descuento" en Doble para los valores numéricos y Cadena para los valores no numéricos.

Ejemplos de VBA

Nota: Los ejemplos siguientes muestran el uso de 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 Referencia de VBA de Access.

Función CBool

En este ejemplo se usa la función CBool para convertir una expresión en un valor booleano. Si la expresión se evalúa como un valor distinto de cero, CBool devuelve True; De lo contrario, devuelve Falso.

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 función CByte 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 función CCur para convertir una expresión en moneda.

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).

CDate (función)

En este ejemplo se usa la función FechaC para convertir una cadena en una fecha. 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 #12/2/1969# y #4:45:23 p.m.#, 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 función CDbl 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 función CDec 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 función CInt para convertir un valor en un entero.

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 función CLng 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 función CSng para convertir un valor en sencillo.

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 función CStr para convertir un valor numérico en una cadena.

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 función CVar 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.

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.