OVH Cloud OVH Cloud

Paramètres pour 2 m$emes sous-formulaire dans un état

3 réponses
Avatar
Damran
Bonjour

Dans un état, je voudrais mettre deux fois le même "sous-état".
Le problème est que je ne vois pas comment passer des paramètres
différents à chacun d'eux (par exemple, via leurs controles
"sous-formulaire" les contenant).

Si quelqu'un sait comment faire ...

Merci d'avance.

--
Damran
mail: http://www.cerbermail.com/?mmwTu3yDXt

3 réponses

Avatar
Damran
Bonjour

Dans un état, je voudrais mettre deux fois le même "sous-état".
Le problème est que je ne vois pas comment passer des paramètres
différents à chacun d'eux (par exemple, via leurs controles
"sous-formulaire" les contenant).

Si quelqu'un sait comment faire ...

Merci d'avance.

J'ajoute au cas où que le but est pour vhaque sous-état :

- De changer le recordsource
- de changer une variable (qui me permet un conversion d'unité à
l'affichage).

Merci

--
Damran
mail: http://www.cerbermail.com/?rS2q80nELM

Avatar
3stone
Salut,

"Damran"
| > Dans un état, je voudrais mettre deux fois le même "sous-état".
| > Le problème est que je ne vois pas comment passer des paramètres
| > différents à chacun d'eux (par exemple, via leurs controles
| > "sous-formulaire" les contenant).
| >
| > Si quelqu'un sait comment faire ...
| >
| > Merci d'avance.
| >
| J'ajoute au cas où que le but est pour vhaque sous-état :
| - De changer le recordsource
| - de changer une variable (qui me permet un conversion d'unité à
| l'affichage).



Ben... il suffit de les adresser par leur nom.


Selon l'endroit d'où tu lance le code :

Me!SousForm1.Form.Recordsource = "..."


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Damran
Salut,

"Damran"
| > Dans un état, je voudrais mettre deux fois le même "sous-état".
| > Le problème est que je ne vois pas comment passer des paramètres
| > différents à chacun d'eux (par exemple, via leurs controles
| > "sous-formulaire" les contenant).
| >
| > Si quelqu'un sait comment faire ...
| >
| > Merci d'avance.
| >
| J'ajoute au cas où que le but est pour vhaque sous-état :
| - De changer le recordsource
| - de changer une variable (qui me permet un conversion d'unité à
| l'affichage).



Ben... il suffit de les adresser par leur nom.


Selon l'endroit d'où tu lance le code :

Me!SousForm1.Form.Recordsource = "..."
Pour un état, on ne peut changer le recordsource des sous-états via le

formulaire père (en tout cas, j'y arrive pas) :

Dans l'état père ceci ne marche pas :
Me.Fille1.Form.RecordSource = "MaSource"
Me.Fille1.Form.iUnit = "1000"

Par contre, dans le sous-états, ceci fonctionne :
Me.Parent.Fille1.Form.RecordSource = "MaSource".
Me.Parent.Fille1.Form.iUnit = "1000"

Reste à savoir comment faire pour que le sous-état (qui est dupliqué
dans l'état père), s'affecte tel ou tel autre recordsource suivant le
cas. Grâce par exemple, à un paramètre passé via le contrôle
"sous-formulaire", le but étant de pouvoir identifier dans quelle
condition le sous-état est appelé.

J'ai tout de même trouvé une solution.
J'ai deux variables global, l'une indiquant le nombre de fois que le
sous-état est dupliqué (nbEtat).
L'autre est incrémenté à chaque chargement du sous-état (nbEtatEff)
Puis dans le sous état, je déclare une variable public, iUnit (que
j'utilise pour afficher des unités spécifique)

Et à l'ouverture du sous-état :

nbEtateff = nbEtatEff + 1

'Affectation de l'unité de mesure
If nbEtat = nbEtat_eff Then
Me.Parent.Fille1.Form.iUnit = "1000"
Me.Parent.Fille3.Form.iUnit = "10"
End If

'Affectation des RecordSource
Select Case gSetRecord_eff
Case 1
Me.Parent.Fille1.Form.RecordSource = "MaSource1"
Case 2
Me.Parent.Fille3.Form.RecordSource = "MaSource2"
End Select

Et j'arrive ainsi à changer de RecordSource , même si les sous-état ont
le même état comme base et aussi à affecter une valeur différent de la
variable iUnit à chaque sous-état.

Faits étranges :
- Je ne peut affecter de valeur à la variable iUnit, seulement quand
tout les sous-état sont chargées, d'où le test nbEtat=nbEtat_eff, alors
que ce n'est pas le cas pour le RecordSource.
- Je peut utiliser indifféremment Me.Parent.Fille3.Form.RecordSource
ou Me.Parent.Fille3.Report.RecordSource (Form-->Report)


J'ai donc trouvé solution au problème, mais je trouve ça pas très propre
(à cause de l'utilisation de variables global).

--
Damran
mail: http://www.cerbermail.com/?rS2q80nELM