Das Clever-Excel-Forum.de - Treffen
... 14.-16. September 2018 im Allgäu ...

Recordset in Array dann transponieren
#1
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
to top
#2
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
to top
#3
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.
Gruß Ralf

?mage

Die deutsche Rechtschreibung ist Freeware, d.h. du kannst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, deswegen darfst du sie nicht verändern oder in veränderter Form veröffentlichen.
to top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste