Pb de Macro

Le
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).
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ze Titi
Le #6195491
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

Atoutage
Le #6195441
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



Willi2004
Le #6195301
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" 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





Atoutage
Le #6195181
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
Willi2004
Le #6195171
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" 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



Eric
Le #6195081
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

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

Merci encore
Tisane
Le #6195051
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

Atoutage
Le #6194991
Merci Eric j'ai compris mon erreur.
Bonne journée et à bientôt
Publicité
Poster une réponse
Anonyme