'以下是调出数据库 F:\SWDD.mdb 中 1952-1996 年每个月的数值,并打算用数组 ZptData 作为返回值 的子程序GetData(ZptData)Public Sub GetData(ZptData)
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strCnn As String
Dim SqlStr As String
Dim i, j, n As Integer
n = 0
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\SWDD.mdb;Persist Security Info=False"
Set cnn = New ADODB.Connection
For i = 1952 To 1996
' Zpt 是 F:\SWDD.mdb 中的一个表名。
SqlStr = "Select * from Zpt Where DataYear =" + Str(i)
cnn.Open strCnn
rs.Open SqlStr, cnn, adOpenForwardOnly, adLockReadOnly
For j = 1 To 12
n = n + 1
ZptData(n) = rs.Fields(j)
Next j
cnn.Close
Next i
End Sub这是主程序调用过程:Dim abd As SingleDim ZptData() As SingleReDim ZptData(1 To 540)
GetData (ZptData)但执行完 GetData (ZptData) 后,数组 ZptData 仍然全是零,即没有被赋值。这是怎么回事?正确的该怎么调用和返回?另外,假如我要把子程序 GetData 改成函数形式,即我想这样调用:ZptData=GetData(),返回值是一个数组,请问该怎么声明和调用?
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strCnn As String
Dim SqlStr As String
Dim i, j, n As Integer
n = 0
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\SWDD.mdb;Persist Security Info=False"
Set cnn = New ADODB.Connection
For i = 1952 To 1996
' Zpt 是 F:\SWDD.mdb 中的一个表名。
SqlStr = "Select * from Zpt Where DataYear =" + Str(i)
cnn.Open strCnn
rs.Open SqlStr, cnn, adOpenForwardOnly, adLockReadOnly
For j = 1 To 12
n = n + 1
ZptData(n) = rs.Fields(j)
Next j
cnn.Close
Next i
End Sub这是主程序调用过程:Dim abd As SingleDim ZptData() As SingleReDim ZptData(1 To 540)
GetData (ZptData)但执行完 GetData (ZptData) 后,数组 ZptData 仍然全是零,即没有被赋值。这是怎么回事?正确的该怎么调用和返回?另外,假如我要把子程序 GetData 改成函数形式,即我想这样调用:ZptData=GetData(),返回值是一个数组,请问该怎么声明和调用?
解决方案 »
- ListView1是什么控件?
- 有人知道winsock error #10053 “WSAECONNABORTED (10053) Software caused connection abort”? 这种错误原因的引起吗?谢谢
- 安装vs.net2005时弹出"安装程序未找到baseline数据"
- 修改ListView滚动条颜色的问题,高手指点啦!!!!
- 不知大家有没有遇到这样的问题?
- 过年了!散点分!顺便找个郑州的VB高手(在郑州过年的)请教一下!
- 窗体的问题
- 大家看看,为什么下面语句在读一条记录时有错
- 菜鸟问题,请知道的人帮忙看看!
- 图像处理
- "必须在今天下午之前完成"领导这么说,而我现在就卡住了.老大们救命呀!要多少分,开个价!
- 用户控件.........................................
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strCnn As String
Dim SqlStr As String
Dim i, j, n As Integer
n = 0
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\SWDD.mdb;Persist Security Info=False"
Set cnn = New ADODB.Connection
cnn.Open strCnn
For i = 1952 To 1996
' Zpt 是 F:\SWDD.mdb 中的一个表名。
SqlStr = "Select * from Zpt Where DataYear =" format(i) "
rs.Open SqlStr, cnn, adOpenForwardOnly, adLockReadOnly
For j = 1 To 12
n = n + 1
ZptData(n) = rs.Fields(j)
Next j
rs.Close
Next i
End Sub