dimension d'un tableau en fonction d'une variable

Le
françois
voil : est ce possible de dimensionner une tableau en
fonction d'une variable. Je souhaite rcuprer le nombre
d' enregistrements prsents dans une table Access et
dimensionner un tableau en fonction de ce nombre. Si je
fais

marequete.movelast
dim montableau(marequete.recordcount)

Vb me rpond : constante attendue !

et pourtant a m'arrangerait bien de faire comme a !!!

merci de votre rponse ou d'une piste ventuelle
Franois
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Himselff
Le #14711831
ya une methode pas tres jolie mais qui fonctionne tres bien

do while not (monRecordset.eof)
compteur = compteur + 1
monRecordSet.movenext
loop

ensuite tu remet a movefirst et tu REDIM tableau(compteur,1)

Bonne chance
"françois" news:2d4401c4287a$26a7d170$
voilà : est ce possible de dimensionner une tableau en
fonction d'une variable. Je souhaite récupérer le nombre
d' enregistrements présents dans une table Access et
dimensionner un tableau en fonction de ce nombre. Si je
fais

marequete.movelast
dim montableau(marequete.recordcount)

Vb me répond : constante attendue !

et pourtant ça m'arrangerait bien de faire comme ça !!!

merci de votre réponse ou d'une piste éventuelle
François
Eric
Le #14711821
Bonjour François

Dans ta procedure declares ainsi:
En Début : Dim Tableau()

puis apres le marequete.movelast
ReDim Tableau(marequete.recordcount)

A+
Eric

françois $26a7d170$:

voilà : est ce possible de dimensionner une tableau en
fonction d'une variable. Je souhaite récupérer le nombre
d' enregistrements présents dans une table Access et
dimensionner un tableau en fonction de ce nombre. Si je
fais

marequete.movelast
dim montableau(marequete.recordcount)

Vb me répond : constante attendue !

et pourtant ça m'arrangerait bien de faire comme ça !!!

merci de votre réponse ou d'une piste éventuelle
François



François Picalausa
Le #14711801
Hello,

En Début : Dim Tableau()


De préférence en typant le tableau!

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"Eric" news:
françois
Le #14711791
Merci Eric ! C'est exactement ce dont j'avais besoin
François
Eric
Le #14711761
Hello François
oui mais je ne savais pas ce qu'il allait contenir donc j'ai laissé en
variant par défaut. A l'auteur d'adapter à ses besoins ;-)

A+
Eric

"François Picalausa" @TK2MSFTNGP11.phx.gbl:

Hello,

En Début : Dim Tableau()


De préférence en typant le tableau!



ng
Le #14711741
Salut,

En complément des autres réponses qui proposaient ceci :

Dim tblTableau() as MONTYPE
'//Code
Redim tblTableau(marequete.recordcount)
'//Le tableau sera redimensionné de 0 à marequete.recordcount
'//Pr le redim. de 1 à marequete.recordcount :
Redim tblTableau(1 To marequete.recordcount)

tu peux aussi redimensionner ton tableau en préservant les données (ca ne te
sert pas ici, mais c'est juste au cas ou t'en aurais besoin un jour) :

Dim tblTableau() as MONTYPE
'//Code
Redim Preserve tblTableau(marequete.recordcount)
'//Le tableau sera redimensionné de 0 à marequete.recordcount


--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/

françois
voilà : est ce possible de dimensionner une tableau en
fonction d'une variable. Je souhaite récupérer le nombre
d' enregistrements présents dans une table Access et
dimensionner un tableau en fonction de ce nombre. Si je
fais

marequete.movelast
dim montableau(marequete.recordcount)

Vb me répond : constante attendue !

et pourtant ça m'arrangerait bien de faire comme ça !!!

merci de votre réponse ou d'une piste éventuelle
François


Christophe
Le #14711601
Bonjour,
ci dessous une copie/collée d'une fonction utilisant DAO et renvoyant un
tableau de type utilisateur à partir du recordset
et je vois pas ce qu'il y a de "Pas joli" avec plus de mille enregistrements
c'est "instantané"
Et si tu ne recherche que dans une table tu utilises une méthode seek sur la
clef primaire et c'est encore plus rapide.

Christophe Vergon

Public Function AppuiDeFeuille(idfeuille As Long) As PointLiaison()
Dim bd As Database
Dim rq As QueryDef
Dim rst As Recordset
Dim PL() As PointLiaison


Set bd = OpenDatabase(Emplacementbase) 'ouvre la base
Set rq = bd.QueryDefs("Rqappuidefeuille") ' affecte la requete
rq.Parameters("idfeuille") = idfeuille& ' les parametres
Set rst = rq.OpenRecordset ' ouvre le recordset

If Not (rst.EOF And rst.BOF) Then 'si pas vide
rst.MoveFirst 'au premier
i& = 0 'compteur à 0

Do While Not rst.EOF
ReDim Preserve PL(i&)
PL(i&).idpoint = rst("idappuifeuille")
PL(i&).idfeuille = rst("ptrfeuille")
PL(i&).nom = rst("nom")
PL(i&).x = rst("X")
PL(i&).y = rst("Y")
i& = i& + 1
rst.MoveNext
Loop

Else
'renvoi de l'element nul
ReDim PL(0)
PL(0).idfeuille = idfeuille
PL(0).nom = -1
End If

AppuiDeFeuille = PL

Set rst = Nothing
Set rq = Nothing
Set bd = Nothing
End Function

"françois" news: 2d4401c4287a$26a7d170$
voilà : est ce possible de dimensionner une tableau en
fonction d'une variable. Je souhaite récupérer le nombre
d' enregistrements présents dans une table Access et
dimensionner un tableau en fonction de ce nombre. Si je
fais

marequete.movelast
dim montableau(marequete.recordcount)

Vb me répond : constante attendue !

et pourtant ça m'arrangerait bien de faire comme ça !!!

merci de votre réponse ou d'une piste éventuelle
François
Publicité
Poster une réponse
Anonyme