尝试将记录集结果保存到数组vba中
上面的代码成功地将数据返回到记录集中,但当尝试保存到数组中时,会抛出错误。。有人能说出哪里出了问题吗尝试将记录集结果保存到数组vba中,vba,Vba,上面的代码成功地将数据返回到记录集中,但当尝试保存到数组中时,会抛出错误。。有人能说出哪里出了问题吗 谢谢你的时间 错误是因为您只选择了1列。因此,您的记录集只包含1列。您必须根据代码选择5列 要使代码正常工作,必须在查询中选择5列。否则,如果您只需再添加一列,则它将在str(1)=rs(2) 如果要将所有记录从记录集打印到str数组,则必须循环遍历记录集。我还建议不要使用固定大小的数组。因此,将代码从Dim str(5)更改为Dim str() 现在循环记录集 Sub TEST() Dim
谢谢你的时间 错误是因为您只选择了1列。因此,您的记录集只包含1列。您必须根据代码选择5列 要使代码正常工作,必须在查询中选择5列。否则,如果您只需再添加一列,则它将在
str(1)=rs(2)
如果要将所有记录从记录集打印到str数组,则必须循环遍历记录集。我还建议不要使用固定大小的数组。因此,将代码从Dim str(5)
更改为Dim str()
现在循环记录集
Sub TEST()
Dim str(5)
Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset
If cnn.State = adStateOpen Then cnn.Close
cnn.ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & _
ActiveWorkbook.Path & Application.PathSeparator & ActiveWorkbook.Name
cnn.Open
If rs.State = adStateOpen Then rs.Close
rs.CursorLocation = adUseClient
strSQL = "SELECT DISTINCT ProductSubcategoryKey FROM [INSERT$] ORDER BY ProductSubcategoryKey DESC"
rs.Open strSQL, cnn, adOpenKeyset, adLockOptimistic
'results are
'45
'40
'30
'34
'32
str(0) = rs(0)
str(1) = rs(1) 'Error occurs here
str(1) = rs(2)
str(2) = rs(3)
str(3) = rs(4)
Debug.Print str(0)
Debug.Print str(1)
Debug.Print str(2)
Debug.Print str(3)
Debug.Print str(4)
End Sub
实际上,我试图实现的是..从ProductSubCategory列中获取5个不同的值。。你能在这方面帮助我吗?但这不会工作,因为它只是一列被feteched。是否要将这些值分配给str数组?然后应该在记录集中循环?你们知道怎么做吗?首先告诉我为什么你们有像str(5)这样的5的数组?如果查询返回的记录超过5条,会发生什么情况?在您的情况下,如果查询返回的记录超过5条,那么您将只打印str数组中的5条记录str(0)、str(1)、str(2)、str(3)、str(4)contains=45
For i = 1 to rs.RecordCount
str(i) = rs(0)
next