Access pb de nbr de page lors de l'impression

[Résolu/Fermé]
Signaler
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
-
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
-
Bonjour,

Voila j'ai un petit problme vous allez surment me dire que c'est simple mais je ne comprends pas et je n'arrive pas à y remédier.

Voila, en gros j'ai un état avec un sous-état qui présente un emprunt de divers matériel pour un client. Le problème est que quand je veux l'imprimer il me l'imprime en autant de page qu'il y a de matériel empruntés pourtant ils sont tous marqués sur toutes les pages. Je ne comprends pas dui tout pourquoi !!!

Si vous avez des idées pour m'aider je suis preneuse !!!

Merci d'avance

14 réponses

Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
Pour ça il faudrait que tu nous dises ce qu'il y a dans la requête alimentant le formulaire, mais je pense que je le sais déjà.

C'est vraisemblablement ton sous-état qui met le bazar. Généralement, dans les états, on s'en tire bien mieux avec un regroupement.

Garde la même reque^te, mais crée l'état en faisant un regroupement par client, à mon avis ça sera nettement mieux.
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
26
bonjour,

mais je ne sai pas cmt faire un regroupement !!
il fau que je recommence mon état en entier ??
mais je veu imprimer un page par client mais une par une pas toute en même temps !!
est-ce possible ?? et aussi d'en imprimer en 4exemplaire en même temps??

Merci
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
Tout ça est possible, mais je ne peux pas faire un cours complet d'Access par correspondance.

Alors dis moi déjà comment tu as créé cet état, et je t'aiderai pour la suite. Je voudrais par exemple la requête sur laquelle il est basé.
Mais à vue de pif oui, il vaut mieux tout reprendre.
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
26
alors cet état est basé sur la requête suivante:

SELECT Detail_Emprunt.N°Emprunt, Detail_Emprunt.DateCde, Detail_Emprunt.LibManif, Detail_Emprunt.LieuManif, Detail_Emprunt.N°Club, Detail_Emprunt.Description, Detail_Emprunt.Autres, Detail_Emprunt.N°Emp, Detail_Emprunt.N°Pers, Detail_Emprunt.DateDeb, [EmpruntM].N°Mat, Materiel.LibMat, Materiel.Caractéristiques, Empunteur.NomE, Empunteur.PrenomE, Empunteur.TelE, Detail_Emprunt.DateFin, Club.N°Club, Club.NomClub, Personnel.N°Pers, Personnel.NomPers, Personnel.PrenomPers, [ReqMat].N°Mat
FROM (Personnel INNER JOIN Liste_Personnel ON Personnel.N°Pers=Liste_Personnel.N°Pers) INNER JOIN ((((Materiel INNER JOIN Liste_Materiel ON Materiel.N°Mat=Liste_Materiel.N°Mat) INNER JOIN MatEmpuntés ON Materiel.N°Mat=[MatEmpuntés].N°Mat) INNER JOIN ReqMat ON Materiel.N°Mat=[ReqMat].N°Mat) INNER JOIN (Empunteur INNER JOIN (((Club INNER JOIN Liste_Club ON Club.N°Club=Liste_Club.N°Club) INNER JOIN Detail_Emprunt ON Club.N°Club=Detail_Emprunt.N°Club) INNER JOIN EmpruntM ON Detail_Emprunt.N°Emprunt=[EmpruntM].N°EmpruntA) ON Empunteur.N°Emp=Detail_Emprunt.N°Emp) ON Materiel.N°Mat=[EmpruntM].N°Mat) ON Personnel.N°Pers=Detail_Emprunt.N°Pers
WHERE (((Club.N°Club)=formulaire!EmpruntMat1!N°Club) And ((Personnel.N°Pers)=formulaire!EmpruntMat1!N°Pers)) Or (((Detail_Emprunt.N°Emprunt)=Formulaires!EmpruntMat1!N°Emprunt));


un peu compliqué !!!! (DESOLE) mais en fète j'ai choisi mes champs un par un vu que je n'y arivait pas

et la requète du sous-état:

SELECT [ReqMat].N°Mat, [ReqMat].LibMat, [ReqMat].Caractéristiques, [ReqMat].N°EmpruntA
FROM ReqMat;

Mais en gros pour l'état principal "Fiche_Emprunt" c'est les même champs que mon formulaire principal "EmpruntMat1"
et le sous-état "Fiche_Emprunt2" les même champs que le sous-formulaire "EmpruntMat2"

voila
j'espere que sa t'aidera a comprendre mon problème
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
Bon, j'ai pas forcément tout compris, par exemple pourquoi tu fais figurer les tables Liste personnel et Liste matériel alors que je n'ai vu aucun champ issu de ces tables dans la requête. Mais c'est pas très important.

Je ne sais pas comment tu crées tes états? Si tu utilises les Assistants (Ce que, perso, je recommande pour les formulaires et les états) tu interviens au moment oùil te demande si tu veux ajouter un niveau de regroupement.
Si tu les fais "à la main", une fois ton état créé, tu cliques sur un bouton de la barre d'outils qui s'appelle Trier et grouper, et tu y mets le champ qui doit servir pour le regroupement.
Par exemple, Client.

