Office中国论坛/Access中国论坛

标题: 实现在VBA代码中使用In运算符 [打印本页]

作者: 红尘如烟    时间: 2009-4-29 02:35
标题: 实现在VBA代码中使用In运算符
在查询中我们可以使用In运算符来构造表达式,如
WHERE [字段1] In (1,2,3,4)
但是在VBA代码中却没有办法像这样用
表达式结果=变量A In (1,2,3,4)
其实直接这样用是不行,但并不是说就完全不能,我们可以通过EVal函数来变通实现
表达式结果=EVal(变量A & "In(1,2,3,4)")
作者: asklove    时间: 2009-4-29 08:23
学习
作者: dfs4344    时间: 2009-4-29 12:50
很好,学习了。
作者: Henry D. Sy    时间: 2009-4-29 13:15
谢谢分享
作者: todaynew    时间: 2009-4-29 15:15
用此方法,Between  and也可行。
作者: fcghw    时间: 2010-11-4 00:20
太好了,我的偶像---红尘如烟
作者: li08hua    时间: 2010-11-4 01:16
谢谢分享!
作者: michael100    时间: 2010-11-4 11:03
学习
作者: zhu320211    时间: 2012-6-4 17:57
这个版主能做个示例吗?
作者: layaman_999    时间: 2012-6-4 18:49
示例:
Eval ("3 in (1,2,3) ") 返回 true
Eval ("4 in (1,2,3)") 返回 false
============
dim I
I=(表达式)
if Eval ( i & " in (1,2,3)") then
  msgbox "i是1,2,3中的其中一个数"
else
  msgbox "i不是1,2,3中的其中一个数"
end if

作者: ljp518    时间: 2012-6-5 09:41
{:soso_e163:}
作者: zhu320211    时间: 2012-6-6 18:54
layaman_999 发表于 2012-6-4 18:49
示例:
Eval ("3 in (1,2,3) ") 返回 true
Eval ("4 in (1,2,3)") 返回 false

大侠,这个可以是文字吗?试了一下,怎么换成文字就不行了
作者: layaman_999    时间: 2012-6-6 21:47
zhu320211 发表于 2012-6-6 18:54
大侠,这个可以是文字吗?试了一下,怎么换成文字就不行了

字符串:
Eval ("'A' in ('A','B','C') ") 返回 true
Eval ("'D' in ('A','B','C') ") 返回 false
注意加''
^_^
作者: zhu320211    时间: 2012-6-7 10:26
还是不行啊,如果用变量要加引号吗
作者: zhu320211    时间: 2012-6-8 17:24
layaman_999 发表于 2012-6-4 18:49
示例:
Eval ("3 in (1,2,3) ") 返回 true
Eval ("4 in (1,2,3)") 返回 false

大侠,in后面可以是集合的名称吗,集合的名称可以使用变量,如果可以怎样写  
作者: layaman_999    时间: 2012-6-8 19:01
Eval 只是给出一个新方法
建议要循环对象请用:
For Each element In group
=====
vba中没有in逻辑符合
多看看循环语句来判断,你会有收获的:
Do...Loop
For...Next






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3