设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[宏/菜单/工具栏] 调用过程时,exit语句出错如何解决?

[复制链接]
跳转到指定楼层
1#
发表于 2010-4-11 21:29:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在调用过程时(尤其是宏调用),该过程中有多个条件判断式,当变量不满足条件时退出却出错。比如:
(假设BL为某一变量,以下只是例子)
Function abc
  select case BL
           case 0
           exit function
           case 101
           exit function
   end select
end function
........'(这里接着还有其他代码)

'当在宏或其他过程中调用上面这个过程时,发觉出错在exit function
'如果在exit function前加一名代码:exit_abc:,如下:
Function abc
  select case BL
           case 0
exit_abc:
           exit function
           case 101
exit_abc:
           exit function
   end select
end function
........'(这里接着还有其他代码)
则提示重复声明,如果只有一个exit_abc:和一个exit function就没问题,请问在调用过程中,如果被调用过程有多个不满足条件就退出这样功能的情况下,如何解决这种问题?谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2010-4-12 19:22:28 | 只看该作者
else case
3#
 楼主| 发表于 2010-4-13 15:35:38 | 只看该作者
case else吧。就是不想有else啊,怕层次太多,而且逻辑关系搞得太复杂,尤其在 if 语句中。
4#
发表于 2010-4-13 19:46:28 | 只看该作者
Function abc()
  select case BL
           case 0
                 .......
                 exit function
           case 101
                 ......
                 exit function
   end select
end function

和以下函数是等价的:
Function abc
  select case BL
           case 0
                 .......
           case 101
                 ......
   end select
end function
5#
 楼主| 发表于 2010-4-14 15:55:04 | 只看该作者
谢谢各位。
其实我的例子不恰当,todaynew说的对,一般情况下要写的代码各个case 后的变量都是唯一满足的,也就是说如果变量满足了case 1,一般不会再满足case 2。但是我的问题是在过程调用时,exit语句会出错的问题.....
暂且不说select case了,就说下面这样的过程,如何不满足任意一个条件下就退出过程,且这个过程是可以被调用,尤其是宏调用。
Function abc
    if 变量1<>变量2 then     '条件语句(1)
       exit function
    end if
   if 变量3<>变量4 then   '条件语句(2)
      exit function
   end if
   if dir("......")="" then           '条件语句(3)
      exit function
   end if
   ......其他很多代码            '这里还要有很多满足主要功能的代码
  .......
end function
这样的函数或过程被调用时,尤其是做成宏被调用时,会在exit function处出错。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-18 00:21 , Processed in 0.082389 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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