设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 3927|回复: 11
打印 上一主题 下一主题

[窗体] 求助!关于用CALL 调用带变量的过程名称

[复制链接]
跳转到指定楼层
1#
发表于 2011-11-9 14:04:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 坡芽歌书 于 2011-11-10 08:14 编辑

如题:
如下:

Private  cc  as Integer

Private Sub Command1_Click()
cc = 1
msgbox "你是按的  Command1"
End Sub

Private Sub Command2_Click()
cc= 2
msgbox "你是按的  Command2"

End Sub

Private Sub Com_Click()

’想用CALL 调用 Command1_Click()  及 Command2_Click() 事件过程
把其中 Command1_Click() 中的“1” 设置为变量
如下调用,会出错

call "Command" & cc & "_Click"


End Sub


运行出错??
求助大侠们帮助一下,谢谢了!!!!!!!!!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-11-9 17:29:44 | 只看该作者
不知道,你红色部分的代码 要实现什么?
3#
发表于 2011-11-9 23:54:29 | 只看该作者
不能这样写滴……要用onclick事件来处理……
4#
 楼主| 发表于 2011-11-10 08:16:21 | 只看该作者
roych 版主您好!能讲解一下   用onclick事件来处理  详细调用过程吗?
谢谢了先!!!!!!

点击这里给我发消息

5#
发表于 2011-11-11 09:03:15 | 只看该作者
call "Command1_Click" 和 call Command1_Click 是完全不同的,call 后面必须是过程名,不是过程名称字符串,
Eval 函数可以调用过程名称字符串,但只能调用通用模块中的公共过程,具体看帮助。

1楼的问题也可以这样:
if cc=1 then
call Command1_Click
elseif cc=2 then
call Command2_Click
...
end if


6#
发表于 2011-11-11 09:34:52 | 只看该作者
本帖最后由 wu8313 于 2011-11-11 09:35 编辑
t小宝 发表于 2011-11-11 09:03
call "Command1_Click" 和 call Command1_Click 是完全不同的,call 后面必须是过程名,不是过程名称字符串 ...


看到了 t小宝 在回帖中提到的这个函数 EVAL ,很受益。原来也不知道有这个函数。

选取了 EVAL 这个函数的一段帮助,感觉有意义,放在这里。

=========================================

使用 Eval 函数可以访问在 Visual Basic 中通常不能使用的表达式运算符。例如,不能在代码中直接使用 SQL 运算符 Between...And 或 In,但是在传给 Eval 函数的表达式中可以使用它们。下面的示例用于确定“订单”窗体上的“货主地区”控件的值是否为几个特定的州缩写名称中的一个。如果字段中包含了其中一个缩写名称, intState 的值将为 True(-1)。请注意,在示例中使用了单引号 (') 以在字符串中包含另一个字符串。

Dim intState As Integer
intState = Eval("Forms!Orders!ShipRegion In " _
    & "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")
7#
发表于 2011-11-11 10:58:11 | 只看该作者
本帖最后由 todaynew 于 2011-11-11 11:07 编辑

试试以下函数,不知道行不行:

function Callcmd(num as long)
     CallByName me.form.controls("Command" & num),"OnClick",vbMethod,"[Event Procedure]"
end function

请参见《权限麻雀》一文中对事件的处理方法,其CallByName的用法在标准模块中。

点评

OnClick是属性,不是方法(vbMethod)  发表于 2011-11-14 08:45
8#
发表于 2011-11-11 15:57:43 | 只看该作者
8楼的也不行,六楼的可以严重参考:
把所有过程都改成function
然后 select case 变量的值,进行调用不同的funtion
9#
发表于 2011-11-11 16:10:52 | 只看该作者
本窗体调用,也可以这样:
Private Sub Command0_Click()
  Dim a
  a = InputBox("")
  Select Case "Command" & a & "_Click()"
  Case "Command2_Click()"
    Call Command2_Click
  Case "Command1_Click()"
    Call Command1_Click
  End Select

End Sub
10#
发表于 2011-11-13 10:41:45 | 只看该作者
wu8313 发表于 2011-11-11 09:34
看到了 t小宝 在回帖中提到的这个函数 EVAL ,很受益。原来也不知道有这个函数。

选取了 EVAL 这个函 ...

这个函数,早在几年前学Excel时就用过了。不过,不管在Excel还是Access里,这个函数用得都算比较少的,所以也不过度关注。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 06:32 , Processed in 0.105407 second(s), 37 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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