Et si tu veux une liste des tous les matériels empruntés, même en plusieurs fois, tu fais un deuxième regroupement sur le numéro d'emprunt. Tu vois le principe?

Et ensite, pour n'imprimer qu'une fiche à la fois, tu mets un critère, soit sur le client, soit sur le N°Emprunt, comme tu l'as fait dans la requête que tu m'as envoyée.

Pour l'impression de ton état en 4 exemplaires, après l'avoir ouvert, tu écris
DoCmd.PrintOut acPrintAll, , , acHigh, 4, False

----

Pourquoi se compliquer la vie à faire simple, quand c'est si simple de faire compliqué?
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
26
Bonjour,

- pour le problème des champs de la "table" ListeMatéreil et ListePersonnel c'est normal parce que ce n'est pas des tables mas des requêtes.

- Et oui je créé mes états (et formulaires) avec l'assistant mais j'ai mis un regroupement par emprunt et par adhérent et par matériel. Donc c'est pour ça que je ne comprend pas pouquoi ça ne marche pas !!

- Et je ne veux pas de liste des matériel empruntés par tous les adhérents mais pour CHAQUE adhérents.?

- Et je te remerci pour le code pour l'impression en 4 fois mais je voulai savoir je doit mettre ce bout de code à la place de " DoCmd.OpenReport stDocName, acNormal " ??

Et donc ça me donne le code suivant? :

Private Sub BtnImprimer_Click()
On Error GoTo Err_BtnImprimer_Click

Dim stDocName As String

stDocName = "Fiche_Emprunt"
DoCmd.OpenReport stDocName, acNormal
DoCmd.PrintOut acPrintAll, , , acHigh, 4, False
Exit_BtnImprimer_Click:
Exit Sub

Err_BtnImprimer_Click:
MsgBox Err.Description
Resume Exit_BtnImprimer_Click

End Sub


- Et si j'imprime le formualire cela ne sera pas plus simple que de faire un état ou ce n'est pas la même chose?

Merci
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
26 >
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010

re,

j'ai tout essayé pour les groupements et ça m'affiche tous les emprunts peut-être trié mais moi je veux qu'UN emprunt par feuille et surtout qu'il me sorte que celui que je veux en fonction de l'emprunt ou de l'emprunteur (ça revient à la même chose vu qu'UN emprunt ne correspond qu'à UN adhérent)

Voila merci
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
c4EST AU NIVEAU DE TON wher QUE JE M4INTERROGE/

WHERE (((Club.N°Club)=formulaire!EmpruntMat1!N°Club) And ((Personnel.N°Pers)=formulaire!EmpruntMat1!N°Pers)) Or (((Detail_Emprunt.N°Emprunt)=Formulaires!EmpruntMat1!N°Emprunt));

A quoi sert la partie en gras si tu veux l'emprunt du formulaire??? Access risque de ne pas comprendre...
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
26
ba c'est vrai que c'est 2champs me pose problème mais c'est vrai que je n'y pas pris beaucoup attention !!
en faite a chaque fois que je lance mon formaulaire en mode formaulaire il me demande de taper dans une boite de dialogue le n° de club et ensuite celui du personnel !!

donc our répondre a ta question ba je ne sait pas trop pourquoi je l'ai mis dans le WHERE et pa dans les champs normal j'ai peut-être fait ça parce que c'était des liste déroulante dans le formulaire je siat pas!! (ça fait lontemps que je l'ai fait!)

Donc je dois les mettre dans le SELECT normal ??
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
Et en les virant purement et simplement? A priori ils ne servent à rien.
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
26
ba je veu bien les virer mais le truc c'est que j'en est besoin dans mon état enfin pas du N° propre mais des libéllé avec !!
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
Tu les vires juste du WHERE.

Si ton état fait référence à un emprunt puisque tu demandes
WHERE (Detail_Emprunt.N°Emprunt)=Formulaires!EmpruntMat1!N°Emprunt;

tu n'as pas besoin de rajouter les autres champs dans le WHERE puisqu'à un emprunt correspondent déjà un Club et une personne.
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
26
ok dak c'est fait
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532 >
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010

Et ça fonctionne, ou quoi?
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
26
ba ouè sa me met plus les boite de dialogue mais bon ça me mat toujour autan de page qu'avant c-a-d autan de page qu'il y a de matériel emprunté
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
26
fo ke ji aille je revien ver 13h30 peu tètre a tt a leur
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
Est ce qu'il peut y avoir plusieurs matériels pour un seul emprunt?

