OVH Cloud OVH Cloud

MàJ d'un champ apres selection d'un autre champ

13 réponses
Avatar
Eric
Salut a tous,
Depuis plusieurs jours je bloque la dessus. La mise a jour d'un deuxième
champ ( Ref) après la sélection dans une liste de la (designation) du
produit.
J'ai deux tables une T_Principale et une autre T_Appareil avec des colonnes
"Designation" & "Ref" et un formulaire basé sur la table principale. Dans ce
formulaire j'ai deux champs, une liste déroulante "Lis_Designation" qui est
le nom de la liste du champ "Designation" et un champ "Ref". Quand je
sélectionne la désignation d'un produit j'aimerais que le champ "Ref" se
remplisse automatiquement

En fouillant sur le net j'ai trouve des solutions mais ça ne marche pas.

SOLUTION 1 trouve chez http://access.seneque.free.fr/bases_exemples.htm

Private Sub Lis_Designation_Exit(Cancel As Integer)
'Pour la mise a jour du champ ref par rapport designation'
varref = DLookup("[Ref]", "T_ Appareil", "[Designation]='" &
Forms![F_Entretien]![Lis_Designation].Value & "'")
End Sub

SOLUTION 2 trouve dans un livre et dans un forum

varref =DLookup ("[Ref]", "T_Appareil", "[Designation] = ' " &
[Lis_Designation]&" ' " )
Me! [Ref] = varref

Ils n'explique pas ou les mètres moi je l'ai mis dans le champ "Designation"
Propriété, événement, après mise à jour, procédure événementielle et je ne
sais pas s'il faut faire quelle chose dans le champ "Ref"

10 réponses

1 2
Avatar
Raymond [mvp]
Bonjour.

tu as fais exactement ce qu'il fallait faire. sur ref il ne faut rien faire.

je ne sais pas où tu as pris l'exemple.
dans ce cas il y a une autre solution . Dans le rowsource (contenu) de la
liste tu places le champ Ref en 2e position dans la requête et ensuite dans
le même évènement tu peux charger ton contrôle immédiatement et plus vite:
Me.Ref = Me.Lis_Designation.Column(1)
les colonnes sont indexées à partir de 0.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Eric" a écrit dans le message de
news:%234Bs$
Salut a tous,
Depuis plusieurs jours je bloque la dessus. La mise a jour d'un deuxième
champ ( Ref) après la sélection dans une liste de la (designation) du
produit.
J'ai deux tables une T_Principale et une autre T_Appareil avec des
colonnes

"Designation" & "Ref" et un formulaire basé sur la table principale. Dans
ce

formulaire j'ai deux champs, une liste déroulante "Lis_Designation" qui
est

le nom de la liste du champ "Designation" et un champ "Ref". Quand je
sélectionne la désignation d'un produit j'aimerais que le champ "Ref" se
remplisse automatiquement

En fouillant sur le net j'ai trouve des solutions mais ça ne marche pas.

SOLUTION 1 trouve chez http://access.seneque.free.fr/bases_exemples.htm

Private Sub Lis_Designation_Exit(Cancel As Integer)
'Pour la mise a jour du champ ref par rapport designation'
varref = DLookup("[Ref]", "T_ Appareil", "[Designation]='" &
Forms![F_Entretien]![Lis_Designation].Value & "'")
End Sub

SOLUTION 2 trouve dans un livre et dans un forum

varref =DLookup ("[Ref]", "T_Appareil", "[Designation] = ' " &
[Lis_Designation]&" ' " )
Me! [Ref] = varref

Ils n'explique pas ou les mètres moi je l'ai mis dans le champ
"Designation"

Propriété, événement, après mise à jour, procédure événementielle et je ne
sais pas s'il faut faire quelle chose dans le champ "Ref"




Avatar
Eric
Merci de ta réponse,

J'essaye encore un peu avec cette solution
varref =DLookup ("[Ref]", "T_Appareil", "[Designation] = ' " &
[Lis_Designation]&" ' " )
Me! [Ref] = varref

et j'ai le curseur qui bascule sur le champ "Ref" mais il ne se passe rien
d'autre, il n'écrit rien. Je ne passe pas par une requête, je passe par la
table, je ne pense pas que mon problème vienne de la.

