Paramètres pour 2 m$emes sous-formulaire dans un état
3 réponses
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).
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
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).
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).
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).
"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).
"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).
"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).
"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"
| > 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" | > 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).