怎样根据条件来定义变量?
我想根据条件来定义变量
如 if i=1 then
dim a as integer
elseif i=2 then
dim a as string
elseif i=3 then
dim a as single
.....
但是定义的 这个 a 的作用范围要在整个窗体或所有窗体中有效,而不是在某个过程中有效,我试着在模块中定义成 public 但是public 只能在声明中使用。
请问怎么样才能实现?请指教
问题点数:10、回复次数:11Top
1 楼zhuixing(ABC)回复于 2003-08-04 09:58:26 得分 0
upTop
2 楼zhuixing(ABC)回复于 2003-08-04 11:33:08 得分 0
是不是不能实现啊??请各位帮忙指点一下Top
3 楼gpo2002(永吹不休)回复于 2003-08-04 11:52:08 得分 1
不可能
Top
4 楼tccth4091(半个岛)回复于 2003-08-04 11:53:35 得分 1
你先定义一个变量,然后根据情况强行转换不就可以了吗Top
5 楼penglc(猎者)回复于 2003-08-04 12:11:03 得分 1
这样, Dim a As Variant 行了~~Top
6 楼zhuixing(ABC)回复于 2003-08-04 12:35:54 得分 0
to penglc :我的意思不是这样的了,我不能用variant ,我是在水晶报表中
if i>0 then
dim a as CrystalReport1
else
dim a as CrystalReport2
....
CrystalReport1 是不支持variant 的
to tccth4091 : 所以强行转换也不可能了
难道真的不可能?
Top
7 楼handwolf(青松崖)回复于 2003-08-04 12:38:16 得分 1
运行时限制!楼上的说得对!支持!Top
8 楼Greaitm(夜草)回复于 2003-08-04 15:28:09 得分 0
不可能!vb中变量声明跟条件是扯不上的:不信你试试:
sub ab()
dim a as boolean
a=true
if not a then
dim b as long
end if
b=11
debug.print b
end sub
以上代码是成立的!Top
9 楼Greaitm(夜草)回复于 2003-08-04 15:29:33 得分 0
你用dim a as obj 试试呢?Top
10 楼Greaitm(夜草)回复于 2003-08-04 15:30:52 得分 6
抱歉 是 Dim a As ObjectTop
11 楼zhuixing(ABC)回复于 2003-08-04 15:48:50 得分 0
to Greaitm:问题是你的作用范围只是本过程,而我要的是整个窗体的所有过程
Top
12 楼zhuixing(ABC)回复于 2003-08-04 16:09:51 得分 0
哈哈,解决了,受 Greaitm(夜草) 的启发,我在窗体的声明部分声明为object ,所以它的作用范围是整个窗体,然后再form_load 里 根据条件设置obj 的类型就可以了
dim a as object
Private Sub Form_Load()
if i>0 then
Set a= New CrystalReport1
else
Set a= New CrystalReport2
....
endif
End Sub
但是像定义不同的类型,作用范围是整个窗体的所有过程,这样的方法大家就自己想办法吧,也许大家说的对,没办法,总之,谢谢大家了
如 if i=1 then
dim a as integer
elseif i=2 then
dim a as string
elseif i=3 then
dim a as single
.....
Top




