1

我连接到一个 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 必须提供的任何数据结构中,而不是行,我基本上想使用这些值并将它们随机填充到另一个数据测试生成文件中

4

2 回答 2

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
于 2013-10-04T18:59:47.707 回答
0

试试这样的东西

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

结束你有很好的数组

于 2021-07-12T13:14:53.500 回答