[VB6] TRANSMETTRE UN TABLEAU PAR PROCÉDURE

Signaler
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Messages postés
160
Date d'inscription
dimanche 7 décembre 2003
Statut
Membre
Dernière intervention
14 janvier 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52249-vb6-transmettre-un-tableau-par-procedure

Messages postés
160
Date d'inscription
dimanche 7 décembre 2003
Statut
Membre
Dernière intervention
14 janvier 2009

Bonjour,

d'accord avec Renfield. On peut s'en servir pour extraire des enregistrement sur une requête de BDD.
J'utilise aussi des tableaux de "type utilisateur"..
Mais pour ma part je préfère rendre le tableau lui même.
Messages postés
207
Date d'inscription
mardi 10 février 2004
Statut
Membre
Dernière intervention
14 septembre 2011

Merci d'avoir apporter ces modifications Renfield ;)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
j'avoue ne pas trop comprendre la chose...
un simple How-To sur comment renvoyer un tableau ?

nettoyons un peu le code...

completement contre-performant de faire ton Redim Preserve DANS la boucle.

alloue tes 10 Items AVANT la boucle, une fois pour toutes...

De plus, dans ton tableau, tu perds la case d'index 0 que tu ne remplis pas dans ta boucle For i = 1 To 10

Public Function Tableau_Procedure() As String()
Dim i As Long
Dim xsRet(9) As String
'# A voir si l'on a un nombre fixe d'element ou non...
'Dim xsRet() As String
'ReDim Tableau_Procedure(9)
For i = 0 To 9
xsRet(i) = "Item " & i
Next i
Tableau_Procedure = xsRet
End Function

'Dans un formulaire :
Private Sub Command1_Click()
Dim i As Long
Dim Tableau_Form() As String
Tableau_Form = Module1.Tableau_Procedure
For i = 0 To UBound(Tableau_Form)
List1.AddItem Tableau_Form(i)
Next i
End Sub

Personellement, je prefere ce genre de choses:

Public Function RemplirTableau(ByRef vxsRet() As String) As Long
Dim i As Long
'# A voir si l'on a un nombre fixe d'element ou non...
ReDim vxsRet(9)
For i = 0 To 9
vxsRet(i) = "Item " & i
Next i
'# Renvoie le nombre d'element du tableau
RemplirTableau = 10
End Function

'Dans un formulaire :
Private Sub Command1_Click()
Dim i As Long
Dim xsItems() As String
For i = 0 To RemplirTableau(xsItems) - 1
List1.AddItem xsItems(i)
Next i
End Sub