可以构造一个字符串然后把它传递给 Eval 函数,就像字符串是一个真正的表达式一样。Eval 函数将计算字符串表达式 并返回其值。例如,
Eval("1 + 1") 返回 2。
如果传递给 Eval 函数的字符串包含一个函数的名称,则 Eval 函数会返回函数的值。例如,
Eval("Chr$(65)") 返回“A”。
可以使用 Eval 函数访问那些通常在 Visual Basic 中不可用的表达式运算符。例如,不能在代码中直接使用 SQL 运算符 Between...And 或 In,但是可以在传递给 Eval 函数的表达式中使用它们。
下一个示例用于确定“frmOpen”窗体上“国家”控件的值是‘中国’。如果字段值是‘中国’,则 intState 的值为 True (–1)。请注意,使用单引号 (') 将字符串包含在另一个字符串中。
Private Sub 国家_Change()
Dim intState As Integer
intState = Eval("Forms!frmOpen!国家 not In ('中国')")
Me.Check65 = intState
End Sub
用in 类似写法:
此示例用于确定“订单”窗体上“货主地区”控件的值是否为几个特定的州缩写名称中的一个。如果字段中包含其中一个缩写名称,则intState的值为 True (–1)。请注意,使用单引号 (') 将字符串包含在另一个字符串中。
Dim intState As Integer
intState = Eval("Forms!Orders!ShipRegion In " _
& "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")
注意:如果传递给 Eval 函数的字符串不包含数值表达式或函数名称,而仅包含一个简单的文本字符串,则会出现运行时错误 。例如,Eval("Smith") 就会产生错误。