使用ado的方法,虽然取到了记录,可是 怎么 赋给数组却没有成功。我的这个例子,你在完善看看是否可以完成。
Option Compare Database
Option Base 1
Dim myarray() As String '定义动态数组
Sub try()
''使用ado打开和本地 "类别"表 的连接
Dim rst As New ADODB.Recordset
rst.Open "类别", CurrentProject.Connection, adOpenKeyset, adLockOptimistic '打开表
'-------------------------------------------------------------------------
Dim m As Integer
Dim i As Integer '使用i在数组中循环
m = DCount("[类别id]", "类别") '取得数组的最大下标值
ReDim myarray(m) As String '定义该数组可以使用的最大下标值
For i = 1 To m
While Not rst.EOF
myarray(i) = rst("类别名称").Value
Debug.Print myarray(i) '输出数组中的各个元素
rst.MoveNext
Wend
Next i
rst.Close
'验证数组是否被真正赋值
'If myarray(2) = "" Then MsgBox "myarray 这个数组并没有被赋值" + Chr(13) + "ado取得记录只是在内存中,没有交给数组"
Debug.Print myarray(4) & "----------"
Debug.Print myarray(5) & "----------"
Debug.Print myarray(6) & "----------"
Debug.Print myarray(7) & "----------"
End Sub
我想,如果是二维或者多维数组的话,您就需要表中的两列或者多列写入数组。
[此贴子已经被作者于2006-3-18 21:12:59编辑过]
|