表达式:
表达式是许多 Microsoft Access 运算的基本组成部分。表达式是可以生成结果的运算符号和操作数的组合。例如,可以在窗体或报表的控件中使用下列表达式来显示“小计”和“运货费”控件的数值总和:= [小计] + [运货费]
常见的运算符如算术运算符“=”,“+”,“-”,“*”,“/”;比较运算符“>”,“<”,“>=”,“<=”,“<>”,“access常见条件表达式=”;逻辑运算符“and”,“or”,“not”;连接运算符“&”,“+”;及常用的!和.(点)运算符。
常见的操作数如字符串,日期/时间值,常量,变量,函数及引用窗体或报表中的字段值,控件值或属性等。
常见表达式示例:
数学及比较运算表达式
表达式是许多 Microsoft Access 运算的基本组成部分。表达式是可以生成结果的运算符号和操作数的组合。例如,可以在窗体或报表的控件中使用下列表达式来显示“小计”和“运货费”控件的数值总和:= [小计] + [运货费]
常见的运算符如算术运算符“=”,“+”,“-”,“*”,“/”;比较运算符“>”,“<”,“>=”,“<=”,“<>”,“access常见条件表达式=”;逻辑运算符“and”,“or”,“not”;连接运算符“&”,“+”;及常用的!和.(点)运算符。
常见的操作数如字符串,日期/时间值,常量,变量,函数及引用窗体或报表中的字段值,控件值或属性等。
常见表达式示例:
数学及比较运算表达式
表达式 | 说明 |
=[数量]*[价格] | 计算数量与价格的乘积,可以得出总价 |
=[到货日期]-[发货日期] | 计算两个日期之间的天数 |
>2500 | 比2500大的数 |
日期表达式
表达式 | 说明 |
Between #1997-01-01# And #1997-12-31# | 在1997-01-01各1997-12-31之间的数据 |
<#2007-12-30# | 2007-12-30以前的数据 |
<Date()-30 | 30天以前的数据 |
=(Date()-[出生日期])/365 | 计算年龄 |
Month([出生日期])=3 | 3月份出生的人 |
逻辑运算表达式
表达式 | 说明 |
“北京” or “上海” | 城市为北京或上海的数据 |
Is Not Null | 不为空 |
“性别”= “男” and “年龄”>30 | 大于30岁的 |
= “中国” & “北京” | 值为 “中国北京” |
通配符表达式
表达式 | 说明 |
Like “张*” | 以张开头的数据 |
Like “张?” | 以张开头后面还有一个字的数据 |
聚合函数表达式
表达式 | 说明 |
Sum([数量]*[价格]) | 求数量和价格相乘后的和 |
Avg(费用) | 求费用的平均值 |
Count(*) | 计算记录条数 |
Abs 函数
返回参数的绝对值,其类型和参数相同。
语法
Abs(number)
必要的 number 参数是任何有效的数值表达式,如果 number 包含 Null,则返回 Null,如果 number 是未初始化的变量,则返回 0。
说明
一个数的绝对值是将正负号去掉以后的值。例如,ABS(-1) 和 ABS(1) 都返回 1。
Array 函数
返回一个包含数组的 Variant。
语法
Array(arglist)
所需的 arglist 参数是一个用逗号隔开的值表,这些值用于给 Variant 所包含的数组的各元素
赋值。如果不提供参数,则创建一个长度为 0 的数组。
说明
用来表示数组元素的符号由变量名、圆括号以及括号中的所需元素的索引号组成。在下面的示例中,第一条语句创建一个 Variant 的变量 A。第二条语句将一个数组赋给变量 A。最后一条语句将该数组的第二个元素的值赋给另一个变量。
Dim A As Variant
A = Array(10,20,30)
B = A(2)
使用 Array 函数创建的数组的下界受 Option Base 语句指定的下界的决定, 除非 Array 是由类型库(例如 VBA.Array )名称限定。如果是由类型库名称限定,则 Array 不受 Option Base 的影响。
注意 没有作为数组声明的 Variant 也可以表示数组。除了长度固定的字符串以及用户定义类
型之外,Variant 变量可以表示任何类型的数组。尽管一个包含数组的 Variant 和一个元素为 Variant 类型的数组在概念上有所不同,但对数组元素的访问方式是相同的。
Asc 函数
返回一个 Integer,代表字符串中首字母的字符代码。
语法
Asc(string)
必要的 string 参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。
说明
在非 DBCS 系统下,返回值范围为 0 – 255 。在 DBCS 系统下,则为 -32768 – 32767。
注意 AscB 函数作用于包含在字符串中的字节数据,AscB 返回第一个字节的字符代码,而
非字符的字符代码。AscW 函数返回 Unicode 字符代码,若平台不支持 Unicode,则与 Asc 函数功能相同。
Atn 函数
返回一个 Double,指定一个数的反正切值。
语法
Atn(number)
必要的 number 参数是一个 Double或任何有效的数值表达式。
说明
Atn 函数的参数值 (number) 为直角三角形两边的比值并返回以弧度为单位的角。这个比值是角的对边长度除以角的邻边长度之商。
值的范围在 -pi/2 和 pi/2 弧度之间。
为了将角度转换为弧度,请将角度乘以 pi/180。为了将弧度转换为角度,请将弧度乘以 180/pi。
注意 Atn 是 Tan 的反三角函数,Tan 的参数值为角度,返回直角三角形的两条边的比值。不要将 Atn 和余切函数混淆,余切函数值是正切函数值的倒数,cotangent = (1/tangent)。
CallByName 函数
执行一个对象的方法,或者设置或返回一个对象的属性。
语法
CallByName(object, procname, calltype,[args()])
CallByName 函数的语法有以下命名参数:
部分 | 描述 |
object | 必需的;变体型(对象)。函数将要执行的对象的名称。 |
procname | 必需的;变体型(字符串)。一个包含该对象的属性名称或者方法名称的字符串表达式。 |
calltype | 必需的;常数。一个 vbCallType 类型的常数,代表正在被调用的过程的类型。 |
args() | 可选的:变体型(数组)。 |
说明
CallByName 函数用于获取或者设置一个属性,或者在运行时使用一个字符串名称来调用一个方法。
在下面的例子中,第一行使用 CallByName 来设置一个文本框的 MousePointer 属性,第二行得到 MousePointer 属性的值,第三行调用 Move 方法来移动文本框:
CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet)
CallByName Text1, "Move", vbMethod, 100, 100
类型转换函数
每个函数都可以强制将一个表达式转换成某种特定数据类型。
语法
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 子类型。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论