Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
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 02/08/2011, 13h21   #1
Invité de passage
 
Inscription : août 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 4
Points : 0
Points : 0
Par défaut Imprimer succesivement plusieurs états sur un seul clic

Bonjour à tous
je développe actuellement une application sous MS Access comportant 7 états nommés respectivement page1,page2,page3,page4,page5,page6,page7.Autrement dit, chaque état représente une page d'un document de 7 pages que devra générer automatiquement mon application. A cet effet, j'ai crée une boite de dialogue d'imprission qui s'affiche à l'écran dès qu'un utilisateur clic sur la commande ''Imprimer'' dans l'un des états. Cette boite de dialogue comporte un groupe d'options avec 8 cases à cocher notamment ''Tout'',''Page1'',...,''Page7'' et un bouton de validation(impression) ''OK''.
Je souhaiterais avoir une procédure ''sur clic'' en VBA Access me permettant d'imprimer l'un ou successivement la totalité des états en fonction du choix de l'utilisateur. En d'autres termes, si l'utilisateur clic sur ''Imprimer'', ensuite sur ''Tout'' (case à cocher) puis sur ''OK'', la procédure permettra d'imprimer successivement les états ''Page1'',...,''Page7'' et génerera ainsi le document. Si par contre au lieu de cocher sur ''Tout'' l'utilisateur coche plutôt ''Page1'' ou ''Page2'' ou ...''Page7'' et clic sur ''OK'', la procédure permettra d'imprimer uniquement l'état ''Page1'' ou ''Page2'' ou ...''Page7''.
Merci d'avance et bonne journée.
Dimou Leonnel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 15h28   #2
Membre actif
 
Avatar de robyseb
 
Homme Sébastien
Développeur indépendant
Inscription : juillet 2011
Messages : 178
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Localisation : Canada

Informations professionnelles :
Activité : Développeur indépendant

Informations forums :
Inscription : juillet 2011
Messages : 178
Points : 193
Points : 193
tu dit :
Citation:
A cet effet, j'ai crée une boite de dialogue d'imprission qui s'affiche à l'écran dès qu'un utilisateur clic sur la commande ''Imprimer'' dans l'un des états. Cette boite de dialogue comporte un groupe d'options avec 8 cases à cocher notamment ''Tout'',''Page1'',...,''Page7'' et un bouton de validation(impression) ''OK''.
peut tu poster le code déja fait et on va l'adapter!!
robyseb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2011, 15h06   #3
Membre actif
 
Avatar de robyseb
 
Homme Sébastien
Développeur indépendant
Inscription : juillet 2011
Messages : 178
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Localisation : Canada

Informations professionnelles :
Activité : Développeur indépendant

Informations forums :
Inscription : juillet 2011
Messages : 178
Points : 193
Points : 193
Citation:
Bonjour à tous
je développe actuellement une application sous MS Access comportant 7 états nommés respectivement ''page1'',''page2'',''page3'',''page4'',''page5'',''page6'',''page7''.Autrement dit, chaque état représente une page d'un document de 7 pages que devra générer automatiquement mon application. A cet effet, j'ai crée une boite de dialogue d'impression qui s'affiche à l'écran dès qu'un utilisateur clic sur la commande ''Imprimer'' dans l'un des états. Cette boite de dialogue comporte un groupe d'options avec 8 cases à cocher notamment ''questionnaire'',''Page1'',...,''Page7'' et un bouton de validation(impression) ''OK''. ''questionnaire'' représente le document de 7 pages à savoir ''Page1'',...,''Page7''.
Le rôle du bouton de commande "OK" est de lancer l’impression d’un état ou de l’ensemble des états successivement (option questionnaire) en fonction du choix de l’utilisateur ; opgEtat désigne le nom du groupe d’option : questionnaire=1 ; page1=2 ; page2=3 ; page3=4 ; page4=5 ; page5=6 ; page6=7 ; page7=8.
Voici la procédure sur clic à adapter, que je propose :
Voici une adaptation que j'ai faite pour toi :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Private Sub btnOK_Click () 
Dim strEtat As String
On Error GoTo err_btn_OK
 
If Me!opgEtat = 1 Then 
	DoCmd.openreport,"Page1" ,acViewNormal
	DoCmd.openreport,"Page2" ,acViewNormal
	DoCmd.openreport,"Page3" ,acViewNormal
	DoCmd.openreport,"Page4" ,acViewNormal
	DoCmd.openreport,"Page5" ,acViewNormal
	DoCmd.openreport,"Page6" ,acViewNormal
	DoCmd.openreport,"Page7" ,acViewNormal