Si oui, il fait sans doute revoir la structure de l'état. Mets le en création et dis moi toutes les sections qu'il contient (En tête d'état, en tête de page, en-tête de groupe...) et les champs qu'il y a dedans. Je sais c'est fastidieux mais sinon je ne peux pas t'aider!

Regarde aussi s'il y a des sauts de page, on ne sait jamais...
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
26
oui bien sur il peu y avoir plusieur matériel pour un emprunt.

Etat principal

En-tête d'état
(titre):Fiche Emprunt de Matériel

En-tête de page

Detail
N°emprunt: N°Emprunt
Date de la commande: DateCde
Manifestation: =Formulaires!EmpruntMat1!LibManif
Lieu: =Formulaires!EmpruntMat1!LieuManif
Autres: =Formulaires!EmpruntMat1!Autres
Club: =Formulaires!EmpruntMat1!N°Club
Personnel responsable: =Formulaires!EmpruntMat1!N°Pers (liste déroulante ou jai mis 2colonnes avec la colonne du numéro caché et ou on voi donc apparaitre que le nom de la personne)
Prenom personnel: PrenomPers
Date début: =Formulaires!EmpruntMat1!DateDeb
Date retour: =Formulaires!EmpruntMat1!DateFin
Nom: NomE (Nom de l'emprunteur)
Prénom: PrenomE (prénom de l'emprunteur)
Tel: TelE (téléphone de l'emprunteur)
Matériel emprunter: étiquette pour le sous état

Sous état:

En-tête d'état
Libellé matériel: étiquette
Caractéristiques: étiquette

En-tête de page

Détail
LibMat: (sachant que ce ne sont pas les matériaux qui viennent directement de la table MATERIEL mais de la requête Req que je t'ai donné précédemment)
Caractéristiques (idem)
Pied de page(sous-état)

<gars>Pied d'état</gars> (sous-état)

Pied de page (état principal)
date du jour: =Maintenant()

Pied d'état (état principal)
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
26
et j'ai regardé pour les saut de page il n'y a pas l'air d'en avoir en tout cas moi je n'en est pas mis !!
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
Oh là, mais tu as zappé ce que je te disais au post 2!!!!!!!!

Vire le sous-état, et fais un regroupement par emprunt.

Je voudrais pas avoir l'air pénible, mais on est au poste 20 et tu n'as toujours pas fait ce que j'ai dit 17 posts plus haut!!!

Je sais pas si je donne l'impression d'avoir tant que ça de temps à perdre, mais en fait, non, pas du touit.
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
26
mais je t'ai dit que je 'avai fait mais ça ne marchait pas donc je l'ai enlevé et vu qe sa ne me faisait pas du tout se que je cherchait ba voila
bref je vais le refaire sa prend 3sec et je te renvoi les BON truc
désolé
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
26
En-tête d'état
(titre):Fiche Emprunt de Matériel

En-tête de page

En-tête de groupe N°Emprunt
N°emprunt: N°Emprunt
Date de la commande: DateCde
Manifestation: =Formulaires!EmpruntMat1!LibManif
Lieu: =Formulaires!EmpruntMat1!LieuManif
Autres: =Formulaires!EmpruntMat1!Autres
Club: =Formulaires!EmpruntMat1!N°Club
Personnel responsable: =Formulaires!EmpruntMat1!N°Pers (liste déroulante ou jai mis 2colonnes avec la colonne du numéro caché et ou on voi donc apparaitre que le nom de la personne)
Prenom personnel: PrenomPers
Date début: =Formulaires!EmpruntMat1!DateDeb
Date retour: =Formulaires!EmpruntMat1!DateFin
Nom: NomE (Nom de l'emprunteur)
Prénom: PrenomE (prénom de l'emprunteur)
Tel: TelE (téléphone de l'emprunteur)
Matériel: étiquette
Libellé matériel: étiquette
caractéristique: étiquette


Detail
N°Mat
LibMat
caractéristiques

Pied de page
date du jour: =Maintenant()

Pied d'état
Messages postés
1712
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
16 janvier 2020
532
Mmmmmh... je comprends pas trop.

Pourquoi certains champs viennent-ils d'une table et d'autres du formulaire???

Bâtis déjà une requête, où tu prends les champs qui t'intéressent, et où tu rajoutes le critère Forms!NomFormulaire!N°Emprunt.

Là, c'est normal que ça ne fonctionne pas!!! Tu lui demandes de récupérer TOUS les emprunts, mais d'afficher la manif, le lieu, les dates etc du formulaire!!! C'est pas du tout logique. Et comme Access est bête et discipliné, ils t'affiche TOUS tes emprunts, avec les infos de celui présent dans le formulaire, sans se poser de questions...
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
26
Aaah ok, j'ai compri !! bon ba je me met a çaq alor et je te dit le résultat
Merci
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
26 >
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010

c bon !!!!!!
merci beaucoup ça marche !!!
merci beaucoup é encore !!!
Messages postés
133
Date d'inscription
mardi 3 juin 2008
Statut
Membre
Dernière intervention
17 février 2010
26
Excuse moi encore mais j'ai une dernière question, tu m'a dit de mettre DoCmd.PrintOut acPrintAll, , , acHigh, 4, False pour imprimer en 4 fois mais je dois le mettre ou ? sur un bouton du formulaire ?
et est-ce que je doit enlevé c e morceau de code ala place: DoCmd.OpenReport stDocName, acNormal ??
encore merci