首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB偏门技术:CallByName 施行字符串在模块中无法成功!

2013-01-06 
VB偏门技术:CallByName 执行字符串在模块中无法成功!!!这几天因工作需要,程序要执行字段中的字符串,此字符

VB偏门技术:CallByName 执行字符串在模块中无法成功!!!
这几天因工作需要,程序要执行字段中的字符串,此字符串在程序中有对应的涵数

Function ReturnThis()
 ReturnThis =123
End Function


runcode=rs("runcode") 得到的就是"ReturnThis" 

经测试,在窗体中使用就可以

Request = CallByName(Me, runcode, VbMethod) 


但如果这些代码是在类块里进行的,就不行了。Me它无法代表Module1,

Request = CallByName(XXXXX, runcode, VbMethod) 

工程为ActiveX DLL 没有窗体,Module1我试了不行,XXXX处要用什么代替当前对像,Me? this? app? vba? 谢谢了。


[解决办法]

'能不能考虑先把你要执行的函数写到一个固定的类里?
Class TestClass
    function ReturnThis() as integer
        return 123
    end function
end class

'然后使用时先实例化你的类
public sub test(byval runcode as string)
    dim oCls as new TestClass()
    dim request as object
    request = CallByName(oCls, runcode, VbGet)
end sub


不知道这样行不?

[解决办法]
以前好像遇到过这个问题, Callbyname必须在窗体或类模块中使用.
[解决办法]
窗体本身也是类,模块里不能用这个,
可以模块改成类,定义全局类对象

热点排行