用vb连access进行多条件查询

比如有10个check,但是我不确定我要勾选哪些,只能确定至少有一个,至多10个都选,我想如果用if来遍历的话至少要2^10显然是不可能的,所以想请教下有没有简便方法... 比如有10个check,但是我不确定我要勾选哪些,只能确定至少有一个,至多10个都选,我想如果用if来遍历的话至少要2^10显然是不可能的,所以想请教下有没有简便方法 展开
 我来答
damyzl
2011-07-08 · TA获得超过1586个赞
知道大有可为答主
回答量:1475
采纳率:74%
帮助的人:904万
展开全部
这个基本上没什么简便的方法。用checkbox来设置多个查询条件因为是相对独立且没什么规律,所以无法用循环之类的简便方法处理。控件数组的方法最多也就是代码看起来少了几行,其实逻辑并没改变。不要一味追求代码行的最精简,而要注意实际执行代码的最少。
其实用if判断也没多少语句,用独立的if语句分别处理每个check也就10*2,而不是2^10次。形式如1楼,先写好前面部分,并加个"where 1=1",然后根据check的选择添加条件:
if checkbox1.value=vbchecked then sSQL=sSQL & " and field1=fieldvalue1"
吉利吴
2011-07-08 · TA获得超过220个赞
知道小有建树答主
回答量:415
采纳率:0%
帮助的人:215万
展开全部
我的建议是,你在放check控件的时候,直接做成控件数组,这样你遍历就容易了
比如check1(0),check1(1),check1(2)...................
这样你随便用循环就简单的很了,不需要你写10个if
可以试试
控件数组做法,你先放一个check在窗口上,选中它,然后复制(CTRL+C),然后选中粘贴(CTRL+V),提示你是不是建立控件数组,你选yes就ok了,然后拷贝若干,直至满足你要的数量。
请参看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尚子素
2011-07-08 · TA获得超过600个赞
知道小有建树答主
回答量:566
采纳率:33%
帮助的人:201万
展开全部
你将每个checkbox当成独立的,判断10个就可以
然后根据这个checkbox值来生成sql语句
比如:
dim sSQL as string
sSQL="select * from table1 where 1=1 " 'where 1=1虽然没有意义,但是后边添加条件只要都在前边加and就可以,不用判断第一个条件前是where
if checkbox1.value=true then ‘我忘记checkbox判断选中是不是这样,如果不会你更正下
sSQL=sSQL & “ and ” & 选中对应的选件
else
sSQL=sSQL & “ and ” & 未选中对应的选件

end if

其他依次类推。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小李无刀
2017-11-11 · TA获得超过6359个赞
知道大有可为答主
回答量:8829
采纳率:78%
帮助的人:5018万
展开全部
写if是肯定的,这种要使用动态的拼接sql语句,如果不想写10个if,就必须要做check的控件数组,用循环来遍历:
sql="select * from 表名 where 1=1 "
for i=1 to 10
if check(i).checked then sql=sql & " and 对应字段" & i & "=1"
next
'执行SQL查询
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
花谢花心亦香6972
2011-07-08 · TA获得超过7万个赞
知道大有可为答主
回答量:3.9万
采纳率:0%
帮助的人:2754万
展开全部
也在关注这个问题,谢谢1楼的分享!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式