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

Pb de Macro

9 réponses
Avatar
Atoutage
Bonjour
Voici mon problème concernant les macros :
J’ai une table client avec comme champs :
Ref_client (Num auto) ;
Nom_Client (texte) ;
Adresse_Client (texte);
Historique_client (Mémo)

Plusieurs autres tables concernant les commandes, et les produits…

J’ai un premier formulaire pour la saisie des infos clients le champ «
Historique étant l’ensemble des Problèmes rencontrées avec ceux-ci.

Dans mon formulaire « Bon de commande » je souhaite intégrer un bouton qui
me fasse apparaître dans une fenêtre l’historique du client pour la commande
est en cours.

J’ai donc créé un formulaire « Historique client » avec comme contrôles le
nom du client et son historique.

J’ai créé un bouton Historique dans mon formulaire « Bon de commande ». et
tenté de créer une macro qui m’ouvre le formulaire historique du client pour
qui la commande est établie.
Le problème est que je n’arrive pas à ouvrir le formulaire historique du
client pour qui la commande est faite (C'est toujours le premier
enregistrement qui apparait).

9 réponses

Avatar
ze Titi
Bonjour Atoutage

Baaah, une macro... ;o)
Dans ton cas, il te suffit de spécifier une condition "Where" dans ta
macro qui correspondra au champ dans ton formulaire qui contient
l'identifiant du client pour lequel tu veux afficher l'historique.
Attention: cette idée n'est valable que si ton formulaire "Historique
client" est basé sur la table qui contient les enregistrements de tous
les clients (mais vue la façon dont tu as posé ta question, je suppose
que c'est le cas...)

Dis-nous !

Dans ton message
Bonjour
Voici mon problème concernant les macros :
J’ai une table client avec comme champs :
Ref_client (Num auto) ;
Nom_Client (texte) ;
Adresse_Client (texte);
Historique_client (Mémo)

Plusieurs autres tables concernant les commandes, et les produits…

J’ai un premier formulaire pour la saisie des infos clients le champ «
Historique étant l’ensemble des Problèmes rencontrées avec ceux-ci.

Dans mon formulaire « Bon de commande » je souhaite intégrer un bouton qui
me fasse apparaître dans une fenêtre l’historique du client pour la commande
est en cours.

J’ai donc créé un formulaire « Historique client » avec comme contrôles le
nom du client et son historique.

J’ai créé un bouton Historique dans mon formulaire « Bon de commande ». et
tenté de créer une macro qui m’ouvre le formulaire historique du client pour
qui la commande est établie.
Le problème est que je n’arrive pas à ouvrir le formulaire historique du
client pour qui la commande est faite (C'est toujours le premier
enregistrement qui apparait).


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info

Avatar
Atoutage
Merci ZE TITI

Mais ça marche pas j'ai utilisé l'aide d'access :

Pour ouvrir un formulaire et limiter ses enregistrements à ceux spécifiés
par la valeur d'un contrôle sur un autre formulaire, utilisez l'expression
suivante :

[nom_champ] = Forms![nom_formulaire]![nom_contrôle sur un autre formulaire]


Traduction pour moi : [Nom]=[Formulaires]![Commande2]![Nom]


Bref Ci joint ma BDD
Si tu peux m'aider, c'est certainement dans la conception même de la base
qu'il doit y avoir une boulette.

http://cjoint.com/?dfqAXXWIwf

Merci



Avatar
Willi2004
Salut Atoutage
La condition WHERE dans ta macro "Historique" semble correcte. Pourtant ça
ne marche pas et je ne saurais te dire pourquoi.
Par contre lorsque tu utilises le code, ça marche cette fois.
Vois ici:
http://cjoint.com/?dftc3yqUe5


"Atoutage" a écrit dans le message de
news:
Merci ZE TITI

Mais ça marche pas j'ai utilisé l'aide d'access :

Pour ouvrir un formulaire et limiter ses enregistrements à ceux spécifiés
par la valeur d'un contrôle sur un autre formulaire, utilisez l'expression
suivante :

[nom_champ] = Forms![nom_formulaire]![nom_contrôle sur un autre
formulaire]


Traduction pour moi : [Nom]=[Formulaires]![Commande2]![Nom]


Bref Ci joint ma BDD
Si tu peux m'aider, c'est certainement dans la conception même de la base
qu'il doit y avoir une boulette.

http://cjoint.com/?dfqAXXWIwf

Merci





Avatar
Atoutage
Merci Willi2004 effectivement avec le code cela fonctionne, mais sincèrement
n'y connaissant rien en V B, je suis incapable de comprendre la logique de
ton travail, mais j'y arriverai un jour.
Sinon qui peut me dire pourquoi ma condition WHERE ne fonctionne pas ?


http://cjoint.com/?dfqAXXWIwf

Merci
Avatar
Willi2004
C'est encore moi!
Je crois que je suis à présent en mesure de te dire pourquoi ta condition
WHERE ne marche pas.
En effet "Name" est un mot réservé Access.
Par exemple pour tout formulaire, "Me.Name" fait référence au nom du
formulaire.
La traduction francaise de "Name" étant "Nom", Access fait un amalgame
lorsque l'un des champs de ton formulaire "Commande2" est désigné par "Nom".
J'ai renommé ce champs en rajoutant un "s" à "Nom" et cette fois la macro
fonctionne.
Vois cela ici:
http://cjoint.com/?dgbHgPcaDf


"Atoutage" a écrit dans le message de
news:
Merci Willi2004 effectivement avec le code cela fonctionne, mais
sincèrement
n'y connaissant rien en V B, je suis incapable de comprendre la logique de
ton travail, mais j'y arriverai un jour.
Sinon qui peut me dire pourquoi ma condition WHERE ne fonctionne pas ?


http://cjoint.com/?dfqAXXWIwf

Merci



Avatar
Eric
Bonjour,

Si je peux m'immiscer (je n'ai pas regardé ta bd) :
Nom est un mot réservé donc à ne pas utiliser. NomClient est tout autant
significatif.
ze Titi t'a donné la solution: il te faut utiliser l'identifiant et non
le nom du client car que se passerait-il si plusieurs clients se nomment
Martin ?
En imaginant que l'identifiant de la table Client est IdClient (clé
primaire), dans la table Commande, IdClient est présent en tant que clé
étrangère (car relation de 1 à plusieurs)
L'argument Where de ta macro devient:
[IdClient]=Forms![Commande2]!IdClient
La partie de gauche de l'affectation représente l'IdClient de la table
client sous-jacente au formulaire Historique, la partie droite
l'IdClient du formulaire Commande2 (présent dans la table/requête source
du formulaire Commande2 mais pas forcémment affiché).
(NB: ici l'IdClient est supposé numérique)

Merci Willi2004 effectivement avec le code cela fonctionne, mais sincèrement
n'y connaissant rien en V B, je suis incapable de comprendre la logique de
ton travail, mais j'y arriverai un jour.
Sinon qui peut me dire pourquoi ma condition WHERE ne fonctionne pas ?


http://cjoint.com/?dfqAXXWIwf

Merci



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Atoutage
Merci Willi2004
En effet cela fonctionne
Existe il une liste de mot réservé Access pour éviter ce genre de problème ?

Merci encore
Avatar
Tisane
Bonjour "Atoutage",

Existe il une liste de mot réservé Access pour éviter ce genre de problème
?


Je copie la réponse suivante donnée il y a 3 jours :

"Liste de mots réservés dans Access 2002 et Access 2003"
http://support.microsoft.com/kb/286335/fr
"Liste de mots réservés dans Jet 4.0"
http://support.microsoft.com/kb/248738/

J'évite également les libellés des propriétés des champs.

--
Tisane

Avatar
Atoutage
Merci Eric j'ai compris mon erreur.
Bonne journée et à bientôt