OVH Cloud OVH Cloud

mettre l'enregitrement courant en critère d'une requête

7 réponses
Avatar
pcvabene
Pour une association
J'ai une table des adhérents et une table des cotisations (historique),
liées par le numéro d'adhérent...
J'ai un état qui édite les cartes d'adhérents, à partir d'une requête.
Je voudrais, depuis le formulaire "adhérents" cliquer sur un bouton qui
lance l'état carte d'adhérents... mais uniquement pour l'enregistrement
courant.

Je sais faire des macros simples, mais presque rien en VBA...
Ça devrait être simple (je le faisais très bien avec FoxPro ou Dbase !).

Merci de votre aide.

7 réponses

Avatar
Eric
Bonsoir,

Sur le bouton qui doit lancer l'état, sur l'évènement Clic, mettre une
clause where sur la demande d'ouverture:
DoCmd.OpenReport "NomEtat", , , ""NumAdherent=" & Me!NumAdherent
L'état étant basé sur la requête, la demande d'ouverture avec une clause
where limite l'impression au seul adhérent que tu visualises sur ton
formulaire.
Si le numéro adhérent est alphanumérique :
DoCmd.OpenReport "NomEtat", , , ""NumAdherent='" & Me!NumAdherent &"'"
(Adapter les noms d'état et des champs)

Pour une association
J'ai une table des adhérents et une table des cotisations (historique),
liées par le numéro d'adhérent...
J'ai un état qui édite les cartes d'adhérents, à partir d'une requête.
Je voudrais, depuis le formulaire "adhérents" cliquer sur un bouton qui
lance l'état carte d'adhérents... mais uniquement pour l'enregistrement
courant.

Je sais faire des macros simples, mais presque rien en VBA...
Ça devrait être simple (je le faisais très bien avec FoxPro ou Dbase !).

Merci de votre aide.



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

Avatar
pcvabene
Merci, et mes excuses pour la lecture tardive de ta réponse... J'avais coché
la case "m'avertir", mais...
Le code que tu m'indiques me sempble à ma protée, je vais immédiatement le
tester.
Je te tiens au courant.


Bonsoir,

Sur le bouton qui doit lancer l'état, sur l'évènement Clic, mettre une
clause where sur la demande d'ouverture:
DoCmd.OpenReport "NomEtat", , , ""NumAdherent=" & Me!NumAdherent
L'état étant basé sur la requête, la demande d'ouverture avec une clause
where limite l'impression au seul adhérent que tu visualises sur ton
formulaire.
Si le numéro adhérent est alphanumérique :
DoCmd.OpenReport "NomEtat", , , ""NumAdherent='" & Me!NumAdherent &"'"
(Adapter les noms d'état et des champs)

Pour une association
J'ai une table des adhérents et une table des cotisations (historique),
liées par le numéro d'adhérent...
J'ai un état qui édite les cartes d'adhérents, à partir d'une requête.
Je voudrais, depuis le formulaire "adhérents" cliquer sur un bouton qui
lance l'état carte d'adhérents... mais uniquement pour l'enregistrement
courant.

Je sais faire des macros simples, mais presque rien en VBA...
Ça devrait être simple (je le faisais très bien avec FoxPro ou Dbase !).

Merci de votre aide.



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




Avatar
pcvabene
je reviens, car...
Je dois faire des erreurs dans la position des guilletments.
La table des addérents s'appelle adhérents
Le champ qui contient le numéro d'adhérent s'appelle num (numérique, entier)
L'état s'appelle cartaderent et access l'a mis automatiquement dans une
varaible appelée stDocname
J'ai ajouté acPreview pour économiser mon papier !
DoCmd.OpenReport stDocName, acPreview, , "Num" = Me!Num
Merci pour la suite.
PS Est-ce qu'on ne pourrait pas faire quelque chose avec CurentRecord ?


Merci, et mes excuses pour la lecture tardive de ta réponse... J'avais coché
la case "m'avertir", mais...
Le code que tu m'indiques me sempble à ma portée, je vais immédiatement le
tester.
Je te tiens au courant.


Bonsoir,

Sur le bouton qui doit lancer l'état, sur l'évènement Clic, mettre une
clause where sur la demande d'ouverture:
DoCmd.OpenReport "NomEtat", , , ""NumAdherent=" & Me!NumAdherent
L'état étant basé sur la requête, la demande d'ouverture avec une clause
where limite l'impression au seul adhérent que tu visualises sur ton
formulaire.
Si le numéro adhérent est alphanumérique :
DoCmd.OpenReport "NomEtat", , , ""NumAdherent='" & Me!NumAdherent &"'"
(Adapter les noms d'état et des champs)

Pour une association
J'ai une table des adhérents et une table des cotisations (historique),
liées par le numéro d'adhérent...
J'ai un état qui édite les cartes d'adhérents, à partir d'une requête.
Je voudrais, depuis le formulaire "adhérents" cliquer sur un bouton qui
lance l'état carte d'adhérents... mais uniquement pour l'enregistrement
courant.

Je sais faire des macros simples, mais presque rien en VBA...
Ça devrait être simple (je le faisais très bien avec FoxPro ou Dbase !).

Merci de votre aide.



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






Avatar
Raymond [mvp]
Bonjour.

essaie ceci:

DoCmd.OpenReport stDocName, acPreview, , "[Num] =" & Me!Num

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum
Formez-vous en ligne grâce aux Webcasts Microsoft Technet :
http://www.microsoft.com/france/technet/seminaires/webcasts.mspx


"pcvabene" a écrit dans le message de
news:
je reviens, car...
Je dois faire des erreurs dans la position des guilletments.
La table des addérents s'appelle adhérents
Le champ qui contient le numéro d'adhérent s'appelle num (numérique,
entier)
L'état s'appelle cartaderent et access l'a mis automatiquement dans une
varaible appelée stDocname
J'ai ajouté acPreview pour économiser mon papier !
DoCmd.OpenReport stDocName, acPreview, , "Num" = Me!Num
Merci pour la suite.
PS Est-ce qu'on ne pourrait pas faire quelque chose avec CurentRecord ?



Avatar
pcvabene
Merci...
Mais hélas, j'ai encore toute ma liste d'adhérents...
On va bien y arriver !


Bonjour.

essaie ceci:

DoCmd.OpenReport stDocName, acPreview, , "[Num] =" & Me!Num

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum
Formez-vous en ligne grâce aux Webcasts Microsoft Technet :
http://www.microsoft.com/france/technet/seminaires/webcasts.mspx


"pcvabene" a écrit dans le message de
news:
je reviens, car...
Je dois faire des erreurs dans la position des guilletments.
La table des addérents s'appelle adhérents
Le champ qui contient le numéro d'adhérent s'appelle num (numérique,
entier)
L'état s'appelle cartaderent et access l'a mis automatiquement dans une
varaible appelée stDocname
J'ai ajouté acPreview pour économiser mon papier !
DoCmd.OpenReport stDocName, acPreview, , "Num" = Me!Num
Merci pour la suite.
PS Est-ce qu'on ne pourrait pas faire quelque chose avec CurentRecord ?








Avatar
Raymond [mvp]
as-tu pensé à placer un:
DoCmd.RunCommand acCmdSaveRecord
avant de lancer ton état ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum
Formez-vous en ligne grâce aux Webcasts Microsoft Technet :
http://www.microsoft.com/france/technet/seminaires/webcasts.mspx


"pcvabene" a écrit dans le message de
news:
Merci...
Mais hélas, j'ai encore toute ma liste d'adhérents...
On va bien y arriver !



Avatar
Eric
Bonsoir,

Effectivement il y avait un " en trop devant "NumAdherent=" &
Me!NumAdherent.

La syntaxe est :
DoCmd.OpenReport stDocName, acPreview, , "Num =" & Me!Num
ou comme te l'indique Raymond :
DoCmd.OpenReport stDocName, acPreview, , "[Num] =" & Me!Num

Le fait que tu n'aies pas la carte adhérent pour le bon adhérent me
surprend, sous réserve que l'enregistrement ait été sauvegardé.
CurrentRecord ne t'apportera rien car il donne le rang de
l'enregistrement courant et non le numéro de l'adhérent. Cela est
d'autant plus vrai si les numéros d'adhérent ont des trous.

je reviens, car...
Je dois faire des erreurs dans la position des guilletments.
La table des addérents s'appelle adhérents
Le champ qui contient le numéro d'adhérent s'appelle num (numérique, entier)
L'état s'appelle cartaderent et access l'a mis automatiquement dans une
varaible appelée stDocname
J'ai ajouté acPreview pour économiser mon papier !
DoCmd.OpenReport stDocName, acPreview, , "Num" = Me!Num
Merci pour la suite.
PS Est-ce qu'on ne pourrait pas faire quelque chose avec CurentRecord ?




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