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.