Clever-Excel-Forum

Normale Version: Recordset in Array dann transponieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

kann mir bitte jemand weiterhelfen?
Ich habe ein Recordset welches ich in ein Array überführen möchte

Überschrift:
RS =ProdNr., Bezeichnung, Preis

Datensätze:
RS1= 16, Apfel 1,5€
RS2=21, Birne, 2,0 €
RS3= 5, Orange, 3,0€


Die Recordsets werden so in ein Array überführt
Array = RS.GetRows(RS.RecordCount)

seltsamerweise sind im Array die Zeilen und Spalten vertauscht

Ergebnis
Array(0,0)=16
Array(1,0)=Apfel
Array(2,0)=1,5
Array(0,1)=21
Array(1,1)=Birne
Array(2,1)=20
Array(0,2)=5
Array(1,2)=Orange
Array(2,2)=3,0

Ich möchte aber das Array so haben:

Array(0,0)=16
Array(0,1)=Apfel
Array(0,2)=1,5
Array(1,0)=21
Array(1,1)=Birne
Array(1,2)=20
Array(2,0)=5
Array(2,1)=Orange
Array(2,2)=3,0


MIt workscheetfunction.transpose funktioniert es nicht richtig, da das Array sehr klein ist und die Felder Bezichnung und Preis manchmal nicht gefüllt sind.
Dann bekomme ich statt ein 2 Dimensionales Array mit leeren Feldern ein 1 Dimensionales Array zurück.

Ich benötige aber unbedingt ein 2 Dimensionales Array auch wenn die Felder leer sind.

LG

Klaus
Hab inzwischen was gefunden

Code:
Public Function Transponieren(arQ)
    Dim arT As Variant
    Dim i As Long
    Dim k As Long
    
    ReDim arT(0 To UBound(arQ, 2), 0 To UBound(arQ))
    
    For i = 0 To UBound(arT)
        For k = 0 To UBound(arT, 2)
            arT(i, k) = arQ(k, i)
        Next
    Next
    Transponieren = arT
End Function
Hi Klaus,

die Frage ist ja:
warum ist das Transponieren überhaupt notwendig, warum wird das nicht in der richtigen Reihenfolge ans Array übergeben?

Mit dem Transponieren beseitigst Du ja nur das Symptom und nicht die Ursache.