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 requerido expression es cualquier cadena o expresión numérica.
Tipos de valor devuelto
El nombre de la función determina el tipo de valor devuelto, tal como se muestra en la tabla siguiente:
| Función | Tipo de valor devuelto | Rango para expression argumento |
|---|---|---|
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 to -4.94065645841247E-324 para los valores negativos; 4.94065645841247E-324 to 1.79769313486232E308 para los valores positivos. |
CDec |
Decimal |
+/-79,228,162,514,264,337,593,543,950,335 para números escalados a cero, o números sin decimales. Para los números con 28 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 redondean. |
CLng |
Long |
-2,147,483,648 a 2,147,483,647; las fracciones se redondean. |
CSng |
Single |
-3.402823E38 to -1.401298E-45 para los valores negativos; 1.401298E-45 to 3.402823E38 para los valores positivos. |
CStr |
String |
El valor devuelto depende del expression argumento. |
CVar |
Variant |
Mismo rango que Double para los valores numéricos. El mismo rango que String para los valores no numéricos. |
Observaciones
Si lo expression que se pasa a la función está fuera del intervalo del tipo de datos al que se está convirtiendo, se produce un error.
En general, puede documentar el código mediante funciones de conversión de tipo 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, úselo 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 enteros.
Use las funciones de conversión de tipos de datos en lugar de Val proporcionar conversiones con reconocimiento de configuración regional de un tipo de datos a otro. Por ejemplo, cuando se usa CCur, Access reconoce separadores decimales, separadores de miles y opciones de moneda diferentes en función de la configuración regional del equipo.
Cuando la parte fraccionaria es exactamente 0.5, CInt y CLng redondearla siempre al número par más próximo. Por ejemplo, 0.5 Redondea a 0, y 1.5 se redondea a 2.
CInt y CLng difiere de las Fix funciones AND Int , que truncan la parte fraccionaria de un número en lugar de redondearla.
Fix y Int además devolver siempre un valor del mismo tipo que se pasa.
Use la IsDate función para determinar si date se puede convertir a una fecha u hora.
CDate Reconoce los literales de fecha y de hora, así como algunos números que se encuentran dentro del intervalo de fechas aceptables. Cuando convierte un número en una fecha, toda la parte numérica 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 del día, mes y año si proporciona un formato distinto de una de las configuraciones 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 por compatibilidad con versiones anteriores de Visual Basic. La sintaxis de CVDate es idéntica a la de la CDate función. Sin embargo, CVDate devuelve un Variant cuyo subtipo es Date en lugar de un tipo real Date . Dado que Access ahora incluye un tipo intrínseco Date , ya no necesita CVDate. Puede obtener el mismo efecto convirtiendo una expresión en a Date y, luego, asignándola a un Variant. Esta técnica es consistente 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 cuyo valor se ha convertido a un Decimal subtipo.
Ejemplos de consulta
| Expression | Resultados |
|---|---|
SELECT SalePrice, FinalPrice, CBool(SalePrice > FinalPrice) AS Expr1 FROM productSales; |
Devuelve SalePrice y FinalPricey 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 en Byte, y los muestra en la Expr1 columna. |
SELECT ProductID, CDate(DateofSale) AS Expr1 FROM productSales; |
Devuelve ProductID, convierte los valores del DateofSale campo en Date, y los muestra en la Expr1 columna. |
SELECT ProductID, CDbl(Discount) AS Expr1 FROM productSales; |
Devuelve ProductID, convierte los valores del Discount campo en Double, y los muestra en la Expr1 columna. |
SELECT ProductID, CInt(Discount) AS Expr1 FROM productSales; |
Devuelve ProductID, convierte los valores del Discount campo en Integer, y los muestra en la Expr1 columna. |
SELECT ProductID, CLng(Discount) AS Expr1 FROM productSales; |
Devuelve ProductID, convierte los valores del Discount campo en Long, y los muestra en la Expr1 columna. |
SELECT ProductID, CSng(Discount) AS Expr1 FROM productSales; |
Devuelve ProductID, convierte los valores del Discount campo en Single, y los muestra en la Expr1 columna. |
SELECT ProductID, CStr(Discount) AS Expr1 FROM productSales; |
Devuelve ProductID, convierte los valores del Discount campo en String, 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
Los ejemplos siguientes muestran 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 un Booleanarchivo . 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 CByte función para convertir una expresión en un Bytearchivo .
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 un Currencyarchivo .
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 CAT.CD
En este ejemplo se usa la CDate función para convertir una cadena en un Datearchivo . En general, no se recomienda codificar fechas y horas como cadenas, como se muestra en este ejemplo. Use literales de fecha y 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 un Doublearchivo .
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 un Decimalarchivo .
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.
Función CNT
En este ejemplo se usa la CInt función para convertir un valor en un Integerarchivo .
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.
Función CNg
En este ejemplo se usa la CLng función para convertir un valor en un Longarchivo .
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 un Singlearchivo .
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 un Stringarchivo .
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 un Variantarchivo .
Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.