VB6 : Pb pour retourner un tableau dynamique à une fonction d'une class. Erreur [Résolu]

Signaler
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019
-
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019
-
<!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" alt="" style='width:11.25pt;
height:11.25pt'>
<v:imagedata src="file:///C:/DOCUME~1/Vincent/LOCALS~1/Temp/msoclip1/01/clip_image001.gif"
o:href= "http://www.vbfrance.com/imgs2/smile.gif"/>
</v:shape><![endif]-->
<!--[if !vml]-->
<!--[endif]-->
Bonjour <!--[if gte vml 1]><v:shape
id ="_x0000_i1031" type="#_x0000_t75" alt="" style='width:11.25pt;height:11.25pt'>
<v:imagedata src="file:///C:/DOCUME~1/Vincent/LOCALS~1/Temp/msoclip1/01/clip_image001.gif"
o:href="http://www.vbfrance.com/imgs2/smile.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->

    J'ai développé une classe qui effectue des extractions de
données d'une base de données, les stocke en mémoire, les modifie, ...

<!--[if gte vml 1]><v:shape
id="_x0000_i1026" type="#_x0000_t75" alt="" style='width:11.25pt;height:11.25pt'>
<v:imagedata src="file:///C:/DOCUME~1/Vincent/LOCALS~1/Temp/msoclip1/01/clip_image002.gif"
o:href= "http://www.vbfrance.com/imgs2/smile_angry.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->
Je voudrais maintenant pouvoir extraire ces données de mon objet et les renvoyées
dans un module. Ces données sont stocker dans un tableau dynamique de
structure. Je n'arrive pas à développé une fonction qui me retourne ces données
(que je veux impérativement en final dans un tableau de structure)!!! Quoi que
je fasse j'ai toujours une erreur à la compil!!! Je commence à voir rouge !!! Ma dernière erreur est "byref
argument type mismatch" sur la ligne rouge. Ma structure est définie en
public dans un module (donc global à l'appli)





Mon code actuel (actuel car modifier au moins 12 fois) :

Dans la fonction appelante :
Dim teste() As S_TABCRI

Dim TESTEoBJ As ClassGestionPilTabcri

    Set TESTEoBJ = New ClassGestionPilTabcri

    TESTEoBJ.GetTABCRI teste 'C'est ici que l'erreur fait une sélection

Dans la classe :
Friend Sub GetTABCRI(ByRef Retour() As S_TABCRI)

Dim Compteur As Long

    ReDim Retour(LBound(FichierTABCRI) To UBound(FichierTABCRI))

    'CopyMemory Retour, FichierTABCRI

    For Compteur = LBound(FichierTABCRI) To
UBound(FichierTABCRI)

        Retour(Compteur) =
FichierTABCRI(Compteur) 'Si ici je dois copier les données champ par champ ce n'est pas grave

    Next

End Sub

<!--[if gte vml 1]><v:shape
id="_x0000_i1027" type="#_x0000_t75" alt="" style='width:11.25pt;height:11.25pt'>
<v:imagedata src="file:///C:/DOCUME~1/Vincent/LOCALS~1/Temp/msoclip1/01/clip_image003.gif"
o:href="http://www.vbfrance.com/imgs2/smile_sad.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->J'ai déjà tester plein de 'truc' et je suis à
cour d'idée.<!--[if gte vml 1]><v:shape id="_x0000_i1028" type="#_x0000_t75"
alt="" style='width:11.25pt;height:11.25pt'>
<v:imagedata src="file:///C:/DOCUME~1/Vincent/LOCALS~1/Temp/msoclip1/01/clip_image003.gif"
o:href= "http://www.vbfrance.com/imgs2/smile_sad.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->

HELP ME !!!








<!--[if gte vml 1]><v:shape
id ="_x0000_i1029" type="#_x0000_t75" alt="" style='width:11.25pt;height:11.25pt'>
<v:imagedata src="file:///C:/DOCUME~1/Vincent/LOCALS~1/Temp/msoclip1/01/clip_image004.gif"
o:href= "http://www.vbfrance.com/imgs2/smile_big.gif"/>
</v:shape><![endif]-->
<!--[if !vml]-->

<!--[endif]-->Amicalement
<!--[if gte vml 1]><v:shape
id ="_x0000_i1030" type="#_x0000_t75" alt="" style='width:11.25pt;height:11.25pt'>
<v:imagedata src="file:///C:/DOCUME~1/Vincent/LOCALS~1/Temp/msoclip1/01/clip_image004.gif"
o:href="http://www.vbfrance.com/imgs2/smile_big.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->


Pensez "Réponse acceptée"

4 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
103
Déclare ta struture dans un module de classe, et vérifie bien que le module de classe en question est instanciable publiquement.
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

OK!!!! Merci !!!

En faite je viens de tester 3 déclaration (c'est comme toujours la dernière qui
fonctionne, mais ça tourne<!--[if gte vml 1]><v:shapetype id="_x0000_t75"
coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"
filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" alt="" style='width:11.25pt;
height:11.25pt'>
<v:imagedata src="file:///C:/DOCUME~1/Vincent/LOCALS~1/Temp/msoclip1/01/clip_image001.gif"
o:href="http://www.vbfrance.com/imgs2/smile_big.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><!--[if gte vml 1]><v:shape id="_x0000_i1026"
type="#_x0000_t75" alt="" style='width:11.25pt;height:11.25pt'>
<v:imagedata src="file:///C:/DOCUME~1/Vincent/LOCALS~1/Temp/msoclip1/01/clip_image001.gif"
o:href="http://www.vbfrance.com/imgs2/smile_big.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><!--[if gte vml 1]><v:shape id="_x0000_i1027"
type="#_x0000_t75" alt="" style='width:11.25pt;height:11.25pt'>
<v:imagedata src="file:///C:/DOCUME~1/Vincent/LOCALS~1/Temp/msoclip1/01/clip_image001.gif"
o:href="http://www.vbfrance.com/imgs2/smile_big.gif"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->)


Il faut déclarer la structure comme ça : "Public Type S_NomStruct" dans
un module.

Par contre il me semblais avoir déjà tester ça



MERCI
A+

Amicalement
Pensez "Réponce acceptée"
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Oups
Perte de la couleur rouge (sans doute dû à un
copier coller)

La ligne rouge est :

TESTEoBJ.GetTABCRI teste 'C'est ici que l'erreur fait une sélection


Et c'est "teste" qui est sélectionné

Amicalement
Pensez "Réponce acceptée"
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

????
"Déclare ta struture dans un module de classe" OK (déjà tester mais je re-teste tout de suite)
"et vérifie bien que le module de classe en question est instanciable publiquement" ?????? Heeee c'est pas toujour le cas????

Amicalement
Pensez "Réponse acceptée"