Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb de liaison entre formulaire et sous-formulaire

1 réponse
Avatar
LBSinclair
Bonjour, désolé de devoir poster pour une chose aussi futile mais là je
m'énerve de ne pas trouver où ca pêche !

Voici le pb :

J'ai un formulaire principale appelé : Formulaire Interventions
qui contient un sous-formulaire (en mode feuilles de données) appelé
IntPiecesousformulaire2. Ce sous-formulaire est composé de 4 champs:
CodePièceDétachée
Libellé Pièce Détachée
Prix Pièce Détachée
SommePrix

Par un bouton sur le Formulaire Interventions, j'ouvre un autre formulaire
appelé Formulaire ChercheCode.
Celui-ci contient une listbox contenant 2 champs :
Code Pièce Détachée
Libellé Pièce Détachée
(champs venant d'une table Pièces)

En cliquant sur une ligne de la listbox (donc sur un Code Pièce Détachée),
je cherche à ce que le champ CodePièceDétachée du sous-formulaire
IntPiecesousformulaire2 se remplisse par la valeur cliquée.

Dans mon code (procédure événementielle click de ma listbox) j'ai mis :


Code:
Forms![Formulaire Interventions].SetFocus
Forms![Formulaire
Interventions].Form![IntPiecesousformulaire2].SetFocus
DoCmd.GoToRecord , , acNewRec

Forms![Formulaire
Interventions].Form![Intpiècesousformulaire2]!CodePièceDétachée =
Me.ListeCodePièce.Column(0)
Me.SetFocus



Si j'exécute ce code, je remarque que les 3 1ères lignes sont correctes : on
voit que le sous-formulaire IntPiecesousformulaire2 recoit le focus, le
curseur passe à l'enregistrement suivant.

C'est la ligne suivante qui me cause un souci :
J'obtiens ce message :
"Impossible de trouver le champ 'Intpiècesousformulaire2' auquel il est fait
référence dans votre expression"

Pour en avoir le coeur net, j'ai modifié cette 4ème ligne ainsi :



Code:
Forms![Formulaire
Interventions].[Intpiècesousformulaire2].Form![CodePièceDétachée_Étiquette].
Visible = False



ou


Code:
Forms![Formulaire
Interventions].[Intpiècesousformulaire2].Form!CodePièceDétachée_Étiquette.Vi
sible = False



ou


Code:
Forms![Formulaire
Interventions].Form![Intpiècesousformulaire2].[CodePièceDétachée_Étiquette].
Visible = False



ou


Code:
Forms![Formulaire
Interventions].Form![Intpiècesousformulaire2]![CodePièceDétachée_Étiquette].
Visible = False



en ayant pris soin de mettre le sous-formulaire en formulaire unique et non
plus en feuilles de données...
J'espèrais voir le label du champ Code Pièce Détachée disparaitre..Mais
j'obtiens le même message d'erreur que cité au-dessus...

A priori, il trouve bien le sous-formulaire puisque focus et chgement
d'enregistrement il y a. Alors pkoi ce message ?

Où est l'erreur ?


Merci d'avance pour vos lumières...

1 réponse

Avatar
Raymond [mvp]
bonsoir.

fais comme ceci:

Forms![Formulaire
Interventions]![Intpiècesousformulaire2]![CodePièceDétachée_Étiquette].Visib
le = False
ou
Forms![Formulaire
Interventions]![Intpiècesousformulaire2].Form![CodePièceDétachée_Étiquette].
Visible = False

le .form est l'option par défaut et n'est pas obligatoire.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.kynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA


"LBSinclair" a écrit dans le message de
news:bolp57$9a5$
Bonjour, désolé de devoir poster pour une chose aussi futile mais là je
m'énerve de ne pas trouver où ca pêche !

Voici le pb :

J'ai un formulaire principale appelé : Formulaire Interventions
qui contient un sous-formulaire (en mode feuilles de données) appelé
IntPiecesousformulaire2. Ce sous-formulaire est composé de 4 champs:
CodePièceDétachée
Libellé Pièce Détachée
Prix Pièce Détachée
SommePrix

Par un bouton sur le Formulaire Interventions, j'ouvre un autre formulaire
appelé Formulaire ChercheCode.
Celui-ci contient une listbox contenant 2 champs :
Code Pièce Détachée
Libellé Pièce Détachée
(champs venant d'une table Pièces)

En cliquant sur une ligne de la listbox (donc sur un Code Pièce Détachée),
je cherche à ce que le champ CodePièceDétachée du sous-formulaire
IntPiecesousformulaire2 se remplisse par la valeur cliquée.

Dans mon code (procédure événementielle click de ma listbox) j'ai mis :


Code:
Forms![Formulaire Interventions].SetFocus
Forms![Formulaire
Interventions].Form![IntPiecesousformulaire2].SetFocus
DoCmd.GoToRecord , , acNewRec

Forms![Formulaire
Interventions].Form![Intpiècesousformulaire2]!CodePièceDétachée > Me.ListeCodePièce.Column(0)
Me.SetFocus



Si j'exécute ce code, je remarque que les 3 1ères lignes sont correctes :
on

voit que le sous-formulaire IntPiecesousformulaire2 recoit le focus, le
curseur passe à l'enregistrement suivant.

C'est la ligne suivante qui me cause un souci :
J'obtiens ce message :
"Impossible de trouver le champ 'Intpiècesousformulaire2' auquel il est
fait

référence dans votre expression"

Pour en avoir le coeur net, j'ai modifié cette 4ème ligne ainsi :



Code:
Forms![Formulaire

Interventions].[Intpiècesousformulaire2].Form![CodePièceDétachée_Étiquette].

Visible = False



ou


Code:
Forms![Formulaire
Interventions].[Intpiècesousformulaire2].Form!CodePièceDétachée_Étiquette.Vi

sible = False



ou


Code:
Forms![Formulaire

Interventions].Form![Intpiècesousformulaire2].[CodePièceDétachée_Étiquette].

Visible = False



ou


Code:
Forms![Formulaire

Interventions].Form![Intpiècesousformulaire2]![CodePièceDétachée_Étiquette].

Visible = False



en ayant pris soin de mettre le sous-formulaire en formulaire unique et
non

plus en feuilles de données...
J'espèrais voir le label du champ Code Pièce Détachée disparaitre..Mais
j'obtiens le même message d'erreur que cité au-dessus...

A priori, il trouve bien le sous-formulaire puisque focus et chgement
d'enregistrement il y a. Alors pkoi ce message ?

Où est l'erreur ?


Merci d'avance pour vos lumières...