sub之间的数据如何引用?
有两个SUB
sub sub1()
set rs=server.createobject("adodb.recordset")
sql="select * from aa "
rs.open sql,conn,1,1
if not (rs.bof and rs.eof) then
do while not rs.eof
select case left(rs("wf2"),4)
case "ds"
dszjjg()
case "zx3"
zx3zjjg()
end select
rs.movenext
loop
Rs.close
Set Rs = Nothing
Conn.close
Set conn = Nothing
end if
end sub
sub dszjjg()
tzhm=split(rs("tzhm"))
end sub
当满足条件运行到 sub dszjjg()时,系统提示:
Microsoft VBScript 运行时错误 错误 '800a000d'
类型不匹配: 'rs'
/wdwj/tet.asp,行 240
也就是说在 sub dszjjg()中无法取到 sub1() 中 数据库rs("tzhm")中字段的值,请问是怎么回事?子sub不能引用上级sub中的rs变量吗?
------解决方案--------------------sub内部变量是独立,你只能传值或定义为公共变量。
------解决方案--------------------不可以
'应该把值传入sub中
...
case "ds"
dszjjg(rs)
...
sub dszjjg(rs)
tzhm=split(rs("tzhm"))
end sub
------解决方案--------------------定义一个全局变量,在SUB1中赋值,在SUB2中就能使用了
------解决方案--------------------变量改为全局的,要不就修改sub过程,增加参数传递
dim rs''''''
sub sub1()
set rs=server.createobject("adodb.recordset")
sql="select * from aa "
rs.open sql,conn,1,1
if not (rs.bof and rs.eof) then
do while not rs.eof
select case left(rs("wf2"),4)
case "ds"
dszjjg()
case "zx3"
zx3zjjg()
end select
rs.movenext
loop
Rs.close
Set Rs = Nothing
Conn.close
Set conn = Nothing
end if
end sub
sub dszjjg()
tzhm=split(rs("tzhm"))
end sub