設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

12下一頁
返回列表 發(fā)新帖
查看: 4148|回復: 11
打印 上一主題 下一主題

[窗體] 求助!關(guān)于用CALL 調(diào)用帶變量的過程名稱

[復制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 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 調(diào)用 Command1_Click()  及 Command2_Click() 事件過程
把其中 Command1_Click() 中的“1” 設(shè)置為變量
如下調(diào)用,會出錯

call "Command" & cc & "_Click"


End Sub


運行出錯??
求助大俠們幫助一下,謝謝了。。。。。。。。。!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱
2#
發(fā)表于 2011-11-9 17:29:44 | 只看該作者
不知道,你紅色部分的代碼 要實現(xiàn)什么?
3#
發(fā)表于 2011-11-9 23:54:29 | 只看該作者
不能這樣寫滴……要用onclick事件來處理……
4#
 樓主| 發(fā)表于 2011-11-10 08:16:21 | 只看該作者
roych 版主您好!能講解一下   用onclick事件來處理  詳細調(diào)用過程嗎?
謝謝了先。。。。!

點擊這里給我發(fā)消息

5#
發(fā)表于 2011-11-11 09:03:15 | 只看該作者
call "Command1_Click" 和 call Command1_Click 是完全不同的,call 后面必須是過程名,不是過程名稱字符串,
Eval 函數(shù)可以調(diào)用過程名稱字符串,但只能調(diào)用通用模塊中的公共過程,具體看幫助。

1樓的問題也可以這樣:
if cc=1 then
call Command1_Click
elseif cc=2 then
call Command2_Click
...
end if


6#
發(fā)表于 2011-11-11 09:34:52 | 只看該作者
本帖最后由 wu8313 于 2011-11-11 09:35 編輯
t小寶 發(fā)表于 2011-11-11 09:03
call "Command1_Click" 和 call Command1_Click 是完全不同的,call 后面必須是過程名,不是過程名稱字符串 ...


看到了 t小寶 在回帖中提到的這個函數(shù) EVAL ,很受益。原來也不知道有這個函數(shù)。

選取了 EVAL 這個函數(shù)的一段幫助,感覺有意義,放在這里。

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

使用 Eval 函數(shù)可以訪問在 Visual Basic 中通常不能使用的表達式運算符。例如,不能在代碼中直接使用 SQL 運算符 Between...And 或 In,但是在傳給 Eval 函數(shù)的表達式中可以使用它們。下面的示例用于確定“訂單”窗體上的“貨主地區(qū)”控件的值是否為幾個特定的州縮寫名稱中的一個。如果字段中包含了其中一個縮寫名稱, intState 的值將為 True(-1)。請注意,在示例中使用了單引號 (') 以在字符串中包含另一個字符串。

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

試試以下函數(shù),不知道行不行:

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

請參見《權(quán)限麻雀》一文中對事件的處理方法,其CallByName的用法在標準模塊中。

點評

OnClick是屬性,不是方法(vbMethod)  發(fā)表于 2011-11-14 08:45
8#
發(fā)表于 2011-11-11 15:57:43 | 只看該作者
8樓的也不行,六樓的可以嚴重參考:
把所有過程都改成function
然后 select case 變量的值,進行調(diào)用不同的funtion
9#
發(fā)表于 2011-11-11 16:10:52 | 只看該作者
本窗體調(diào)用,也可以這樣:
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#
發(fā)表于 2011-11-13 10:41:45 | 只看該作者
wu8313 發(fā)表于 2011-11-11 09:34
看到了 t小寶 在回帖中提到的這個函數(shù) EVAL ,很受益。原來也不知道有這個函數(shù)。

選取了 EVAL 這個函 ...

這個函數(shù),早在幾年前學Excel時就用過了。不過,不管在Excel還是Access里,這個函數(shù)用得都算比較少的,所以也不過度關(guān)注。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2025-7-17 00:49 , Processed in 0.130831 second(s), 37 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表