docmd.close
exit sub 
 
If Me!opgEtat = 2 Then strEtat = "Page1"
If Me!opgEtat = 3 Then strEtat = "Page2"
If Me!opgEtat = 4 Then strEtat = "Page3"
If Me!opgEtat = 5 Then strEtat = "Page4"
If Me!opgEtat = 6 Then strEtat = "Page5"
If Me!opgEtat = 7 Then strEtat = "Page6"
If Me!opgEtat = 8 Then strEtat = "Page7"
DoCmd.Close
DoCmd.OpenReport strEtat,    acViewPreview
exit_btn_OK:
Exit Sub
err_btn_OK:
MsgBox Err.Description
Resume exit_btn_OK 
End Sub
tu peut aussi simplement écrire ce code et tu va pouvoir faire ce dont tu désire avec la fenêtre de windows déja faite ...

Code :
1
2
3
4
5
6
7
8
9
Private Sub imprimer_Click()
On Error GoTo err_imprimer
DoCmd.RunCommand (acCmdPrint)
 
 
err_imprimer:
    Exit Sub
 
End Sub
robyseb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 22h08   #4
Invité de passage
 
Inscription : août 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 4
Points : 0
Points : 0
Par défaut Imprimer successivement plusieurs états sur un seul clic

Merci Robyseb

Mais j'ai oublié de préciser que dans ma boite de dialogue d'impression, j'avais une zone de texte nommée txtcopie représentant le ''Nombre de copie''. Ce qui signifie que la procédure doit etre ajuster pour tenir compte de ce paramètre. En effet, si l'utilisateur entre une valeur dans cette zone de texte pour une option choisie, il faudrait que l'application imprime autant de copie que la valeur "Nombre de copie''
Merci.
Dimou Leonnel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 15h07   #5
Membre actif
 
Avatar de robyseb
 
Homme Sébastien
Développeur indépendant
Inscription : juillet 2011
Messages : 178
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Localisation : Canada

Informations professionnelles :
Activité : Développeur indépendant

Informations forums :
Inscription : juillet 2011
Messages : 178
Points : 193
Points : 193
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub btnOK_Click () 
On Error GoTo err_btn_OK
dim OpgEtat as integer
dim nbrcopie as integer 
nbrcopie = me.txtcopie
OpgEtat = me.OpgEtat
 
if me.txtcopie > 0 then
print(nbrcopie, OpgEtat)
else 
msgbox "Il n'y a aucun Nombre de copie saisie !", vbinformation, "Nombre de saisie manquante !"
end if
Exit sub
exit_btn_OK:
Exit Sub
err_btn_OK:
MsgBox Err.Description
Resume exit_btn_OK 
End Sub
tu doit mettre une valeur par default à txtcopie soit 1 !
Tu créer un module nommé exemple "mod_print" à part qui contiendra ton code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
sub print (nbrcopie as integer, OpgEtat as integer)
dim strEtat as string
dim i as integer
if nbrcopie > 0 then
for i = 1 to nbrcopie 
 
If opgEtat = 1 Then 
	DoCmd.openreport,"Page1" ,acViewNormal
	DoCmd.openreport,"Page2" ,acViewNormal
	DoCmd.openreport,"Page3" ,acViewNormal
	DoCmd.openreport,"Page4" ,acViewNormal
	DoCmd.openreport,"Page5" ,acViewNormal
	DoCmd.openreport,"Page6" ,acViewNormal
	DoCmd.openreport,"Page7" ,acViewNormal
end if 
next i 
docmd.close
exit sub 
 
If opgEtat = 2 Then strEtat = "Page1"
end if 
If opgEtat = 3 Then strEtat = "Page2"
end if 
If opgEtat = 4 Then strEtat = "Page3"
end if 
If opgEtat = 5 Then strEtat = "Page4"
end if 
If opgEtat = 6 Then strEtat = "Page5"
end if 
If opgEtat = 7 Then strEtat = "Page6"
end if 
If opgEtat = 8 Then strEtat = "Page7"
end if 
 
DoCmd.OpenReport strEtat,    acViewPreview
next i
exit sub
else 
msgbox "Il n'y a aucun Nombre de copie saisie !", vbinformation, "Nombre de saisie manquante !"
end if 
end sub
je n'ai pas testé mais si il y a des erreurs dit le moi merci
robyseb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h17.


 
 
 
 
Partenaires

Hébergement Web