用Eval方法计算数字文本或数值
时 间:2016-09-21 08:14:42
作 者:微软 ID:21115 城市:上海
摘 要:可以使用Eval函数可以计算结果为文本字符串或数值的表达式。
正 文:
语法
表达式.Eval(StringExpr)
表达式 一个代表 Application 对象的变量。
参数
名称 |
必需/可选 |
数据类型 |
说明 |
---|---|---|---|
StringExpr |
必需 |
String |
一个对字母数字文本字符串进行计算的表达式。例如,stringexpr 可以是一个返回字符串或数值的函数,或是对窗体上的控件的引用。stringexpr 参数的计算结果必须是字符串或数值,其计算结果不能为 Microsoft Access 对象。 |
返回值
Variant
注解
您可以构造一个字符串,然后将它传递给Eval函数,就好像该字符串就是实际的表达式一样。Eval函数将计算字符串表达式并返回其值。例如, Eval("1 + 1")返回 2。
如果传递给Eval函数一个包含函数名称字符串,则Eval函数返回函数的返回值。例如, Eval("Chr$(65)")返回"的 A"。
注释 |
---|
如果您的函数的名称传递给Eval函数,您必须在stringexpr参数中的函数名后用括号。例如: |
' ShowNames is user-defined function. Debug.Print Eval("ShowNames()")
Debug.Print Eval("StrComp(""Joe"",""joe"", 1)")
Debug.Print Eval("Date()")
您可以在窗体或报表,或在宏或模块中的计算控件中使用Eval函数。Eval函数将返回一个variant 类型的值是一个字符串或数值类型。
stringexpr参数必须是存储在一个字符串的表达式。如果传递给Eval函数的字符串不包含数值表达式或函数名称,但仅仅是一个简单的文本字符串,将发生运行时错误。例如, Eval("Smith")会导致错误。
可以使用Eval函数来确定存储在控件的Value属性的值。下面的示例将传递一个包含Eval函数对控件的完整引用的字符串。然后在对话框中显示该控件的当前值。
Dim ctl As Control Dim strCtl As String Set ctl = Forms!Employees!LastName strCtl = "Forms!Employees!LastName" MsgBox ("The current value of " & ctl.Name & " is " & Eval(strCtl))您不能使用 SQL 运算符之间...和或在直接在您的代码,但您可以使用它们中传递给Eval函数的表达式。
下面的示例确定订单窗体上的货主地区控件的值是否为一个几个指定的州缩写名称。如果该字段包含一个缩写词, intState将真(?1)。注意,您可以使用单引号 (') 将字符串包含在另一个字符串。
Dim intState As Integer intState = Eval("Forms!Orders!ShipRegion In " _ & "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")
示例
下面的示例假定您有一系列的 50 函数定义为 A1、 A2,等等。本示例使用Eval函数来调用该系列中的每个函数。
Sub CallSeries() Dim intI As Integer For intI = 1 To 50 Eval("A" & intI & "()") Next intI End Sub
下一个示例会触发 Click 事件好像用户已经单击窗体上的按钮。如果按钮的OnClick属性值开头表明,一个等号 (=),其 s 函数的名称,则Eval函数调用函数,相当于触发Click事件。如果值不以等号打头,那么它必须指定宏的名称。DoCmd对象的新方法将运行已命名的宏。
Dim ctl As Control Dim varTemp As Variant Set ctl = Forms!Contacts!HelpButton If (Left(ctl.OnClick, 1) = "=") Then varTemp = Eval(Mid(ctl.OnClick,2)) Else DoCmd.RunMacro ctl.OnClick End If
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.30)
- 如何让后台数据库在局域网共享时,且...(11.29)
- 【Access月初月末日期设置方法...(11.29)
- 【Access IIF函数嵌套示例...(11.26)
- Access快速开发平台--使用组...(11.25)
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)