access中数据类型转换函数
版权声明:本⽂为博主原创⽂章,未经博主允许不得转载。 blog.csdn/zisongjia/article/details/77239655
类型转换函数
每个函数都可以强制将⼀个表达式转换成某种特定数据类型。
decimal是整数数据类型语法
CBool(expression)
CByte(expression)
CCur(expression)
CDate(expression)
CDbl(expression)
CDec(expression)
CInt(expression)
CLng(expression)
CSng(expression)
CStr(expression)
CVar(expression)
CStr(expression)
必要的 expression 参数可以是任何字符串表达式或数值表达式。
返回类型
函数名称决定返回类型,如下所⽰:
函数返回类型 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 ⾄ -4.94065645841247E-324;正数从 4.94065645841247E-324 ⾄ 1.79769313486232E308。
CDec Decimal 零变⽐数值,即⽆⼩数位数值,为
+/-79,228,162,514,264,337,593,543,950,335。对于 28 位⼩数的数值,范围则为
+/-7.9228162514264337593543950335;最⼩的可能⾮零值是 0.0000000000000000000000000001。
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 依据 expression 参数返回 Cstr。
CVar Variant 若为数值,则范围与 Double 相同;若不为数值,则范围与 String 相同。
说明
如果传递给函数的 expression 超过转换⽬标数据类型的范围,将发⽣错误。
通常,在编码时可以使⽤数据类型转换函数,来体现某些操作的结果应该表⽰为特定的数据类型,⽽不是缺省的数据类型。例如,当单精度、双精度或整数运算
发⽣的情况下,使⽤ CCur 来强制执⾏货币运算。
应该使⽤数据类型转换函数来代替 Val,以使国际版的数据转换可以从⼀种数据类型转换为另⼀种。例如,当使⽤ Ccur 时,不同的⼩数点分隔符、千分位分隔符和各种货币选项,依据系统的区域设置都会被妥善识别。
当⼩数部分恰好为 0.5 时,Cint 和 CLng 函数会将它转换为最接近的偶数值。例如,0.5 转换为 0、1.5 转换为 2。Cint 和 CLng 函数不同于 Fix 和 Int 函
数,Fix 和 Int 函数会将⼩数部分截断⽽不是四舍五⼊。并且 Fix 和 Int 函数总是返回与传⼊的数据类型相同的值。
使⽤ IsDate 函数,可判断 date 是否可以被转换为⽇期或时间。Cdate 可⽤来识别⽇期⽂字和时间⽂字,以及落⼊可接受的⽇期范围内的数值。当转换⼀个数字成为⽇期时,是将整数部分转换为⽇期,⼩数部分转换为从午夜起算的时间。
CDate 依据系统上的区域设置来决定⽇期的格式。如果提供的格式为不可识别的⽇期设置,则不能正确判断年、⽉、⽇的顺序。另外,长⽇期格式,若包含有星期的字符串,也不能被识别。
CVDate 函数也提供对早期 Visual Basic 版本的兼容性。CVDate 函数的语法与 CDate 函数是完全相同的,不过,CVDate 是返回⼀个 Variant,它的⼦类型
是 Date,⽽不是实际的 Date 类型。因为现在已有真正的 Date 类型,所以 CVDate 也不再需要了。转换⼀个表达式成为 Date,再赋值给⼀个 Variant,也可以达到同样的效果。也可以使⽤这种技巧将其他真正的数据类型转换为对等的 Variant ⼦类型。
注意 CDec 函数不能返回独⽴的数据类型,⽽总是返回⼀个 Variant,它的值已经被转换为 Decimal ⼦类型。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。