Bonjour,
je me connecte à une base de données pour récupérer des noms de projets
j'aimerais stocker ces noms de projets dans un tableau dynamique (plusieurs
dimensions)
le problème est que je ne connais pas le nombre de projets
(je sais que j'ai 4 colonnes dans ma table, mais je ne connais pas le nb de
lignes)
j'ai donc tenté d'initialiser mon tableau avec
Dim TableauProjets(500,4)
ensuite je parcours ma table
à chaque enregistrement
je remplis mon TableauProjets
à la fin du traitement j'aimerai redimensionner ma variable en fonction du
nb d'enregistrement parcouru
j'ai essayer
ReDim Preserve TableauProjets(k, 4) mais ça ne fonctionne pas
merci de votre aide
ci-joint le code
Pierre
-------------------------
Option Base 1
Sub Macro1()
Dim myDB As Database
Dim myFileName As String
Dim Vsql As String
Dim TableauProjets()
myFileName = Worksheets("Paramètres").Range("B2").FormulaR1C1
Set myDB = DBEngine.OpenDatabase(myFileName)
Vsql = "Select * from T_Projets order by NomProj"
Set myRS = myDB.OpenRecordset(Vsql, dbOpenDynaset)
k = 0
Do While Not myRS.EOF
k = k + 1
TableauProjets(k, 1) = myRS.Fields("NomProj").Value
TableauProjets(k, 2) = myRS.Fields("NumProj").Value
TableauProjets(k, 3) = myRS.Fields("CouleurFond").Value
TableauProjets(k, 4) = myRS.Fields("CouleurTexte").Value
myRS.MoveNext
Loop
myRS.Close
myDB.Close
'erreur ligne suivante
ReDim Preserve TableauProjets(k, 4)
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel
Bonjour. Si je me souviens bien, si tu utilises "preserve", tu ne peux changer que la dernière dimension (4 dans ton cas). Cordialement. Daniel "Pierre" a écrit dans le message de news: 4518e5fa$0$27415$
Bonjour, je me connecte à une base de données pour récupérer des noms de projets j'aimerais stocker ces noms de projets dans un tableau dynamique (plusieurs dimensions) le problème est que je ne connais pas le nombre de projets (je sais que j'ai 4 colonnes dans ma table, mais je ne connais pas le nb de lignes)
j'ai donc tenté d'initialiser mon tableau avec
Dim TableauProjets(500,4) ensuite je parcours ma table à chaque enregistrement je remplis mon TableauProjets à la fin du traitement j'aimerai redimensionner ma variable en fonction du nb d'enregistrement parcouru
j'ai essayer ReDim Preserve TableauProjets(k, 4) mais ça ne fonctionne pas merci de votre aide
ci-joint le code Pierre ------------------------- Option Base 1
Sub Macro1() Dim myDB As Database Dim myFileName As String Dim Vsql As String Dim TableauProjets()
myFileName = Worksheets("Paramètres").Range("B2").FormulaR1C1 Set myDB = DBEngine.OpenDatabase(myFileName) Vsql = "Select * from T_Projets order by NomProj" Set myRS = myDB.OpenRecordset(Vsql, dbOpenDynaset) k = 0 Do While Not myRS.EOF k = k + 1 TableauProjets(k, 1) = myRS.Fields("NomProj").Value TableauProjets(k, 2) = myRS.Fields("NumProj").Value TableauProjets(k, 3) = myRS.Fields("CouleurFond").Value TableauProjets(k, 4) = myRS.Fields("CouleurTexte").Value myRS.MoveNext Loop myRS.Close myDB.Close 'erreur ligne suivante ReDim Preserve TableauProjets(k, 4) End Sub
Bonjour.
Si je me souviens bien, si tu utilises "preserve", tu ne peux changer que la
dernière dimension (4 dans ton cas).
Cordialement.
Daniel
"Pierre" <pierre.bunoz@wanadoo.fr> a écrit dans le message de news:
4518e5fa$0$27415$ba4acef3@news.orange.fr...
Bonjour,
je me connecte à une base de données pour récupérer des noms de projets
j'aimerais stocker ces noms de projets dans un tableau dynamique
(plusieurs dimensions)
le problème est que je ne connais pas le nombre de projets
(je sais que j'ai 4 colonnes dans ma table, mais je ne connais pas le nb
de lignes)
j'ai donc tenté d'initialiser mon tableau avec
Dim TableauProjets(500,4)
ensuite je parcours ma table
à chaque enregistrement
je remplis mon TableauProjets
à la fin du traitement j'aimerai redimensionner ma variable en fonction du
nb d'enregistrement parcouru
j'ai essayer
ReDim Preserve TableauProjets(k, 4) mais ça ne fonctionne pas
merci de votre aide
ci-joint le code
Pierre
-------------------------
Option Base 1
Sub Macro1()
Dim myDB As Database
Dim myFileName As String
Dim Vsql As String
Dim TableauProjets()
myFileName = Worksheets("Paramètres").Range("B2").FormulaR1C1
Set myDB = DBEngine.OpenDatabase(myFileName)
Vsql = "Select * from T_Projets order by NomProj"
Set myRS = myDB.OpenRecordset(Vsql, dbOpenDynaset)
k = 0
Do While Not myRS.EOF
k = k + 1
TableauProjets(k, 1) = myRS.Fields("NomProj").Value
TableauProjets(k, 2) = myRS.Fields("NumProj").Value
TableauProjets(k, 3) = myRS.Fields("CouleurFond").Value
TableauProjets(k, 4) = myRS.Fields("CouleurTexte").Value
myRS.MoveNext
Loop
myRS.Close
myDB.Close
'erreur ligne suivante
ReDim Preserve TableauProjets(k, 4)
End Sub
Bonjour. Si je me souviens bien, si tu utilises "preserve", tu ne peux changer que la dernière dimension (4 dans ton cas). Cordialement. Daniel "Pierre" a écrit dans le message de news: 4518e5fa$0$27415$
Bonjour, je me connecte à une base de données pour récupérer des noms de projets j'aimerais stocker ces noms de projets dans un tableau dynamique (plusieurs dimensions) le problème est que je ne connais pas le nombre de projets (je sais que j'ai 4 colonnes dans ma table, mais je ne connais pas le nb de lignes)
j'ai donc tenté d'initialiser mon tableau avec
Dim TableauProjets(500,4) ensuite je parcours ma table à chaque enregistrement je remplis mon TableauProjets à la fin du traitement j'aimerai redimensionner ma variable en fonction du nb d'enregistrement parcouru
j'ai essayer ReDim Preserve TableauProjets(k, 4) mais ça ne fonctionne pas merci de votre aide
ci-joint le code Pierre ------------------------- Option Base 1
Sub Macro1() Dim myDB As Database Dim myFileName As String Dim Vsql As String Dim TableauProjets()
myFileName = Worksheets("Paramètres").Range("B2").FormulaR1C1 Set myDB = DBEngine.OpenDatabase(myFileName) Vsql = "Select * from T_Projets order by NomProj" Set myRS = myDB.OpenRecordset(Vsql, dbOpenDynaset) k = 0 Do While Not myRS.EOF k = k + 1 TableauProjets(k, 1) = myRS.Fields("NomProj").Value TableauProjets(k, 2) = myRS.Fields("NumProj").Value TableauProjets(k, 3) = myRS.Fields("CouleurFond").Value TableauProjets(k, 4) = myRS.Fields("CouleurTexte").Value myRS.MoveNext Loop myRS.Close myDB.Close 'erreur ligne suivante ReDim Preserve TableauProjets(k, 4) End Sub
Pierre
merci comme je n'ai pas le droit de dimensionner mes lignes j'ai inversé ligne colonne puis tranposé ca marche Pierre "Daniel" a écrit dans le message de news:
Bonjour. Si je me souviens bien, si tu utilises "preserve", tu ne peux changer que la dernière dimension (4 dans ton cas). Cordialement. Daniel "Pierre" a écrit dans le message de news: 4518e5fa$0$27415$
Bonjour, je me connecte à une base de données pour récupérer des noms de projets j'aimerais stocker ces noms de projets dans un tableau dynamique (plusieurs dimensions) le problème est que je ne connais pas le nombre de projets (je sais que j'ai 4 colonnes dans ma table, mais je ne connais pas le nb de lignes)
j'ai donc tenté d'initialiser mon tableau avec
Dim TableauProjets(500,4) ensuite je parcours ma table à chaque enregistrement je remplis mon TableauProjets à la fin du traitement j'aimerai redimensionner ma variable en fonction du nb d'enregistrement parcouru
j'ai essayer ReDim Preserve TableauProjets(k, 4) mais ça ne fonctionne pas merci de votre aide
ci-joint le code Pierre ------------------------- Option Base 1
Sub Macro1() Dim myDB As Database Dim myFileName As String Dim Vsql As String Dim TableauProjets()
myFileName = Worksheets("Paramètres").Range("B2").FormulaR1C1 Set myDB = DBEngine.OpenDatabase(myFileName) Vsql = "Select * from T_Projets order by NomProj" Set myRS = myDB.OpenRecordset(Vsql, dbOpenDynaset) k = 0 Do While Not myRS.EOF k = k + 1 TableauProjets(k, 1) = myRS.Fields("NomProj").Value TableauProjets(k, 2) = myRS.Fields("NumProj").Value TableauProjets(k, 3) = myRS.Fields("CouleurFond").Value TableauProjets(k, 4) = myRS.Fields("CouleurTexte").Value myRS.MoveNext Loop myRS.Close myDB.Close 'erreur ligne suivante ReDim Preserve TableauProjets(k, 4) End Sub
merci
comme je n'ai pas le droit de dimensionner mes lignes
j'ai inversé ligne colonne
puis tranposé
ca marche
Pierre
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
ekBZU2U4GHA.1544@TK2MSFTNGP04.phx.gbl...
Bonjour.
Si je me souviens bien, si tu utilises "preserve", tu ne peux changer que
la dernière dimension (4 dans ton cas).
Cordialement.
Daniel
"Pierre" <pierre.bunoz@wanadoo.fr> a écrit dans le message de news:
4518e5fa$0$27415$ba4acef3@news.orange.fr...
Bonjour,
je me connecte à une base de données pour récupérer des noms de projets
j'aimerais stocker ces noms de projets dans un tableau dynamique
(plusieurs dimensions)
le problème est que je ne connais pas le nombre de projets
(je sais que j'ai 4 colonnes dans ma table, mais je ne connais pas le nb
de lignes)
j'ai donc tenté d'initialiser mon tableau avec
Dim TableauProjets(500,4)
ensuite je parcours ma table
à chaque enregistrement
je remplis mon TableauProjets
à la fin du traitement j'aimerai redimensionner ma variable en fonction
du nb d'enregistrement parcouru
j'ai essayer
ReDim Preserve TableauProjets(k, 4) mais ça ne fonctionne pas
merci de votre aide
ci-joint le code
Pierre
-------------------------
Option Base 1
Sub Macro1()
Dim myDB As Database
Dim myFileName As String
Dim Vsql As String
Dim TableauProjets()
myFileName = Worksheets("Paramètres").Range("B2").FormulaR1C1
Set myDB = DBEngine.OpenDatabase(myFileName)
Vsql = "Select * from T_Projets order by NomProj"
Set myRS = myDB.OpenRecordset(Vsql, dbOpenDynaset)
k = 0
Do While Not myRS.EOF
k = k + 1
TableauProjets(k, 1) = myRS.Fields("NomProj").Value
TableauProjets(k, 2) = myRS.Fields("NumProj").Value
TableauProjets(k, 3) = myRS.Fields("CouleurFond").Value
TableauProjets(k, 4) = myRS.Fields("CouleurTexte").Value
myRS.MoveNext
Loop
myRS.Close
myDB.Close
'erreur ligne suivante
ReDim Preserve TableauProjets(k, 4)
End Sub
merci comme je n'ai pas le droit de dimensionner mes lignes j'ai inversé ligne colonne puis tranposé ca marche Pierre "Daniel" a écrit dans le message de news:
Bonjour. Si je me souviens bien, si tu utilises "preserve", tu ne peux changer que la dernière dimension (4 dans ton cas). Cordialement. Daniel "Pierre" a écrit dans le message de news: 4518e5fa$0$27415$
Bonjour, je me connecte à une base de données pour récupérer des noms de projets j'aimerais stocker ces noms de projets dans un tableau dynamique (plusieurs dimensions) le problème est que je ne connais pas le nombre de projets (je sais que j'ai 4 colonnes dans ma table, mais je ne connais pas le nb de lignes)
j'ai donc tenté d'initialiser mon tableau avec
Dim TableauProjets(500,4) ensuite je parcours ma table à chaque enregistrement je remplis mon TableauProjets à la fin du traitement j'aimerai redimensionner ma variable en fonction du nb d'enregistrement parcouru
j'ai essayer ReDim Preserve TableauProjets(k, 4) mais ça ne fonctionne pas merci de votre aide
ci-joint le code Pierre ------------------------- Option Base 1
Sub Macro1() Dim myDB As Database Dim myFileName As String Dim Vsql As String Dim TableauProjets()
myFileName = Worksheets("Paramètres").Range("B2").FormulaR1C1 Set myDB = DBEngine.OpenDatabase(myFileName) Vsql = "Select * from T_Projets order by NomProj" Set myRS = myDB.OpenRecordset(Vsql, dbOpenDynaset) k = 0 Do While Not myRS.EOF k = k + 1 TableauProjets(k, 1) = myRS.Fields("NomProj").Value TableauProjets(k, 2) = myRS.Fields("NumProj").Value TableauProjets(k, 3) = myRS.Fields("CouleurFond").Value TableauProjets(k, 4) = myRS.Fields("CouleurTexte").Value myRS.MoveNext Loop myRS.Close myDB.Close 'erreur ligne suivante ReDim Preserve TableauProjets(k, 4) End Sub