Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Contribuez
Contribuez Access : Vos contributions. Postez ici vos codes sources, conseils, astuces et autres propositions. Ce forum n'est pas un forum technique mais destiné aux contributions pour www.developpez.com
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/03/2006, 11h06   #1
Membre habitué
 
Inscription : septembre 2005
Messages : 158
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 158
Points : 140
Points : 140
Par défaut imprimer formulaire mode paysage

bonjour bonjour,

je suis en train de m'amuser comme un petit fou avec les joies de l'impression sous Access.

Le formulaire que je veux imprimer est créé dynamiquement, imprimé et aussitôt supprimé tout aussi dynamiquement.
J'ai trouvé sur la FAQ ce bout de code à ajouter pour définir le mode Paysage et jusque là ça marche! (ne faites pas attention au lettres dans le codes, je travaille en allemand...)
Code :
1
2
3
4
5
6
SendKeys "{f10}"
SendKeys "{D}"
SendKeys "{i}"
SendKeys "{right}"
SendKeys "%{f}"
SendKeys "{enter}"
Avant de sauvegarder mon formulaire j'insert le code ci-dessus et quand je regarde dans le menu/fichier/Mise en Page... j'ai bien le mode Paysage de selectionné.

Ensuite je veux executer le code suivant:
Code :
1
2
3
4
5
DoCmd.OpenForm "F_AFFICHAGE"
DoCmd.SelectObject acForm, "F_AFFICHAGE", True
DoCmd.PrintOut
DoCmd.SelectObject acForm, Screen.ActiveForm.Name, False
DoCmd.Close acForm, "F_AFFICHAGE"
Et là... c'est le drame , Access me répond de 2 bips successifs (sans messages d'erreurs) et imprime en mode portait!

Aurais-je raté quelques choses avec Printout? à ma connaissance, il n'est pas possible de définir le mode paysage directement dans Printout, donc je ne comprend pas pourquoi il y a conflit...

Si vous avez une piste, je suis preneur
LeScandinave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2006, 11h28   #2
Membre habitué
 
Inscription : septembre 2005
Messages : 158
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 158
Points : 140
Points : 140
Bon j'ai trouvé une solution qui contourne le problème...
Je continue avec les Sendkeys pour imprimer mon document, ce qui donne (attention, les lettres sont pour le Access en Allemand)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
DoCmd.OpenForm "F_AFFICHAGE"
SendKeys "{f10}"
SendKeys "{D}"
SendKeys "{i}"
SendKeys "{right}"
SendKeys "%{f}"
SendKeys "{enter}"
SendKeys "{f10}"
SendKeys "{D}"
SendKeys "{D}"
SendKeys "{enter}"
'DoCmd.Close acForm, "F_AFFICHAGE"
Si quelqu'un a toutefois une piste plus VBA, je suis prenneur (je laisse le topic ouvert jusqu'à demain, après il serait "résolu"...


EDIT:
En fait j'ai anticipé. Ce code ci fonctionne:
Code :
1
2
3
4
5
6
7
8
9
10
11
DoCmd.OpenForm "F_AFFICHAGE"
SendKeys "{f10}"
SendKeys "{D}"
SendKeys "{i}"
SendKeys "{right}"
SendKeys "%{f}"
SendKeys "{enter}"
SendKeys "{f10}"
SendKeys "{D}"
SendKeys "{D}"
SendKeys "{enter}"
et si je rajoute cette ligne:
Code :
DoCmd.Close acForm, "F_AFFICHAGE"
ce n'est pas le formulaire créé dynamiquement qui s'imprime, mais celui où est le bouton qui lance le code... j'ai beau chercher à utiliser Doevents, ça ne change rien... ce n'est en fait pas une question d'impression mais de vitesse d'execution de mon code!
LeScandinave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2006, 12h05   #3
Expert Confirmé
 
Inscription : mai 2005
Messages : 3 419
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 3 419
Points : 3 768
Points : 3 768
tu as essayé sur ton report.orientation=landscape
random est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2006, 13h47   #4
Membre habitué
 
Inscription : septembre 2005
Messages : 158
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 158
Points : 140
Points : 140
hum... là je sèche. Je ne pense pas que ta solution puisse être utilisée dans mon cas car j'imprime bien un formulaire et non un état

