Bonjour,
Je voulais savoir s'il est possible depuis une commande sur un
formulaire lors de l'ouverture d'un état de spécifié l'imprimante à
utiliser. Actuellement j'ai copier-coller mon état en définissant
pour chaque état (états identiques) l'imprimante à utiliser et je
perds beaucoup de temps quand il faut modifier le contenu de
l'état...
Merci d'avance
Julien
Bonjour,
Je voulais savoir s'il est possible depuis une commande sur un
formulaire lors de l'ouverture d'un état de spécifié l'imprimante à
utiliser. Actuellement j'ai copier-coller mon état en définissant
pour chaque état (états identiques) l'imprimante à utiliser et je
perds beaucoup de temps quand il faut modifier le contenu de
l'état...
Merci d'avance
Julien
Bonjour,
Je voulais savoir s'il est possible depuis une commande sur un
formulaire lors de l'ouverture d'un état de spécifié l'imprimante à
utiliser. Actuellement j'ai copier-coller mon état en définissant
pour chaque état (états identiques) l'imprimante à utiliser et je
perds beaucoup de temps quand il faut modifier le contenu de
l'état...
Merci d'avance
Julien
Salut,
"Julien"
| Je voulais savoir s'il est possible depuis une commande sur un formulaire
| lors de l'ouverture d'un état de spécifié l'imprimante à utiliser.
| Actuellement j'ai copier-coller mon état en définissant pour chaque état
| (états identiques) l'imprimante à utiliser et je perds beaucoup de temps
| quand il faut modifier le contenu de l'état...
Essaye ceci.
Tu ouvre ton état en mode aperçu (preview) de cette façon :
DoCmd.OpenReport stDocName, acPreview
et tu ajoute :
DoEvents
DoCmd.RunCommand acCmdPrint
Salut,
"Julien"
| Je voulais savoir s'il est possible depuis une commande sur un formulaire
| lors de l'ouverture d'un état de spécifié l'imprimante à utiliser.
| Actuellement j'ai copier-coller mon état en définissant pour chaque état
| (états identiques) l'imprimante à utiliser et je perds beaucoup de temps
| quand il faut modifier le contenu de l'état...
Essaye ceci.
Tu ouvre ton état en mode aperçu (preview) de cette façon :
DoCmd.OpenReport stDocName, acPreview
et tu ajoute :
DoEvents
DoCmd.RunCommand acCmdPrint
Salut,
"Julien"
| Je voulais savoir s'il est possible depuis une commande sur un formulaire
| lors de l'ouverture d'un état de spécifié l'imprimante à utiliser.
| Actuellement j'ai copier-coller mon état en définissant pour chaque état
| (états identiques) l'imprimante à utiliser et je perds beaucoup de temps
| quand il faut modifier le contenu de l'état...
Essaye ceci.
Tu ouvre ton état en mode aperçu (preview) de cette façon :
DoCmd.OpenReport stDocName, acPreview
et tu ajoute :
DoEvents
DoCmd.RunCommand acCmdPrint
Salut,
"Julien Ackermann"
| Je vais essayer mais j'aimerais que la commande soit automatique et que
| l'utilisateur n'ai pas à choisir lui même l'imprimante...
Application.Printer = Application.Printers("Nom imprimante")
le nom des imprimantes se trouve avec :
Dim prtLoop As Printer
For Each prtLoop In Application.Printers
With prtLoop
Debug.Print "Device name: " & .DeviceName
End With
Next prtLoop
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Salut,
"Julien Ackermann"
| Je vais essayer mais j'aimerais que la commande soit automatique et que
| l'utilisateur n'ai pas à choisir lui même l'imprimante...
Application.Printer = Application.Printers("Nom imprimante")
le nom des imprimantes se trouve avec :
Dim prtLoop As Printer
For Each prtLoop In Application.Printers
With prtLoop
Debug.Print "Device name: " & .DeviceName
End With
Next prtLoop
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Salut,
"Julien Ackermann"
| Je vais essayer mais j'aimerais que la commande soit automatique et que
| l'utilisateur n'ai pas à choisir lui même l'imprimante...
Application.Printer = Application.Printers("Nom imprimante")
le nom des imprimantes se trouve avec :
Dim prtLoop As Printer
For Each prtLoop In Application.Printers
With prtLoop
Debug.Print "Device name: " & .DeviceName
End With
Next prtLoop
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Bonjour Pierre,
merci cela fonctionne mais pas tout a fait comme je l'aimerais !
Le problème est que quand j'ai ajouté le code "Application...", il m'imprime
le formulaire et non l'état, ci-dessous la copie du code comme il est
actuellement dans le VB de mon formulaire, peut-être qu'il faut simplement
ajouter quelque chose...
Private Sub CmdSend_Click()
Application.Printer = Application.Printers("ServeurPDF_documentsACCESS")
DoCmd.OpenReport "P_DOC", acViewDesign, , , acHidden
Reports("P_DOC").Caption = Forms![p_imp]![Titre]
DoCmd.PrintOut
DoCmd.Close acReport, "P_DOC", acSaveYes
SendMail Me.objet, Me.mail, "", "",
("serveurchezgilbertPDF" & Me.Titre & ".pdf"), Me.message, False
MsgBox "Le message a été placé dans les éléments envoyés.", vbOKOnly +
vbInformation, "Opération Terminée"
'DoCmd.Close
End Sub
merci d'avance
JulienSalut,
"Julien Ackermann"
| Je vais essayer mais j'aimerais que la commande soit automatique et que
| l'utilisateur n'ai pas à choisir lui même l'imprimante...
Application.Printer = Application.Printers("Nom imprimante")
le nom des imprimantes se trouve avec :
Dim prtLoop As Printer
For Each prtLoop In Application.Printers
With prtLoop
Debug.Print "Device name: " & .DeviceName
End With
Next prtLoop
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Bonjour Pierre,
merci cela fonctionne mais pas tout a fait comme je l'aimerais !
Le problème est que quand j'ai ajouté le code "Application...", il m'imprime
le formulaire et non l'état, ci-dessous la copie du code comme il est
actuellement dans le VB de mon formulaire, peut-être qu'il faut simplement
ajouter quelque chose...
Private Sub CmdSend_Click()
Application.Printer = Application.Printers("\ServeurPDF_documentsACCESS")
DoCmd.OpenReport "P_DOC", acViewDesign, , , acHidden
Reports("P_DOC").Caption = Forms![p_imp]![Titre]
DoCmd.PrintOut
DoCmd.Close acReport, "P_DOC", acSaveYes
SendMail Me.objet, Me.mail, "", "archives.chezgilbert@kiui.fr",
("\serveurchezgilbertPDF" & Me.Titre & ".pdf"), Me.message, False
MsgBox "Le message a été placé dans les éléments envoyés.", vbOKOnly +
vbInformation, "Opération Terminée"
'DoCmd.Close
End Sub
merci d'avance
Julien
Salut,
"Julien Ackermann"
| Je vais essayer mais j'aimerais que la commande soit automatique et que
| l'utilisateur n'ai pas à choisir lui même l'imprimante...
Application.Printer = Application.Printers("Nom imprimante")
le nom des imprimantes se trouve avec :
Dim prtLoop As Printer
For Each prtLoop In Application.Printers
With prtLoop
Debug.Print "Device name: " & .DeviceName
End With
Next prtLoop
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Bonjour Pierre,
merci cela fonctionne mais pas tout a fait comme je l'aimerais !
Le problème est que quand j'ai ajouté le code "Application...", il m'imprime
le formulaire et non l'état, ci-dessous la copie du code comme il est
actuellement dans le VB de mon formulaire, peut-être qu'il faut simplement
ajouter quelque chose...
Private Sub CmdSend_Click()
Application.Printer = Application.Printers("ServeurPDF_documentsACCESS")
DoCmd.OpenReport "P_DOC", acViewDesign, , , acHidden
Reports("P_DOC").Caption = Forms![p_imp]![Titre]
DoCmd.PrintOut
DoCmd.Close acReport, "P_DOC", acSaveYes
SendMail Me.objet, Me.mail, "", "",
("serveurchezgilbertPDF" & Me.Titre & ".pdf"), Me.message, False
MsgBox "Le message a été placé dans les éléments envoyés.", vbOKOnly +
vbInformation, "Opération Terminée"
'DoCmd.Close
End Sub
merci d'avance
JulienSalut,
"Julien Ackermann"
| Je vais essayer mais j'aimerais que la commande soit automatique et que
| l'utilisateur n'ai pas à choisir lui même l'imprimante...
Application.Printer = Application.Printers("Nom imprimante")
le nom des imprimantes se trouve avec :
Dim prtLoop As Printer
For Each prtLoop In Application.Printers
With prtLoop
Debug.Print "Device name: " & .DeviceName
End With
Next prtLoop
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Bonjour,
A premiere vue, j'enleverai le DoCmd.PrintOut qui envoie sur
l'imprimante ton formulaire qui est l'objet actif.
Sous le DoCmd.Close acReport, "P_DOC", acSaveYes
je mettrai la demande d'impression de l'état après modif de la légende.
DoCmd.OpenReport "P_DOC", la sortie se faisant sur l'imprimante que tu
as définie.Bonjour Pierre,
merci cela fonctionne mais pas tout a fait comme je l'aimerais !
Le problème est que quand j'ai ajouté le code "Application...", il m'imprime
le formulaire et non l'état, ci-dessous la copie du code comme il est
actuellement dans le VB de mon formulaire, peut-être qu'il faut simplement
ajouter quelque chose...
Private Sub CmdSend_Click()
Application.Printer = Application.Printers("ServeurPDF_documentsACCESS")
DoCmd.OpenReport "P_DOC", acViewDesign, , , acHidden
Reports("P_DOC").Caption = Forms![p_imp]![Titre]
DoCmd.PrintOut
DoCmd.Close acReport, "P_DOC", acSaveYes
SendMail Me.objet, Me.mail, "", "",
("serveurchezgilbertPDF" & Me.Titre & ".pdf"), Me.message, False
MsgBox "Le message a été placé dans les éléments envoyés.", vbOKOnly +
vbInformation, "Opération Terminée"
'DoCmd.Close
End Sub
merci d'avance
JulienSalut,
"Julien Ackermann"
| Je vais essayer mais j'aimerais que la commande soit automatique et que
| l'utilisateur n'ai pas à choisir lui même l'imprimante...
Application.Printer = Application.Printers("Nom imprimante")
le nom des imprimantes se trouve avec :
Dim prtLoop As Printer
For Each prtLoop In Application.Printers
With prtLoop
Debug.Print "Device name: " & .DeviceName
End With
Next prtLoop
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
A premiere vue, j'enleverai le DoCmd.PrintOut qui envoie sur
l'imprimante ton formulaire qui est l'objet actif.
Sous le DoCmd.Close acReport, "P_DOC", acSaveYes
je mettrai la demande d'impression de l'état après modif de la légende.
DoCmd.OpenReport "P_DOC", la sortie se faisant sur l'imprimante que tu
as définie.
Bonjour Pierre,
merci cela fonctionne mais pas tout a fait comme je l'aimerais !
Le problème est que quand j'ai ajouté le code "Application...", il m'imprime
le formulaire et non l'état, ci-dessous la copie du code comme il est
actuellement dans le VB de mon formulaire, peut-être qu'il faut simplement
ajouter quelque chose...
Private Sub CmdSend_Click()
Application.Printer = Application.Printers("\ServeurPDF_documentsACCESS")
DoCmd.OpenReport "P_DOC", acViewDesign, , , acHidden
Reports("P_DOC").Caption = Forms![p_imp]![Titre]
DoCmd.PrintOut
DoCmd.Close acReport, "P_DOC", acSaveYes
SendMail Me.objet, Me.mail, "", "archives.chezgilbert@kiui.fr",
("\serveurchezgilbertPDF" & Me.Titre & ".pdf"), Me.message, False
MsgBox "Le message a été placé dans les éléments envoyés.", vbOKOnly +
vbInformation, "Opération Terminée"
'DoCmd.Close
End Sub
merci d'avance
Julien
Salut,
"Julien Ackermann"
| Je vais essayer mais j'aimerais que la commande soit automatique et que
| l'utilisateur n'ai pas à choisir lui même l'imprimante...
Application.Printer = Application.Printers("Nom imprimante")
le nom des imprimantes se trouve avec :
Dim prtLoop As Printer
For Each prtLoop In Application.Printers
With prtLoop
Debug.Print "Device name: " & .DeviceName
End With
Next prtLoop
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
A premiere vue, j'enleverai le DoCmd.PrintOut qui envoie sur
l'imprimante ton formulaire qui est l'objet actif.
Sous le DoCmd.Close acReport, "P_DOC", acSaveYes
je mettrai la demande d'impression de l'état après modif de la légende.
DoCmd.OpenReport "P_DOC", la sortie se faisant sur l'imprimante que tu
as définie.Bonjour Pierre,
merci cela fonctionne mais pas tout a fait comme je l'aimerais !
Le problème est que quand j'ai ajouté le code "Application...", il m'imprime
le formulaire et non l'état, ci-dessous la copie du code comme il est
actuellement dans le VB de mon formulaire, peut-être qu'il faut simplement
ajouter quelque chose...
Private Sub CmdSend_Click()
Application.Printer = Application.Printers("ServeurPDF_documentsACCESS")
DoCmd.OpenReport "P_DOC", acViewDesign, , , acHidden
Reports("P_DOC").Caption = Forms![p_imp]![Titre]
DoCmd.PrintOut
DoCmd.Close acReport, "P_DOC", acSaveYes
SendMail Me.objet, Me.mail, "", "",
("serveurchezgilbertPDF" & Me.Titre & ".pdf"), Me.message, False
MsgBox "Le message a été placé dans les éléments envoyés.", vbOKOnly +
vbInformation, "Opération Terminée"
'DoCmd.Close
End Sub
merci d'avance
JulienSalut,
"Julien Ackermann"
| Je vais essayer mais j'aimerais que la commande soit automatique et que
| l'utilisateur n'ai pas à choisir lui même l'imprimante...
Application.Printer = Application.Printers("Nom imprimante")
le nom des imprimantes se trouve avec :
Dim prtLoop As Printer
For Each prtLoop In Application.Printers
With prtLoop
Debug.Print "Device name: " & .DeviceName
End With
Next prtLoop
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Eric,
merci, ça a l'air de fonctionner, de plus est-il possible de mettre une
commande qui permet d'attendre que le fichier est imprimer avant de lancer la
création du mail ?
je vais encore ajouter une condition au cas où aucun mail est renseigné et
je crois que je tiens le bon bout ! au moins pour cette partie de
l'application.
merci encore
JulienBonjour,
A premiere vue, j'enleverai le DoCmd.PrintOut qui envoie sur
l'imprimante ton formulaire qui est l'objet actif.
Sous le DoCmd.Close acReport, "P_DOC", acSaveYes
je mettrai la demande d'impression de l'état après modif de la légende.
DoCmd.OpenReport "P_DOC", la sortie se faisant sur l'imprimante que tu
as définie.Bonjour Pierre,
merci cela fonctionne mais pas tout a fait comme je l'aimerais !
Le problème est que quand j'ai ajouté le code "Application...", il m'imprime
le formulaire et non l'état, ci-dessous la copie du code comme il est
actuellement dans le VB de mon formulaire, peut-être qu'il faut simplement
ajouter quelque chose...
Private Sub CmdSend_Click()
Application.Printer = Application.Printers("ServeurPDF_documentsACCESS")
DoCmd.OpenReport "P_DOC", acViewDesign, , , acHidden
Reports("P_DOC").Caption = Forms![p_imp]![Titre]
DoCmd.PrintOut
DoCmd.Close acReport, "P_DOC", acSaveYes
SendMail Me.objet, Me.mail, "", "",
("serveurchezgilbertPDF" & Me.Titre & ".pdf"), Me.message, False
MsgBox "Le message a été placé dans les éléments envoyés.", vbOKOnly +
vbInformation, "Opération Terminée"
'DoCmd.Close
End Sub
merci d'avance
JulienSalut,
"Julien Ackermann"
| Je vais essayer mais j'aimerais que la commande soit automatique et que
| l'utilisateur n'ai pas à choisir lui même l'imprimante...
Application.Printer = Application.Printers("Nom imprimante")
le nom des imprimantes se trouve avec :
Dim prtLoop As Printer
For Each prtLoop In Application.Printers
With prtLoop
Debug.Print "Device name: " & .DeviceName
End With
Next prtLoop
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Eric,
merci, ça a l'air de fonctionner, de plus est-il possible de mettre une
commande qui permet d'attendre que le fichier est imprimer avant de lancer la
création du mail ?
je vais encore ajouter une condition au cas où aucun mail est renseigné et
je crois que je tiens le bon bout ! au moins pour cette partie de
l'application.
merci encore
Julien
Bonjour,
A premiere vue, j'enleverai le DoCmd.PrintOut qui envoie sur
l'imprimante ton formulaire qui est l'objet actif.
Sous le DoCmd.Close acReport, "P_DOC", acSaveYes
je mettrai la demande d'impression de l'état après modif de la légende.
DoCmd.OpenReport "P_DOC", la sortie se faisant sur l'imprimante que tu
as définie.
Bonjour Pierre,
merci cela fonctionne mais pas tout a fait comme je l'aimerais !
Le problème est que quand j'ai ajouté le code "Application...", il m'imprime
le formulaire et non l'état, ci-dessous la copie du code comme il est
actuellement dans le VB de mon formulaire, peut-être qu'il faut simplement
ajouter quelque chose...
Private Sub CmdSend_Click()
Application.Printer = Application.Printers("\ServeurPDF_documentsACCESS")
DoCmd.OpenReport "P_DOC", acViewDesign, , , acHidden
Reports("P_DOC").Caption = Forms![p_imp]![Titre]
DoCmd.PrintOut
DoCmd.Close acReport, "P_DOC", acSaveYes
SendMail Me.objet, Me.mail, "", "archives.chezgilbert@kiui.fr",
("\serveurchezgilbertPDF" & Me.Titre & ".pdf"), Me.message, False
MsgBox "Le message a été placé dans les éléments envoyés.", vbOKOnly +
vbInformation, "Opération Terminée"
'DoCmd.Close
End Sub
merci d'avance
Julien
Salut,
"Julien Ackermann"
| Je vais essayer mais j'aimerais que la commande soit automatique et que
| l'utilisateur n'ai pas à choisir lui même l'imprimante...
Application.Printer = Application.Printers("Nom imprimante")
le nom des imprimantes se trouve avec :
Dim prtLoop As Printer
For Each prtLoop In Application.Printers
With prtLoop
Debug.Print "Device name: " & .DeviceName
End With
Next prtLoop
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Eric,
merci, ça a l'air de fonctionner, de plus est-il possible de mettre une
commande qui permet d'attendre que le fichier est imprimer avant de lancer la
création du mail ?
je vais encore ajouter une condition au cas où aucun mail est renseigné et
je crois que je tiens le bon bout ! au moins pour cette partie de
l'application.
merci encore
JulienBonjour,
A premiere vue, j'enleverai le DoCmd.PrintOut qui envoie sur
l'imprimante ton formulaire qui est l'objet actif.
Sous le DoCmd.Close acReport, "P_DOC", acSaveYes
je mettrai la demande d'impression de l'état après modif de la légende.
DoCmd.OpenReport "P_DOC", la sortie se faisant sur l'imprimante que tu
as définie.Bonjour Pierre,
merci cela fonctionne mais pas tout a fait comme je l'aimerais !
Le problème est que quand j'ai ajouté le code "Application...", il m'imprime
le formulaire et non l'état, ci-dessous la copie du code comme il est
actuellement dans le VB de mon formulaire, peut-être qu'il faut simplement
ajouter quelque chose...
Private Sub CmdSend_Click()
Application.Printer = Application.Printers("ServeurPDF_documentsACCESS")
DoCmd.OpenReport "P_DOC", acViewDesign, , , acHidden
Reports("P_DOC").Caption = Forms![p_imp]![Titre]
DoCmd.PrintOut
DoCmd.Close acReport, "P_DOC", acSaveYes
SendMail Me.objet, Me.mail, "", "",
("serveurchezgilbertPDF" & Me.Titre & ".pdf"), Me.message, False
MsgBox "Le message a été placé dans les éléments envoyés.", vbOKOnly +
vbInformation, "Opération Terminée"
'DoCmd.Close
End Sub
merci d'avance
JulienSalut,
"Julien Ackermann"
| Je vais essayer mais j'aimerais que la commande soit automatique et que
| l'utilisateur n'ai pas à choisir lui même l'imprimante...
Application.Printer = Application.Printers("Nom imprimante")
le nom des imprimantes se trouve avec :
Dim prtLoop As Printer
For Each prtLoop In Application.Printers
With prtLoop
Debug.Print "Device name: " & .DeviceName
End With
Next prtLoop
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Julien,
Et si tu mets un DoEvents avant l'envoi du mel ?
Si ca marche pas, avec l'API Sleep
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
en tête du module de formulaire sous Option Compare Database et Option
Explicit (éventuellement)
et à la ligne suivant le DoCmd.OpenReport "P_DOC"
Sleep 500 'pour une demi-seconde, à adapterBonjour Eric,
merci, ça a l'air de fonctionner, de plus est-il possible de mettre une
commande qui permet d'attendre que le fichier est imprimer avant de lancer la
création du mail ?
je vais encore ajouter une condition au cas où aucun mail est renseigné et
je crois que je tiens le bon bout ! au moins pour cette partie de
l'application.
merci encore
JulienBonjour,
A premiere vue, j'enleverai le DoCmd.PrintOut qui envoie sur
l'imprimante ton formulaire qui est l'objet actif.
Sous le DoCmd.Close acReport, "P_DOC", acSaveYes
je mettrai la demande d'impression de l'état après modif de la légende.
DoCmd.OpenReport "P_DOC", la sortie se faisant sur l'imprimante que tu
as définie.Bonjour Pierre,
merci cela fonctionne mais pas tout a fait comme je l'aimerais !
Le problème est que quand j'ai ajouté le code "Application...", il m'imprime
le formulaire et non l'état, ci-dessous la copie du code comme il est
actuellement dans le VB de mon formulaire, peut-être qu'il faut simplement
ajouter quelque chose...
Private Sub CmdSend_Click()
Application.Printer = Application.Printers("ServeurPDF_documentsACCESS")
DoCmd.OpenReport "P_DOC", acViewDesign, , , acHidden
Reports("P_DOC").Caption = Forms![p_imp]![Titre]
DoCmd.PrintOut
DoCmd.Close acReport, "P_DOC", acSaveYes
SendMail Me.objet, Me.mail, "", "",
("serveurchezgilbertPDF" & Me.Titre & ".pdf"), Me.message, False
MsgBox "Le message a été placé dans les éléments envoyés.", vbOKOnly +
vbInformation, "Opération Terminée"
'DoCmd.Close
End Sub
merci d'avance
JulienSalut,
"Julien Ackermann"
| Je vais essayer mais j'aimerais que la commande soit automatique et que
| l'utilisateur n'ai pas à choisir lui même l'imprimante...
Application.Printer = Application.Printers("Nom imprimante")
le nom des imprimantes se trouve avec :
Dim prtLoop As Printer
For Each prtLoop In Application.Printers
With prtLoop
Debug.Print "Device name: " & .DeviceName
End With
Next prtLoop
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Julien,
Et si tu mets un DoEvents avant l'envoi du mel ?
Si ca marche pas, avec l'API Sleep
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
en tête du module de formulaire sous Option Compare Database et Option
Explicit (éventuellement)
et à la ligne suivant le DoCmd.OpenReport "P_DOC"
Sleep 500 'pour une demi-seconde, à adapter
Bonjour Eric,
merci, ça a l'air de fonctionner, de plus est-il possible de mettre une
commande qui permet d'attendre que le fichier est imprimer avant de lancer la
création du mail ?
je vais encore ajouter une condition au cas où aucun mail est renseigné et
je crois que je tiens le bon bout ! au moins pour cette partie de
l'application.
merci encore
Julien
Bonjour,
A premiere vue, j'enleverai le DoCmd.PrintOut qui envoie sur
l'imprimante ton formulaire qui est l'objet actif.
Sous le DoCmd.Close acReport, "P_DOC", acSaveYes
je mettrai la demande d'impression de l'état après modif de la légende.
DoCmd.OpenReport "P_DOC", la sortie se faisant sur l'imprimante que tu
as définie.
Bonjour Pierre,
merci cela fonctionne mais pas tout a fait comme je l'aimerais !
Le problème est que quand j'ai ajouté le code "Application...", il m'imprime
le formulaire et non l'état, ci-dessous la copie du code comme il est
actuellement dans le VB de mon formulaire, peut-être qu'il faut simplement
ajouter quelque chose...
Private Sub CmdSend_Click()
Application.Printer = Application.Printers("\ServeurPDF_documentsACCESS")
DoCmd.OpenReport "P_DOC", acViewDesign, , , acHidden
Reports("P_DOC").Caption = Forms![p_imp]![Titre]
DoCmd.PrintOut
DoCmd.Close acReport, "P_DOC", acSaveYes
SendMail Me.objet, Me.mail, "", "archives.chezgilbert@kiui.fr",
("\serveurchezgilbertPDF" & Me.Titre & ".pdf"), Me.message, False
MsgBox "Le message a été placé dans les éléments envoyés.", vbOKOnly +
vbInformation, "Opération Terminée"
'DoCmd.Close
End Sub
merci d'avance
Julien
Salut,
"Julien Ackermann"
| Je vais essayer mais j'aimerais que la commande soit automatique et que
| l'utilisateur n'ai pas à choisir lui même l'imprimante...
Application.Printer = Application.Printers("Nom imprimante")
le nom des imprimantes se trouve avec :
Dim prtLoop As Printer
For Each prtLoop In Application.Printers
With prtLoop
Debug.Print "Device name: " & .DeviceName
End With
Next prtLoop
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Julien,
Et si tu mets un DoEvents avant l'envoi du mel ?
Si ca marche pas, avec l'API Sleep
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
en tête du module de formulaire sous Option Compare Database et Option
Explicit (éventuellement)
et à la ligne suivant le DoCmd.OpenReport "P_DOC"
Sleep 500 'pour une demi-seconde, à adapterBonjour Eric,
merci, ça a l'air de fonctionner, de plus est-il possible de mettre une
commande qui permet d'attendre que le fichier est imprimer avant de lancer la
création du mail ?
je vais encore ajouter une condition au cas où aucun mail est renseigné et
je crois que je tiens le bon bout ! au moins pour cette partie de
l'application.
merci encore
JulienBonjour,
A premiere vue, j'enleverai le DoCmd.PrintOut qui envoie sur
l'imprimante ton formulaire qui est l'objet actif.
Sous le DoCmd.Close acReport, "P_DOC", acSaveYes
je mettrai la demande d'impression de l'état après modif de la légende.
DoCmd.OpenReport "P_DOC", la sortie se faisant sur l'imprimante que tu
as définie.Bonjour Pierre,
merci cela fonctionne mais pas tout a fait comme je l'aimerais !
Le problème est que quand j'ai ajouté le code "Application...", il m'imprime
le formulaire et non l'état, ci-dessous la copie du code comme il est
actuellement dans le VB de mon formulaire, peut-être qu'il faut simplement
ajouter quelque chose...
Private Sub CmdSend_Click()
Application.Printer = Application.Printers("ServeurPDF_documentsACCESS")
DoCmd.OpenReport "P_DOC", acViewDesign, , , acHidden
Reports("P_DOC").Caption = Forms![p_imp]![Titre]
DoCmd.PrintOut
DoCmd.Close acReport, "P_DOC", acSaveYes
SendMail Me.objet, Me.mail, "", "",
("serveurchezgilbertPDF" & Me.Titre & ".pdf"), Me.message, False
MsgBox "Le message a été placé dans les éléments envoyés.", vbOKOnly +
vbInformation, "Opération Terminée"
'DoCmd.Close
End Sub
merci d'avance
JulienSalut,
"Julien Ackermann"
| Je vais essayer mais j'aimerais que la commande soit automatique et que
| l'utilisateur n'ai pas à choisir lui même l'imprimante...
Application.Printer = Application.Printers("Nom imprimante")
le nom des imprimantes se trouve avec :
Dim prtLoop As Printer
For Each prtLoop In Application.Printers
With prtLoop
Debug.Print "Device name: " & .DeviceName
End With
Next prtLoop
--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
encore une petite question ...
sur :
Application.Printer = Application.Printers("ServeurPDF_documentsACCESS")
quel est le paramètre pour sélectionner l'imprimante par défault ?
encore une petite question ...
sur :
Application.Printer = Application.Printers("\ServeurPDF_documentsACCESS")
quel est le paramètre pour sélectionner l'imprimante par défault ?
encore une petite question ...
sur :
Application.Printer = Application.Printers("ServeurPDF_documentsACCESS")
quel est le paramètre pour sélectionner l'imprimante par défault ?