OVH Cloud OVH Cloud

Evènement current et sous-formulaire : bug ?

3 réponses
Avatar
technique
Bonjour à tous,

Soit les tables suivantes :
Table_Outillage :
Numero_Outillage | Désignation Outillage
(champ texte/clé primaire) | (champ texte)


Table_Interventions_outillage
No_intervention | Description_intervention | Chemin_schema_inter | Numero_outillage
champ numérique |champ texte |champ texte |champ texte
/clé primaire | |

Relation entre les deux tables :
Table_outillage/Numero_outillage --un à plusieurs-->
Table_Interventions_outillage/Numero_outilage


Soit le formulaire principal outillage contenant le sous-formulaire intervention
--------------------------------------------------------------------------------|
|Formulaire_outillage
|
|Numero_Outillage Désignation Outillage
|
|
||---------------------------------------------------------------------------------|
||Sous_formulaire_intervention
||
||No_intervention | Description_intervention | Chemin_schema_inter ||
||-------------------------------------------------------------------------------- ||
|____________________________________________________________ |


Dans le sous formulaire Interventions il y a la sub suivante :
Private Sub Form_Current()
MsgBox ("sub")
End Sub
Quand je passe d'un outil à l'autre dans le formulaire principal, l'évènement on_current
sur le sous formulaire n'arrive qu'une seule fois.

Dès que je modifie la sub en faisant référence à un des controles du sous-formulaire,
l'évènement on_current sur le sous formulaire est généré deux foix (on entre deux fois
dans la sub).
Private Sub Form_Current()
MsgBox ("sub")
Chemin_schema_inter = "toto" 'ou toute autre calcul
End Sub
l'évènement est généré deux foix (on entre deux fois dans la sub).

Comment cela s'explique ? Peut on l'éviter ?

@+

Fabien

3 réponses

Avatar
didier
Bonjour

Quand tu mets une procédure sur current () c'est à dire
sur l'activation du formulaire la procédure se déclenche.
Si tu vas à un controle de sous formulaire tu active ton
formulaire pour aller à ton sous-formulaire puis une 2eme
fois pour aller à ton controle

Pourquoi faire une procédure qui se déclenche à chaque
activation du formulaire, dés que l'on va cliquer sur ton
formulaire la procèdure va se déclencher d'autant plus
qu'elle fait appelle à un message
-----Message d'origine-----
Bonjour à tous,

Soit les tables suivantes :
Table_Outillage :
Numero_Outillage | Désignation Outillage
(champ texte/clé primaire) | (champ texte)


Table_Interventions_outillage
No_intervention | Description_intervention |
Chemin_schema_inter | Numero_outillage

champ numérique |champ texte |champ
texte |champ texte

/clé primaire
| |


Relation entre les deux tables :
Table_outillage/Numero_outillage --un à plusieurs-->
Table_Interventions_outillage/Numero_outilage


Soit le formulaire principal outillage contenant le sous-
formulaire intervention

---------------------------------------------------------
-----------------------|

|Formulaire_outillage
|
|Numero_Outillage Désignation Outillage
|
|
||-------------------------------------------------------
--------------------------|

||Sous_formulaire_intervention
||
||No_intervention | Description_intervention |
Chemin_schema_inter ||

||-------------------------------------------------------
------------------------- ||

|________________________________________________________
____ |



Dans le sous formulaire Interventions il y a la sub
suivante :

Private Sub Form_Current()
MsgBox ("sub")
End Sub
Quand je passe d'un outil à l'autre dans le formulaire
principal, l'évènement on_current

sur le sous formulaire n'arrive qu'une seule fois.

Dès que je modifie la sub en faisant référence à un des
controles du sous-formulaire,

l'évènement on_current sur le sous formulaire est généré
deux foix (on entre deux fois

dans la sub).
Private Sub Form_Current()
MsgBox ("sub")
Chemin_schema_inter = "toto" 'ou toute autre calcul
End Sub
l'évènement est généré deux foix (on entre deux fois
dans la sub).


Comment cela s'explique ? Peut on l'éviter ?

@+

Fabien











.



Avatar
technique
Bonjour Didier,

La procédure sur current() est dans le sous formulaire pas dans le formulaire principal !

Ici c'est un exemple pour reproduire le "bug".
En fait, ma base est plus compliquée : mon sous formulaire contient un controle image qui
affiche l'image contenue dans le champ Chemin_schema_inter. Donc à chaque activation du
sous-formulaire, j'ai besoint de mettre à jour la propriété Picture du contrôle image en
fonction du champ Chemin_schema_inter.

@+

Fabien


"didier" a écrit dans le message de news:
279e401c4642d$d318f2b0$
Bonjour

Quand tu mets une procédure sur current () c'est à dire
sur l'activation du formulaire la procédure se déclenche.
Si tu vas à un controle de sous formulaire tu active ton
formulaire pour aller à ton sous-formulaire puis une 2eme
fois pour aller à ton controle

Pourquoi faire une procédure qui se déclenche à chaque
activation du formulaire, dés que l'on va cliquer sur ton
formulaire la procèdure va se déclencher d'autant plus
qu'elle fait appelle à un message
-----Message d'origine-----
Bonjour à tous,