Enfin j'ai beau me demander où je pourrais placer ton bout de code, je ne vois pas.

Mais sinon j'ai trouvé une solution assez radicale avec Doevents (il suffisait que je le place au bon endroit!)

Ma solution donne:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
DoCmd.OpenForm "F_AFFICHAGE"
SendKeys "{f10}"
SendKeys "{D}"
SendKeys "{i}"
SendKeys "{right}"
SendKeys "%{f}"
SendKeys "{enter}"
SendKeys "{f10}"
SendKeys "{D}"
SendKeys "{D}"
SendKeys "{enter}"
DoEvents
DoCmd.Close acForm, "F_AFFICHAGE"
Le seul petit désavantage est aue l'utilisateur peut croire qu'on manipule son ordi car il a le temps de bien voir toutes les fenêtres s'ouvrir
LeScandinave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2006, 14h51   #5
Membre éclairé
 
Inscription : janvier 2005
Messages : 445
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 445
Points : 348
Points : 348
salut,

Code :
1
2
3
4
5
6
7
 
Private Sub CmbImprim_Click()
 
Frmcherche.Printer.Orientation = acPRORLandscape 
Frmcherche.PrintForm
 
End Sub
Bonne chance.
Merci.
hocine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2006, 15h30   #6
Membre habitué
 
Inscription : septembre 2005
Messages : 158
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 158
Points : 140
Points : 140
hum, merci pour l'info, mais j'ai encore un dernier soucis, pour remplacer ton "Frmcherche", j'ai essayé:
- Forms("F_AFFICHAGE")
- Form("F_AFFICHAGE")
Mais j'ai un message d'erreur aui me dit qu'il y a une erreur dans la déclaration...
LeScandinave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2006, 15h27   #7
Membre éclairé
 
Inscription : janvier 2005
Messages : 445
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 445
Points : 348
Points : 348
Salut,
c'est le nom de votre formulaire ou utilisez Me.
le code que je vous ai donné je l'ai trouver sur un site et puisque je n'ai pas d'imprimante, ACCESS provoque quelque fois des problèmes de ce genre.
Bonne chance.
Merci.
hocine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2006, 00h36   #8
Membre habitué
 
Inscription : septembre 2005
Messages : 158
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 158
Points : 140
Points : 140
je vais essayer ça dimanche

J'ai essayé, ou essayé de comprendre plutôt, car mes tests ont été vains... , mais ce n'est pas trop grave, ça fontionne avec les sendkeys, donc je vais en rester là je pense, je me pencherais sur le probleme du PrintForm plus tard
Merci tout de meme!
LeScandinave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2006, 11h25   #9
Membre éclairé
 
Inscription : janvier 2005
Messages : 445
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 445
Points : 348
Points : 348
Salut,je crois que si vous mettez
Code :
1
2
3
 
docmd.printout
eu lieu de me.printform
sa marcherait peut être.
Bonne chance.
Merci.
hocine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2006, 12h08   #10
Responsable Access
 
Avatar de Arkham46
 
Inscription : septembre 2003
Messages : 4 300
Détails du profil
Informations personnelles :
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : septembre 2003
Messages : 4 300
Points : 7 939
Points : 7 939
slt,

en passant l'objet printer n'existe que depuis access 2002...
Arkham46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2006, 12h38   #11
Membre habitué
 
Inscription : septembre 2005
Messages : 158
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 158
Points : 140
Points : 140
@ Arkham: merci de l'info, mais j'ai une version supérieure

@ hocine: merci, ça marche et ça va vite en plus!

Je donne mon code tout de même pour ceux qui ont ou auront un soucis identique:
Code :
1
2
3
4
DoCmd.OpenForm "F_AFFICHAGE"
Forms("F_AFFICHAGE").Printer.Orientation = acPRORLandscape
DoCmd.PrintOut
DoCmd.Close acForm, "F_AFFICHAGE"
LeScandinave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2006, 10h21   #12
Membre éclairé
 
Inscription : janvier 2005
Messages : 445
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 445
Points : 348
Points : 348
Salut,
Heureux,Content pour vous et pour moi.
MERCI.
hocine est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h18.


 
 
 
 
Partenaires

Hébergement Web