Merci
Avatar
Raymond [mvp]
il ne faut pas d'espaces après et avant les '
Me![Ref] = DLookup ("[Ref]", "T_Appareil", "[Designation] = '" &
[Lis_Designation] & "'" )

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Eric" a écrit dans le message de
news:
Merci de ta réponse,

J'essaye encore un peu avec cette solution
varref =DLookup ("[Ref]", "T_Appareil", "[Designation] = ' " &
[Lis_Designation]&" ' " )
Me! [Ref] = varref

et j'ai le curseur qui bascule sur le champ "Ref" mais il ne se passe rien
d'autre, il n'écrit rien. Je ne passe pas par une requête, je passe par la
table, je ne pense pas que mon problème vienne de la.

Merci




Avatar
Eric
Je te remercie ça marche,
Mais, il y a toujours un mais. Si dans la désignation j'ai deux fois le même
nom il me met automatiquement la dernière référence des deux produits et pas
la référence qui correspond a ce produit.

Merci de ton aide
Avatar
Raymond [mvp]
le DLookup ramène la première valeur trouvé au hasard dans le domaine, ce
qui veut dire que si tu as des désignation en doublon il faut rajouter un
critère de sélection qui fera que l'ensemble sera unique. la clé primaire de
la table T_Appareil fera très bien l'affaire.
Me![Ref] = DLookup ("[Ref]", "T_Appareil", "[Designation] = '" &
[Lis_Designation] & "'" & " And [laclé] = " & Me.laclé)

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Eric" a écrit dans le message de
news:
Je te remercie ça marche,
Mais, il y a toujours un mais. Si dans la désignation j'ai deux fois le
même

nom il me met automatiquement la dernière référence des deux produits et
pas

la référence qui correspond a ce produit.

Merci de ton aide




Avatar
Eric
Ca ne marche pas. J'ai un message d'erreur.

Erreur de compilation:
Membre de méthode ou de données introuvable.

Dommage, mais j'ais une solution simple je me demerde a mettre des
désignations différente.
Avatar
Raymond [mvp]
quelle est la fonction dlookup que tu as mis ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Eric" a écrit dans le message de
news:
Ca ne marche pas. J'ai un message d'erreur.

Erreur de compilation:
Membre de méthode ou de données introuvable.

Dommage, mais j'ais une solution simple je me demerde a mettre des
désignations différente.




Avatar
Eric
Private Sub Lis_Designation_AfterUpdate()
'Pour la mise a jour du champ ref par rapport designation
Me![Ref] = DLookup("[Ref]", "T_ Appareil", "[Designation] = '" &
[Lis_Designation] & "'" & " And [laclé] = " & Me.laclé)

Je n'ai plus le message d'erreur j'avais fais un copier coller de ton code
et j'ai un espace T_ et Appareil pour le nom de ma base.
Par contre il ne me met pas la valeur dans "Ref".

Et encore merci
Avatar
Raymond [mvp]
il faut remplacer laclé par ton nom de contrôle réel si non ça ne marche
pas; si la clé est alpha, mettre entre ' et si elle est numérique ne pas
mettre de '

à demain éventuellement.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Eric" a écrit dans le message de
news:
Private Sub Lis_Designation_AfterUpdate()
'Pour la mise a jour du champ ref par rapport designation
Me![Ref] = DLookup("[Ref]", "T_ Appareil", "[Designation] = '" &
[Lis_Designation] & "'" & " And [laclé] = " & Me.laclé)

Je n'ai plus le message d'erreur j'avais fais un copier coller de ton code
et j'ai un espace T_ et Appareil pour le nom de ma base.
Par contre il ne me met pas la valeur dans "Ref".

Et encore merci




Avatar
Eric
Je n'ai pas trop compris ta réponse, voila ce que me donne le code
Me![Ref] = DLookup("[Ref]", "T_ Appareil", "[Designation] = '" &
[Lis_Designation] & "'" & " And [Appareil ID] = " & Me.Appareil ID)

Appareil ID étant le nom de la colonne de ma table T_ Appareil contenant la
clé numérique

A demain, merci
1 2