Soit les tables suivantes :
Table_Outillage :
Numero_Outillage | Désignation Outillage
(champ texte/clé primaire) | (champ texte)


Table_Interventions_outillage
No_intervention | Description_intervention |
Chemin_schema_inter | Numero_outillage

champ numérique |champ texte |champ
texte |champ texte

/clé primaire
| |


Relation entre les deux tables :
Table_outillage/Numero_outillage --un à plusieurs-->
Table_Interventions_outillage/Numero_outilage


Soit le formulaire principal outillage contenant le sous-
formulaire intervention

---------------------------------------------------------
-----------------------|

|Formulaire_outillage
|
|Numero_Outillage Désignation Outillage
|
|
||-------------------------------------------------------
--------------------------|

||Sous_formulaire_intervention
||
||No_intervention | Description_intervention |
Chemin_schema_inter ||

||-------------------------------------------------------
------------------------- ||

|________________________________________________________
____ |



Dans le sous formulaire Interventions il y a la sub
suivante :

Private Sub Form_Current()
MsgBox ("sub")
End Sub
Quand je passe d'un outil à l'autre dans le formulaire
principal, l'évènement on_current

sur le sous formulaire n'arrive qu'une seule fois.

Dès que je modifie la sub en faisant référence à un des
controles du sous-formulaire,

l'évènement on_current sur le sous formulaire est généré
deux foix (on entre deux fois

dans la sub).
Private Sub Form_Current()
MsgBox ("sub")
Chemin_schema_inter = "toto" 'ou toute autre calcul
End Sub
l'évènement est généré deux foix (on entre deux fois
dans la sub).


Comment cela s'explique ? Peut on l'éviter ?

@+

Fabien











.



Avatar
technique
Ah bon ?! J'avoue ne pas bien comprendre pourquoi et comment je devrais faire un requery.

Pour préciser encore un peu plus, mon sous formulaire est basé sur le formulaire
http://access.seneque.free.fr/bases_exemples.htm n°38.

@+

Fabien


"didier" a écrit dans le message de news:
2900301c46443$88974d20$
S'il est dans le sous formulaire tu doit faire une
activation dans ton evenement du genre un requery
-----Message d'origine-----
Bonjour Didier,

La procédure sur current() est dans le sous formulaire
pas dans le formulaire principal !


Ici c'est un exemple pour reproduire le "bug".
En fait, ma base est plus compliquée : mon sous
formulaire contient un controle image qui

affiche l'image contenue dans le champ
Chemin_schema_inter. Donc à chaque activation du

sous-formulaire, j'ai besoint de mettre à jour la
propriété Picture du contrôle image en

fonction du champ Chemin_schema_inter.

@+

Fabien


"didier" a écrit
dans le message de news:

279e401c4642d$d318f2b0$
Bonjour

Quand tu mets une procédure sur current () c'est à dire
sur l'activation du formulaire la procédure se déclenche.
Si tu vas à un controle de sous formulaire tu active ton
formulaire pour aller à ton sous-formulaire puis une 2eme
fois pour aller à ton controle

Pourquoi faire une procédure qui se déclenche à chaque
activation du formulaire, dés que l'on va cliquer sur ton
formulaire la procèdure va se déclencher d'autant plus
qu'elle fait appelle à un message
-----Message d'origine-----
Bonjour à tous,

Soit les tables suivantes :
Table_Outillage :
Numero_Outillage | Désignation Outillage
(champ texte/clé primaire) | (champ texte)


Table_Interventions_outillage
No_intervention | Description_intervention |
Chemin_schema_inter | Numero_outillage

champ numérique |champ texte |champ
texte |champ texte

/clé primaire
| |


Relation entre les deux tables :
Table_outillage/Numero_outillage --un à plusieurs-->
Table_Interventions_outillage/Numero_outilage


Soit le formulaire principal outillage contenant le
sous-


formulaire intervention
--------------------------------------------------------
-


-----------------------|
|Formulaire_outillage
|
|Numero_Outillage Désignation Outillage
|
|
||------------------------------------------------------
-


--------------------------|
||Sous_formulaire_intervention
||
||No_intervention | Description_intervention |
Chemin_schema_inter ||

||------------------------------------------------------
-


------------------------- ||
|_______________________________________________________
_


____ |


Dans le sous formulaire Interventions il y a la sub
suivante :

Private Sub Form_Current()
MsgBox ("sub")
End Sub
Quand je passe d'un outil à l'autre dans le formulaire
principal, l'évènement on_current

sur le sous formulaire n'arrive qu'une seule fois.

Dès que je modifie la sub en faisant référence à un des
controles du sous-formulaire,

l'évènement on_current sur le sous formulaire est généré
deux foix (on entre deux fois

dans la sub).
Private Sub Form_Current()
MsgBox ("sub")
Chemin_schema_inter = "toto" 'ou toute autre calcul
End Sub
l'évènement est généré deux foix (on entre deux fois
dans la sub).


Comment cela s'explique ? Peut on l'éviter ?

@+

Fabien











.




.