将数据库中的值提取到数组中 - Excel-VBA

时间:2013-10-04 18:51:37

标签: arrays database excel vba excel-vba

我连接到一个oracle数据库,它基本上使用我给它的SQL语句将数据输出到工作表中:

这是将其复制到电子表格中的代码:

 Set oRsOracle = New ADODB.Recordset
    With oRsOracle
        .ActiveConnection = oConOracle
        .Open "SELECT CalcGrp_Name FROM Calc_Group"
        Sheets(2).Range("A1").CopyFromRecordset oRsOracle
        .Close
    End With
    Set oRsOracle = Nothing

    oConOracle.Close
    Set oConOracle = Nothing

基本上没有行Sheets(2).Range("A1").CopyFromRecordset oRsOracle有一种方法可以将这些值存储到数组或VB必须提供的任何数据结构中,我基本上想要使用这些值并随机将它们填充到另一个数据测试中生成文件

2 个答案:

答案 0 :(得分:2)

您可以使用数组或变体,例如:

Dim dat as Variant
dat = Array(record1, record2, record3)

在循环中,您可以设置单个记录:

For i = 1 to 10
  dat(i) = 'your record
next

在你的代码中试试这个:

Dim dat as Variant

With oRsOracle
    .ActiveConnection = oConOracle
    .Open "SELECT CalcGrp_Name FROM Calc_Group"
    dat = oRsOracle.GetRows
    .Close
End With

打印结果:

Dim i As Long

For i = LBound(dat) to UBound(dat)
  Debug.Print dat(i)
Next

答案 1 :(得分:0)

尝试类似的东西

Dim Qdata as variant
Qdata= recordset.GetRows /// recordset is Adodb recordset
Qdata= Application.Transpose(Qdata)

最后你有漂亮的数组