Remplir un champ sur formulaire en fonction d'un autre champ [Résolu/Fermé]

Signaler
Messages postés
220
Date d'inscription
lundi 27 avril 2009
Statut
Membre
Dernière intervention
16 janvier 2020
-
Messages postés
220
Date d'inscription
lundi 27 avril 2009
Statut
Membre
Dernière intervention
16 janvier 2020
-
Bonjour,

Je travaille sur une base de données gérant l'inventaire de produits.

Sur mon formulaire, j'ai un champ "numéro_d_article" et un champ "Désignation".
Je voudrais que le remplissage du champ "Désignation" se fasse automatiquement en fonction du numéro d'article entrée.

Pour ce faire j'ai créé un nouvelle table "Composant" ou je trace tous mes composants avec dans le 1er champ le numéro d'article et dans mon 2e champ la désignation.

Maintenant dans la macro de mon formulaire j'ai mis :

Private Sub Numéro_d_article_Exit(Cancel As Integer)

Dim rst As DAO.Recordset
Dim sSQL As String

num = CStr(Numéro_d_article.Value)

sSQL = "SELECT Designation FROM Composants WHERE Numero_d_article='" + num + "'"

Set rst = CurrentDb.OpenRecordset(sSQL, dbOpenForwardOnly, dbReadOnly)

End Sub


Erreur retournée :

"Erreur d'exécution '3464'
Type de donnée incompatible dans l'expression du critère"
Sur la ligne : Set rst ...

Merci,

GDX

2 réponses

Messages postés
23761
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
2 888
Salut,

si "Numero_d_article" de la table Composants est de type numérique, il ne faut pas l'enquoter (dans aucune requête).

Ceci dit, ton code ne fera rien d'autre que préparer un recordset, que tu n'utilises pas... Tu serais plus satisfait avec DlookUp()...

A+ blux
 "Les cons, ça ose tout.  
C'est même à ça qu'on les reconnait"
Messages postés
220
Date d'inscription
lundi 27 avril 2009
Statut
Membre
Dernière intervention
16 janvier 2020
7
Merci,

Oui c'était ça l'erreur, juste une mauvaise définition de type.

La solution : Mettre Numero_d_article" de la table "Composant" en type texte.

ou

Laisser le type en numérique et enlever les ' ' lors de la définition de la variable sSQL.

Merci,

GDX