Rafraichir un champs après modif d'un autre
Céline
-
JefEnSuz -
JefEnSuz -
Salut,
Je suis actuellement entrain de créer une base de données Access. Je solicite votre aide pour mon petit problème.
Je voudrais mettre automatique à jour un champ de contacts associé à une société si le texte du champs de société change.
J'attends avec impatience votre réponse. Merci a tous.
Je suis actuellement entrain de créer une base de données Access. Je solicite votre aide pour mon petit problème.
Je voudrais mettre automatique à jour un champ de contacts associé à une société si le texte du champs de société change.
J'attends avec impatience votre réponse. Merci a tous.
A voir également:
- Rafraichir un champs après modif d'un autre
- Un mot est caché dans l’en-tête du document. pour le trouver, modifiez sa couleur. - Forum Word
- Un mot est caché dans l'en-tête du document. pour le trouver, modifiez sa couleur. ✓ - Forum Word
- Ouvrez cette page. dans le code de la page, modifiez la couleur de fond de la classe .pix. un code de 4 chiffres doit apparaître dans la grille. lequel ? ✓ - Forum Programmation
- Word mettre à jour tous les champs ✓ - Forum Word
- Word : Mise à jour des champs - Forum Word
6 réponses
bonjour,
je gère cela en VBA. Exemple :
j'ai une table de sociétés appelée sociétés (avec un champ d'identification et un pour le nom).
Et une table de contacts appelée contacts (avec un champ d'identification, un champ pour faire le lien avec la table de sociétés et un pour le nom du contact).
Dans un formulaire, je place 2 zones de liste déroulante, 1 pour les sociétés (lstSocietes) et 1 pour les contacts (lstContacts).
Je charge dans lstSociétés la liste des sociétés (origine source = table/requête, contenu = sociétés, colonne liée = 1)
J'associe à l'évènement 'Après MAJ' de ce contrôle le code suivant :
'début du code---------------
dim strSQL as string
'je prends comme habitude de mettre à false par défaut la valeur
'des zones de liste. Je déteste gérer le vbNull
if (me.lstSocietes) = false then
exit sub
endif
strSQL = "SELECT contacts.id, contacts.nom FROM contacts WHERE (((contacts.societe)=" + str(me.lstSocietes)+")) ORDER BY contacts.nom;"
me.lstContacts.RowSource = strSQL
me.lstContacts.setFocus
'fin du code---------------
ainsi, dès que je change de société, la liste des contacts associée est disponible dans le second champ.
Ne pas oublier de paramétrer la propriété colonne liée de lstContacts à 1 pour récupérer le numéro identifiant du contact.
Tchus,
je gère cela en VBA. Exemple :
j'ai une table de sociétés appelée sociétés (avec un champ d'identification et un pour le nom).
Et une table de contacts appelée contacts (avec un champ d'identification, un champ pour faire le lien avec la table de sociétés et un pour le nom du contact).
Dans un formulaire, je place 2 zones de liste déroulante, 1 pour les sociétés (lstSocietes) et 1 pour les contacts (lstContacts).
Je charge dans lstSociétés la liste des sociétés (origine source = table/requête, contenu = sociétés, colonne liée = 1)
J'associe à l'évènement 'Après MAJ' de ce contrôle le code suivant :
'début du code---------------
dim strSQL as string
'je prends comme habitude de mettre à false par défaut la valeur
'des zones de liste. Je déteste gérer le vbNull
if (me.lstSocietes) = false then
exit sub
endif
strSQL = "SELECT contacts.id, contacts.nom FROM contacts WHERE (((contacts.societe)=" + str(me.lstSocietes)+")) ORDER BY contacts.nom;"
me.lstContacts.RowSource = strSQL
me.lstContacts.setFocus
'fin du code---------------
ainsi, dès que je change de société, la liste des contacts associée est disponible dans le second champ.
Ne pas oublier de paramétrer la propriété colonne liée de lstContacts à 1 pour récupérer le numéro identifiant du contact.
Tchus,
Bonjour,
Je cherche à faire un truc du même style sauf que ma liste déroulant est le resultat d'une requete utilisant l identifiant present dans le meme formulaire que ma liste. Mon problème c'est que je n arrive pas à ce que ma liste soit regénérer à chaque fois que je change de valeur d'identifiant (par navigation dans mon formulaire) merci d avance.
Julaie.
Je cherche à faire un truc du même style sauf que ma liste déroulant est le resultat d'une requete utilisant l identifiant present dans le meme formulaire que ma liste. Mon problème c'est que je n arrive pas à ce que ma liste soit regénérer à chaque fois que je change de valeur d'identifiant (par navigation dans mon formulaire) merci d avance.
Julaie.
Salut,
J'ai rentré le code que tu m'as donner en remplacent les noms de tables et les noms de champs par ce que j'utilise dans ma base de donnée.
Losque que je souhaites changer le champs contact, la fenetre du code s'ouvre en idiquant une erreur sur le code 'AfficheFenêtreBaseDeDonnées_Click()'. Qu'est ce que cela peut signifier?
Merci de votre réponse.
J'ai rentré le code que tu m'as donner en remplacent les noms de tables et les noms de champs par ce que j'utilise dans ma base de donnée.
Losque que je souhaites changer le champs contact, la fenetre du code s'ouvre en idiquant une erreur sur le code 'AfficheFenêtreBaseDeDonnées_Click()'. Qu'est ce que cela peut signifier?
Merci de votre réponse.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
J'ai réussi a faire ce que je voulais mais j'ai encore un petit problème sur ce sujet.
Car cela marche tres bien sur le premier enregistrement, mais pas dans les suivants. Le champs nom reste identique pour tout les enregistrement a celui du premier. J'ai beau changer le champs société, rien ne se passe sur le champs nom.
J'attend une réponse rapide, STP, je desespere.
Céline
J'ai réussi a faire ce que je voulais mais j'ai encore un petit problème sur ce sujet.
Car cela marche tres bien sur le premier enregistrement, mais pas dans les suivants. Le champs nom reste identique pour tout les enregistrement a celui du premier. J'ai beau changer le champs société, rien ne se passe sur le champs nom.
J'attend une réponse rapide, STP, je desespere.
Céline
Pour le passage d'un enregistrement à un autre (dans un formulaire avec table liée), normalement, tout devrait se mettre à jour automatiquement.
Si ce n'est pas le cas, pour forcer la mise à jour des contacts, place l'appel de la procédure après mise à jour sociétés (sociétés_AfterUpdate ?) dans la procédure Form_Open.
Si ce n'est pas le cas, pour forcer la mise à jour des contacts, place l'appel de la procédure après mise à jour sociétés (sociétés_AfterUpdate ?) dans la procédure Form_Open.