Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten 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.
Antworten Top


Gehe zu:


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