Inverser les dimension d'un Array (Tableau)

  • Initiateur de la discussion Initiateur de la discussion pacoako
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pacoako

XLDnaute Occasionnel
Bonjour!

J'ai un petit problème lorsque je fait une requête .GetRows sur un recordset d'une base de données Access, j'obtient toujours mon Tableau dans le mauvais sens.

Exemple :

Array(champ, #_de_l'entrée)

et je voudrais plutôt obtenir

Array(#_de_l'entrée, champ)

Quelqu'un sait comment inverser les dimension d'un tableau avec une fonction VBA ou bien sait comment je pourrait faire ma requête différemment pour obtenir le tableau dans le bon sens en partant...?? Voici mon code & merci de votre aide!

Code:
Option Explicit
Dim BDD As DAO.Database
Dim RS As Recordset
Dim BDDPath As String
Dim SQLQuery As String
Dim ListeResultats() As Variant

Private Sub CMDBRechercher_Click()

Dim a, m, n, z As Integer

BDDPath = ThisWorkbook.Path & "\BDDJuridique.mdb"
Set BDD = OpenDatabase(BDDPath, False, False, ";pwd=98000256")
SQLQuery = "SELECT * FROM Juridique WHERE " & CBCritere1 & "= " & "'" & TBCritere1 & "'"
Set RS = BDD.OpenRecordset(SQLQuery)

RS.MoveLast
m = RS.RecordCount
RS.MoveFirst
ListeResultats = RS.GetRows(m)

With ListBoxResultats
.List = ListeResultats
.ColumnWidths = "50;50;50;50;50;50;50,50;50;50;50;50;50;50,50;50;50;50;50;50;50"
End With

End With
 
Re : Inverser les dimension d'un Array (Tableau)

C'était si simple

Dim ListeResultats() As Variant
Dim ListeResultatsInverse(0 To 99, 0 To 27) As Variant 'Maximum de 100 entrées et 27 champs (Peut-être modifié)

'Inverse les dimension du tableau
For a = 0 To m - 1
For z = 0 To 27
ListeResultatsInverse(a, z) = ListeResultats(z, a)
Next z
Next a
 
Re : Inverser les dimension d'un Array (Tableau)

Bonjour,

Juste une remarque :

Code:
Dim a, m, n, z As Integer

Cette déclaration, telle qu'elle est écrite, correspond à

Code:
Dim a As Variant, m As Variant, n As Variant, z As Integer

et non pas

Dim a As Integer, m As Integer, n As Integer, z As Integer

m As Integer ferait planter la ligne de code suivante
m = RS.RecordCount
car la méthode RecordCount renvoie un Long


RecordCount, propriété

Renvoie le nombre d'enregistrements auxquels vous avez eu accès dans un objet Recordset ou le nombre total d'enregistrements dans un objet Recordset de type Table ou dans un objet TableDef.

Valeurs renvoyées
La valeur renvoyée est de type Long.


Cordialement.

PMO
Patrick Morange
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

A
Réponses
4
Affichages
3 K
Retour