【Access】数据类型转换
时 间:2015-09-29 12:24:02
作 者:杨雪 ID:42182 城市:南京
摘 要:Access各种数据类型间转换
正 文:
每个函数都可以将表达式 (表达式:算术或逻辑运算符、常数、函数和字段名称、控件和属性的任意组合,计算结果为单个值。表达式可执行计算、操作字符或测试数据。)强制转换为特定的数据类型 (数据类型:决定字段可拥有的数据类型的字段特征。数据类型包括 Boolean、Integer、Long、Currency、Single、Double、Date、String 和 Variant(默认)。)。
语法
CBool(expression)
CByte(expression)
CCur(expression)
CDate(expression)
CDbl(expression)
CDec(expression)
CInt(expression)
CLng(expression)
CSng(expression)
CStr(expression)
CVar(expression)
必选的 expression 参数 (参数:为操作、事件、方法、属性、函数或过程提供信息的值。)是任何字符串表达式 (字符串表达式:任一求值为一列连续字符的表达式。表达式的元素可以是:返回字符串或字符串 Variant (VarType 8) 的函数;字符串字面值、常量、变量或 Variant。)或数值表达式 (数值表达式:计算结果为数字的任何表达式。表达式可以是变量、常数、函数和运算符的任意组合。)。
返回类型
函数名称决定返回类型,如下所示:
函数 |
返回类型 |
expression 参数的范围 |
CBool |
Boolean |
任何有效的字符串或数值表达式。 |
CByte |
Byte |
0 到 255。 |
CCur |
Currency |
-922,337,203,685,477.5808 到 922,337,203,685,477.5807。 |
CDate |
Date |
任何有效的日期表达式。 |
CDbl |
Double |
对于负值,-1.79769313486231E308 到 |
CDec |
Decimal |
对于整数(即没有小数的数字),+/-79,228,162,514,264,337,593,543,950,335。对于具有 28 位小数的数字,值域范围是 |
CInt |
Integer |
-32,768 到 32,767;小数部分被四舍五入。 |
CLng |
Long |
-2,147,483,648 到 2,147,483,647;小数部分被四舍五入。 |
CSng |
Single |
对于负值,-3.402823E38 到 -1.401298E-45;对于正值,1.401298E-45 到 3.402823E38。 |
CStr |
String |
CStr 的返回值取决于 expression 参数。 |
CVar |
Variant
注解
如果传递给该函数的 expression 位于要转换为的目标数据类型的值域范围之外,则将发生错误。
通常,可以在代码中使用数据类型转换函数,以表明某个操作的结果应表示为特定数据类型而非默认的数据类型。例如,使用 CCur 在通常会出现单精度、双精度或整型运算的地方强制使用货币运算。
应该使用数据类型转换函数而不是 Val 来提供数据类型之间国际认可的转换。例如,当使用 CCur 时,不同的小数点、不同的千位分隔符以及各种货币选项都会根据计算机的区域设置正确识别。
当小数部分恰好为 0.5 时,CInt 和 CLng 始终都会将其舍入到最接近的偶数。例如,0.5 舍入到 0,而 1.5 舍入到 2。CInt 和 CLng 与 Fix 和 Int 函数不同,后者会将数字的小数部分截断,而不会对其进行舍入。另外,Fix 和 Int 会始终返回与传入类型相同类型的值。
可以使用 IsDate 函数确定 date 是否可以转换为日期或时间。CDate 可识别日期文本和时间文本,以及处于可接受的日期范围内的某些数字。将数字转换为日期时,整数部分将被转换为日期。数字的任何小数部分都将被转换为一天中的时间(从午夜 12 点开始计算)。
CDate 将根据系统的区域设置 (区域设置:对应于给定语言和国家/地区的一组信息。)识别日期格式。如果采用可识别的日期设置之外的其他格式提供日期值,则可能无法确定正确的年、日、月顺序。此外,如果长日期格式中还包含星期字符串,也不能识别此格式。
CVDate 函数也提供了与 Visual Basic 早期版本的兼容性。CVDate 函数的语法与 CDate 函数的语法相同;不过,CVDate 会返回一个 Variant 值(其子类型为 Date)而不是实际的 Date 类型。由于目前存在一个固有的 Date 类型,因此已不再需要 CVDate 了。可以将表达式转换为 Date,然后将其赋值给 Variant,从而达到相同的效果。此技术与所有其他固有类型到其对应的 Variant 子类型的转换一致。
注释 CDec 函数不会返回离散数据类型;相反,它会始终返回一个其值已转换为 Decimal 子类型的 Variant。
示例
注释 以下示例演示了此功能在 Visual Basic for Applications (VBA) 模块中的使用。有关使用 VBA 的详细信息,请在“搜索”旁边的下拉列表中选择“开发人员参考”,然后在搜索框中输入一个或多个词条。
CBool 函数
此示例使用 CBool 函数将表达式转换为 Boolean 值。如果表达式的求值结果是一个非零值,CBool 将返回 True;否则,它将返回 False。
Dim A, B, Check
A = 5: B = 5 ' 初始化变量。
Check = CBool(A = B) ' Check 包含 True。
A = 0 ' 定义变量。
Check = CBool(A) ' Check 包含 False。
CByte 函数
此示例使用 CByte 函数将表达式转换为 Byte 值。
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble 是 Double 数据类型值。
MyByte = CByte(MyDouble) ' MyByte 包含 126。
CCur 函数
此示例使用 CCur 函数将表达式转换为 Currency 值。
Dim MyDouble, MyCurr
MyDouble = 543.214588 ' MyDouble 是 Double 数据类型值。
MyCurr = CCur(MyDouble * 2)
' 将 MyDouble * 2 (1086.429176) 的结果转换为
' Currency 数据类型值 (1086.4292)。
CDate 函数
此示例使用 CDate 函数将字符串转换为 Date 值。通常,建议不将日期和时间硬编码为字符串(如本示例中所示)。请改用日期文本和时间文本,如 #2/12/1969# 和 #4:45:23 PM#。
Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "February 12, 1969"
' 转换为 Date 数据类型。
MyShortDate = CDate(MyDate)
MyTime = "4:35:47 PM"
' 转换为 Date 数据类型。
MyShortTime = CDate(MyTime)
CDbl 函数
此示例使用 CDbl 函数将表达式转换为双精度型值。
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' 将结果转换为 Double 数据类型。
MyDouble = CDbl(MyCurr * 8.2 * 0.01)
CDec 函数
此示例使用 CDec 函数将数值转换为 Decimal 值。
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr 是 Currency 数据类型值。
MyDecimal = CDec(MyCurr) ' MyDecimal 是 Decimal 数据类型值。
CInt 函数
此示例使用 CInt 函数将值转换为 Integer 值。
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble 是 Double 数据类型值。
MyInt = CInt(MyDouble) ' MyInt 包含 2346。
CLng 函数
此示例使用 CLng 函数将值转换为 Long 值。
Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45
MyVal2 = 25427.55 ' MyVal1、MyVal2 是 Double 数据类型值。
MyLong1 = CLng(MyVal1)
' MyLong1 包含 25427。
MyLong2 = CLng(MyVal2)
' MyLong2 包含 25428。
CSng 函数
此示例使用 CSng 函数将值转换为 Single 值。
Dim MyDouble1, MyDouble2, MySingle1, MySingle2
' MyDouble1、MyDouble2 是 Double 数据类型值。
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555
MySingle1 = CSng(MyDouble1)
' MySingle1 包含 75.34211。
MySingle2 = CSng(MyDouble2)
' MySingle2 包含 75.34216。
CStr 函数
此示例使用 CStr 函数将数值转换为 String 值。
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble 是 Double 数据类型值。
MyString = CStr(MyDouble)
' MyString 包含 "437.324"。
CVar 函数
此示例使用 CVar 函数将表达式转换为 Variant 值。
Dim MyInt, MyVar
MyInt = 4534 ' MyInt 是 Integer 数据类型值。
MyVar = CVar(MyInt & "000")
' MyVar c包含字符串 4534000。
|
对于数字,与双精度型的值域范围相同。对于非数字值,与 String 的值域范围相同。 |
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)
- Access快速开发平台--让有权...(11.04)
- Access快速开发平台--审批选...(11.01)
- ACCESS两张表先各自排序,然后...(10.31)
- Access对子窗体数据进行批量+...(10.30)
- SqlServer中如何用SQL命...(10.29)
- Access报表中的分组功能用代码...(10.28)
- 用Access计算库存结余的一个方...(10.26)
- 最精简的组合框行来源数据快速输入(...(10.25)