Cada función coacciona un expresión a un tipo de datos.
Sintaxis
CBool( expresión )
CByte( expresión )
CCur( expresión )
CDate( expresión )
CDbl( expresión )
CDec( expresión )
CInt( expresión )
CLng( expresión )
CSng( expresión )
CStr( expresión )
CVar( expresión )
La expresión argumento es cualquier expresión de cadena o expresión numérica.
Tipos de devolución
El nombre de la función determina el tipo de valor devuelto tal y como se muestra a continuación:
Función |
Tipo de devolución |
Argumento Rango para expresión |
CBool |
Boolean |
Cualquier cadena o expresión numérica válida. |
CByte |
Byte |
De 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 |
CDec |
Decimal |
+/-79.228.162.514.264.337.593.543.950.335 para números a escala cero, es decir, números sin posiciones decimales. Para números con 28 posiciones decimales, el rango es |
CInt |
Entero |
-32.768 a 32.767; las fracciones se redondea. |
CLng |
Largo |
-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 a 3,402823E38 para valores positivos. |
CStr |
String |
Los retornos de CStr dependen del argumento de expresión. |
CVar |
Variant |
Double para los valores numéricos. Mismo intervalo que String para los valores no numéricos. |
Observaciones
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 tipos de datos para mostrar que el resultado de algunas operaciones 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 aritmética de precisión simple, doble precisión o entero.
Debe usar las funciones de conversión de tipo de datos en lugar de Val para proporcionar conversiones internacionales de un tipo de datos a otro. Por ejemplo, al usar CCur,los separadores decimales diferentes, los distintos separadores de miles y las distintas opciones de moneda se reconocen correctamente en función de la configuración regional del equipo.
Cuando la parte fraccional es exactamente 0,5, CInt y CLng siempre redondearla al número par más próximo. Por ejemplo, 0,5 redondear a 0 y 1,5 redondear a 2. CInt y CLng difieren de las funciones Fix e Int, que truncan, en lugar de redondear, la parte fraccional de un número. Además, Fix e Int siempre devuelven un valor del mismo tipo que se pasa.
Use la función IsDate 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 rango de fechas aceptables. Al convertir un número en una fecha, toda la parte del número se convierte en una fecha. Cualquier parte fraccional del número se convierte en una hora del día, a partir de la medianoche.
CDate reconoce los formatos de fecha según la configuración regional configuración del sistema. Es posible que no se determine el orden correcto del día, el mes y el año si se proporciona en un formato distinto de una de las opciones de fecha reconocidas. Además, no se reconoce un formato de fecha larga si también contiene la cadena día de la semana.
También se proporciona una función CVDate para la compatibilidad con versiones anteriores de Visual Basic. La sintaxis de la función CVDate es idéntica a la función CDate, pero CVDate devuelve un tipo Variant cuyo subtipo es Fecha en lugar de un tipo de fecha real. Puesto que ahora hay un tipo de fecha intrínseco, no hay necesidad de CVDate. El mismo efecto se puede lograr al convertir una expresión en una fecha y, a continuación, asignarla a una 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 variant cuyo valor se ha convertido en un subtipo Decimal.
Ejemplos de consulta
Expresión |
Resultados |
SELECT SalePrice,FinalPrice,CBool(SalePrice>FinalPrice) AS Expr1 FROM productSales; |
Devuelve "SalePrice", "FinalPrice" y evalúa si SalePrice es mayor que Precio final. Devuelve "-1" si es verdadero y "0" si es falso. |
SELECT ProductID, CByte(Quantity) AS Expr1 FROM productSales; |
Devuelve "ProductID", convierte los valores del campo "Cantidad" en formato bytes y se muestra en la columna Expr1 Devuelve "ProductID", convierte los valores del campo "Cantidad" en formato moneda y se muestra en la columna Expr1. |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Devuelve "ProductID", 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 "ProductID", 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 "ProductID", convierte los valores del campo "Descuento" en formato Entero y se muestra en la columna Expr1. |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Devuelve "ProductID", 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 "ProductID", 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 "ProductID", convierte los valores del campo "Descuento" en formato String y se muestra en la columna Expr1. |
SELECT ProductID, CVar(Discount) AS Expr1 FROM productSales; |
Devuelve "ProductID", convierte los valores del campo "Descuento" en Double para valores numéricos y String para valores no numéricos. |
Ejemplos de VBA
Nota: Los ejemplos siguientes muestran el uso de esta función en un módulo Visual Basic para Aplicaciones (VBA). Para obtener más información sobre cómo trabajar con VBA, seleccione Referencia para desarrolladores en la lista desplegable junto a Buscar y escriba uno o más términos en el cuadro de búsqueda.
Función CBool
Sugerencia: El Generador de expresiones con IntelliSense a partir de Access 2010 ayuda a hacer las expresiones correctas.
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 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 función CByte para convertir una expresión enbyte.
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 una 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).
Función CDate
En este ejemplo se usa la función CDate para convertir una cadena en una fecha. En general, no se recomienda codificar 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 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 doble.
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 un valor 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 un 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 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.