设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1236|回复: 3
打印 上一主题 下一主题

[模块/函数] Else 和Elseif 的问题呢,不明白,请帮忙解决一下.

[复制链接]
跳转到指定楼层
1#
发表于 2008-8-19 11:01:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
If  条件1  Then
         strwhere = " "
      ElseIf  条件2 Then
               strwhere = "筛选1"      
      ElseIf  条件3 Then
                strwhere = "筛选2"
      Else
                strwhere = "筛选3"
      End If
      
      Me.子窗体.Form.FilterOn = True
      Me.子窗体.Form.Filter = strwhere
      Me.子窗体.Requery
    当条件是2,3时候,筛选是正确的,当执行了else以后,再回到条件1,筛选的结果居然还是else的结果"筛选3"

   我把语句改成下面
    If  条件1  Then
         strwhere = " "
      ElseIf  条件2 Then
               strwhere = "筛选1"      
      ElseIf  条件3 Then
                strwhere = "筛选2"
      Elseif  条件4  then
                strwhere = "筛选3"
      End If
      
      Me.子窗体.Form.FilterOn = True
      Me.子窗体.Form.Filter = strwhere
      Me.子窗体.Requery

这样结果就是正确的,为什么呢?想不明白
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2008-8-19 13:01:04 | 只看该作者
当执行了else以后,再回到条件1,筛选的结果居然还是else的结果"筛选3"?

应该是如果条件1满足了就不会再继续后面的elseif语句了,怎么会执行ELSE以后的语句再回到条件1呢?

使用调试断点或单步执行可以查看语句执行的顺序。

[ 本帖最后由 liwen 于 2008-8-19 13:02 编辑 ]
3#
 楼主| 发表于 2008-8-19 13:20:53 | 只看该作者
原帖由 liwen 于 2008-8-19 13:01 发表
当执行了else以后,再回到条件1,筛选的结果居然还是else的结果"筛选3"?

应该是如果条件1满足了就不会再继续后面的elseif语句了,怎么会执行ELSE以后的语句再回到条件1呢?

使用调试断点或单步执行可以查看语句 ...


版主可能是我述说有误.一开始如果选择条件1,子窗体显示全表,然后我选择了else条件,子窗体显示"筛选3"结果
.可当我再次选择条件1的时候,可是子窗体显示还是筛选3的结果,不是显示全表.
就这样把我搞晕了,把Else 改成elseif 就不会有这样的现象
4#
发表于 2008-8-19 15:34:05 | 只看该作者
没有实例调试,不知道是否真会这样,照道理应该不会出现你所说的这种情况。

但你可以自己使用断点调试,调试一下这几个语句的执行情况,以确定倒底可能是哪里有问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-16 16:54 , Processed in 0.098831 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表