J'ai une transaction qui ne permet d'imprimer les certificats pour
réduction fiscale pour les membres de mon association. Pas de pb si je
les sors sur imprimante, mais comme je voudrais les envoyer à chacun
par messagerie, je ne peux rien en faire.
Par contre, si j'en demande la sortie au format pdf avec CupePDF
Writer, j'obtiens un seul fichier comportant tous mes cerfas l'un
derrière l'autre, qui ne m'est pas de grande utilité non plus.
D'où ma question: peut-on obtenir n fois une page par adhérent au
format pdf, au lieu de 1 fois les n pages en bloc.
Merci d'avance pour une solution, qu'elle soit avec Access 2003 ou
autrement
Francis
--
Francis
fhgc@wanadoudou.fr
LOI DE TATA JACQUELINE
C'est celui qui ronfle qui s'endort toujours le premier.
Bonjour Fabien Ça ne marche malheureusement pas comme ça devrait. Alors, pour essayer d'y voir clair, j'ai choisi de ne pas utiliser les requêtes de filtrage que tu as faites. Mon fichier tblCerfa ne contient plus que des adhérents avec email. Je dois donc systématiquement transformer en pdf et envoyer. J'ai donc modifié ton code comme ci-après. Avec les balises que j'y ai mises, j'ai remarqué que: - Traite = Rst_tblCerfa etc... ne donne sans doute pas le résultat voulu, car si je laisse If Traite actif, je shunte tout le reste - En ayant rendu ce If inopérant, je vais bien jusqu'à: Ok_Pdf = ConvertReportToPDF etc... et après quelques secondes, Access plante (Microsoft Access a rencontré un problème et doit être fermé. Etc...). Je ne vais pas jusqu'au message disant que la conversion est faite, mais en pratique, le document Cerfa.pdf a bien été établi.
J'espère que tu y verras clair et que tu sauras me sortir de là. @+ Francis
Private Sub Envoi_Click() Dim Filtre, Strsql_ini As String Dim Rst_tblCerfa As DAO.Recordset Dim Traite, Ok_Pdf, Imprime_Fiche As Boolean Dim Expediteur As String Expediteur = Nz(DLookup("[E-Mail]", "Club", ""), "") If Expediteur <> "" Then Set Rst_tblCerfa = CurrentDb.OpenRecordset("tblCerfa") 'On ouvre le jeux d'enregistrement que l'on va parcourir Strsql_ini = CurrentDb.QueryDefs("rqt Cerfa").SQL ' Sauvegarde de la chaine Sql Initiale Go_Progress "Traitements en cours . Patientez svp ..." ' Imprime_Fiche = MsgBox("Si pas d'adresse Mail, impression des fiches ? ", vbYesNo, "On Imprime ?") = vbYes While Not Rst_tblCerfa.EOF
Traite = Rst_tblCerfa("ordre") = val(Me.Choix_Nom) ' End If ' If Traite Then 'On adapte la source de l'état a l'enregistrement a imprimer CurrentDb.QueryDefs("rqt Cerfa").SQL = "select * from TblCerfa where [IDMembre]=" & Rst_tblCerfa("IDMembre") ' If Rst_tblCerfa("Email") <> "" Then 'Si adresse mail ' Convertir la fiche de réinscription en PDF MsgBox "Conversion PDF à faire" Ok_Pdf = ConvertReportToPDF("Cerfa", , CurrentProject.Path & "Cerfa.pdf", False, False) MsgBox "Conversion PDF faite" ' If Not Ok_Pdf Then ' MsgBox "Erreur lors de la création du fichier PDF" ' Else ' Envoyer le mail SendMailCDO Expediteur, _ Rst_tblCerfa("Email"), _ "Fiche Inscription", _ "Bonjour," & vbCrLf & "Vous trouverez ci-joint votre fiche de réinscription pour la saison prochaine." & vbCrLf & _ " Cordialement," & vbCrLf & "Le responsable Inscription", _ CurrentProject.Path & "Cerfa.pdf" Kill CurrentProject.Path & "" & "Cerfa.pdf" 'On efface le Pdf aprés envoi ' End If ' Else ' If Imprime_Fiche Then 'Sinon 'Imprimer la fiche ' DoCmd.OpenReport "Cerfa", acViewNormal ' DoEvents ' End If ' End If ' End If Rst_tblCerfa.MoveNext Wend Rst_tblCerfa.Close Set Rst_tblCerfa = Nothing CurrentDb.QueryDefs("rqt Cerfa").SQL = Strsql_ini Me.Avec_Message = True ' On remet la valeur a vrai Stop_Progress "" Else MsgBox "Pas d'adresse expéditeur (cf Club) !" End If End Sub
Bonjour, J'ai pris le temps de tester . Voici ta base en retour. J'ai 'forcé' la valeur de Traite a True dans le select case pour qu'il se passe quelque chose même si le filtre n'est pas activé ;-) Tout est Ok jusqu'a la génération du PDF. Aprés je n'ai pas laisser le programme envoyer quoi que ce soit a tes adhérents. @+ http://cjoint.com/?elxYugbxny
Re, Merci beaucoup, mais Access plante au même endroit et de la même façon qu'avec ma propre tentative. Le Cerfa.pdf a bien été créé. Si ça marche chez toi, c'est donc qu'il y a qquechose qui ne va pas dans mon Access. Une référence?, une dll? On approche, mais j'ai encore besoin de ton aide Francis
Si tu tente de compiler le code ? Tu n'as pas une erreur sur une déclaration CDO ? Si oui il faut rajouter Microsoft CDO for windows 2000 library dans les bibliotheques. @+
J'avais bien cette erreur. J'ai donc rajouté Microsoft CDO for windows 2000 library. A la compil, l'erreur a disparu, mais ça plante toujours de la même façon. L'ordre des items dans la liste des modules cochés a-t-il une importance? Par ailleurs, je n'ai pas de modules relatifs à PDF actif dans la bibliothèque, alors que j'en vois plusieurs dans la liste. Normal aussi? @+
Bon ben là on est dans une impasse :-( Sur mon poste aucun soucis avec la base que je t'ai retransferer. Quant aux modules PDF l'appli n'en à pas besoin puisque toutes les opérations de conversions PDF passent par les deux DLL de Mr Lebans. En mode debug peux tu tracer l'endroit exact à partir duquel access se plante ? Peux tu faire l'essai de cette base sur un autre poste ? As tu essayé de creer une base vide avec ta version d'access et d'y importer les objets de la base de test puis de recompiler aprés avoir ajouter les rérérences de bibliothéques ? Derniére question (stupide peut-être) : entre deux essais as tu rebooté ton PC ? @+
J'ai rebooté: idem. Je vais aller pas à pas dans tes propositions, en commençant pas tester la base sur le portable de ma femme. A mon avis, c'est dans modReportToPdf que ça coince car avec les balises que j'ai mises sur ton module, on y entre, mais on n'en sort pas sans planter Access. Je vais y aller méthodiquement, et je te tiens au courant @+ Francis
as tu mis les derniéres versions des DLL de Lebans ?
Oui, ça c'est bon depuis le début. Sur le portable, c'est kif-kif. Je crois avoir fait un hénaurme bon en avant: j'ai remplacé le module ConvertReportToPDF qui datait d'une version précédente de ton appli "Suivi joueurs" par celle de la v3, et là j'ai des messages "Plantage lors de la création du fichier PDF", qui prouvent qu'on sort bien de ce module. J'accepte (OK), et les mails sont envoyés quand il y a une adresse, sinon ils sont bien imprimés si j'ai mis l'option pour. Donc, c'est comme si c'était tout bon, à part ce message incongru. Tu as une idée de la raison pour laquelle ça serait pas bon, alors que ça a l'air d'être ok. @+
Bon, là je crois que je suis complètement out, car ce message, c'est moi qui l'ai mis là comme balise. A force, je ne sais plus trop ce que j'ai bricolé et ce qui vient de toi. :/ Un peu de ménage s'impose. Ce serait donc tout bon cette fois-ci. Un très grand merci, Fabien. Si on était plus proche l'un de l'autre, je te paierais un pot bien mérité. A une prochaine aventure, en espérant que celle-ci est bien close. @+ Francis
Bon week. @+
Francis a écrit :
Il se trouve que Francis a formulé :
Fabien a émis l'idée suivante :
Francis a écrit :
Fabien a émis l'idée suivante :
Francis a écrit :
Après mûre réflexion, Fabien a écrit :
Francis a écrit :
Dans son message précédent, Fabien a écrit :
Francis a écrit :
Bonjour Fabien
Ça ne marche malheureusement pas comme ça devrait. Alors, pour
essayer d'y voir clair, j'ai choisi de ne pas utiliser les
requêtes de filtrage que tu as faites. Mon fichier tblCerfa ne
contient plus que des adhérents avec email. Je dois donc
systématiquement transformer en pdf et envoyer.
J'ai donc modifié ton code comme ci-après. Avec les balises
que j'y ai mises, j'ai remarqué que:
- Traite = Rst_tblCerfa etc... ne donne sans doute pas le
résultat voulu, car si je laisse If Traite actif, je shunte
tout le reste
- En ayant rendu ce If inopérant, je vais bien jusqu'à: Ok_Pdf
= ConvertReportToPDF etc... et après quelques secondes, Access
plante (Microsoft Access a rencontré un problème et doit être
fermé. Etc...).
Je ne vais pas jusqu'au message disant que la conversion est
faite, mais en pratique, le document Cerfa.pdf a bien été établi.
J'espère que tu y verras clair et que tu sauras me sortir de là.
@+
Francis
Private Sub Envoi_Click()
Dim Filtre, Strsql_ini As String
Dim Rst_tblCerfa As DAO.Recordset
Dim Traite, Ok_Pdf, Imprime_Fiche As Boolean
Dim Expediteur As String
Expediteur = Nz(DLookup("[E-Mail]", "Club", ""), "")
If Expediteur <> "" Then
Set Rst_tblCerfa = CurrentDb.OpenRecordset("tblCerfa")
'On ouvre le jeux d'enregistrement que l'on va parcourir
Strsql_ini = CurrentDb.QueryDefs("rqt Cerfa").SQL '
Sauvegarde de la chaine Sql Initiale
Go_Progress "Traitements en cours . Patientez svp ..."
' Imprime_Fiche = MsgBox("Si pas d'adresse Mail,
impression des fiches ? ", vbYesNo, "On Imprime ?") = vbYes
While Not Rst_tblCerfa.EOF
Traite = Rst_tblCerfa("ordre") =
val(Me.Choix_Nom)
' End If
' If Traite Then
'On adapte la source de l'état a
l'enregistrement a imprimer
CurrentDb.QueryDefs("rqt Cerfa").SQL = "select
* from TblCerfa where [IDMembre]=" & Rst_tblCerfa("IDMembre")
' If Rst_tblCerfa("Email") <> "" Then
'Si adresse mail
' Convertir la fiche de réinscription en
PDF
MsgBox "Conversion PDF à faire"
Ok_Pdf = ConvertReportToPDF("Cerfa", ,
CurrentProject.Path & "Cerfa.pdf", False, False)
MsgBox "Conversion PDF faite"
' If Not Ok_Pdf Then
' MsgBox "Erreur lors de la création
du fichier PDF"
' Else
' Envoyer le mail
SendMailCDO Expediteur, _
Rst_tblCerfa("Email"), _
"Fiche Inscription", _
"Bonjour," & vbCrLf &
"Vous trouverez ci-joint votre fiche de réinscription pour la
saison prochaine." & vbCrLf & _
" Cordialement," & vbCrLf &
"Le responsable Inscription", _
CurrentProject.Path &
"Cerfa.pdf"
Kill CurrentProject.Path & "" &
"Cerfa.pdf" 'On efface le Pdf aprés envoi
' End If
' Else
' If Imprime_Fiche Then
'Sinon
'Imprimer la fiche
' DoCmd.OpenReport "Cerfa", acViewNormal
' DoEvents
' End If
' End If
' End If
Rst_tblCerfa.MoveNext
Wend
Rst_tblCerfa.Close
Set Rst_tblCerfa = Nothing
CurrentDb.QueryDefs("rqt Cerfa").SQL = Strsql_ini
Me.Avec_Message = True ' On remet la valeur a vrai
Stop_Progress ""
Else
MsgBox "Pas d'adresse expéditeur (cf Club) !"
End If
End Sub
Bonjour,
J'ai pris le temps de tester . Voici ta base en retour.
J'ai 'forcé' la valeur de Traite a True dans le select case
pour qu'il se passe quelque chose même si le filtre n'est pas
activé ;-)
Tout est Ok jusqu'a la génération du PDF. Aprés je n'ai pas
laisser le programme envoyer quoi que ce soit a tes adhérents.
@+
http://cjoint.com/?elxYugbxny
Re,
Merci beaucoup, mais Access plante au même endroit et de la même
façon qu'avec ma propre tentative. Le Cerfa.pdf a bien été créé.
Si ça marche chez toi, c'est donc qu'il y a qquechose qui ne va
pas dans mon Access. Une référence?, une dll?
On approche, mais j'ai encore besoin de ton aide
Francis
Si tu tente de compiler le code ?
Tu n'as pas une erreur sur une déclaration CDO ? Si oui il faut
rajouter Microsoft CDO for windows 2000 library dans les
bibliotheques.
@+
J'avais bien cette erreur. J'ai donc rajouté Microsoft CDO for
windows 2000 library. A la compil, l'erreur a disparu, mais ça
plante toujours de la même façon.
L'ordre des items dans la liste des modules cochés a-t-il une
importance?
Par ailleurs, je n'ai pas de modules relatifs à PDF actif dans la
bibliothèque, alors que j'en vois plusieurs dans la liste. Normal
aussi?
@+
Bon ben là on est dans une impasse :-(
Sur mon poste aucun soucis avec la base que je t'ai retransferer.
Quant aux modules PDF l'appli n'en à pas besoin puisque toutes les
opérations de conversions PDF passent par les deux DLL de Mr Lebans.
En mode debug peux tu tracer l'endroit exact à partir duquel access
se plante ?
Peux tu faire l'essai de cette base sur un autre poste ?
As tu essayé de creer une base vide avec ta version d'access et d'y
importer les objets de la base de test puis de recompiler aprés
avoir ajouter les rérérences de bibliothéques ?
Derniére question (stupide peut-être) : entre deux essais as tu
rebooté ton PC ?
@+
J'ai rebooté: idem.
Je vais aller pas à pas dans tes propositions, en commençant pas
tester la base sur le portable de ma femme.
A mon avis, c'est dans modReportToPdf que ça coince car avec les
balises que j'ai mises sur ton module, on y entre, mais on n'en sort
pas sans planter Access. Je vais y aller méthodiquement, et je te
tiens au courant
@+
Francis
as tu mis les derniéres versions des DLL de Lebans ?
Oui, ça c'est bon depuis le début.
Sur le portable, c'est kif-kif.
Je crois avoir fait un hénaurme bon en avant: j'ai remplacé le module
ConvertReportToPDF qui datait d'une version précédente de ton appli
"Suivi joueurs" par celle de la v3, et là j'ai des messages "Plantage
lors de la création du fichier PDF", qui prouvent qu'on sort bien de
ce module.
J'accepte (OK), et les mails sont envoyés quand il y a une adresse,
sinon ils sont bien imprimés si j'ai mis l'option pour.
Donc, c'est comme si c'était tout bon, à part ce message incongru. Tu
as une idée de la raison pour laquelle ça serait pas bon, alors que ça
a l'air d'être ok.
@+
Bon, là je crois que je suis complètement out, car ce message, c'est moi
qui l'ai mis là comme balise. A force, je ne sais plus trop ce que j'ai
bricolé et ce qui vient de toi. :/ Un peu de ménage s'impose.
Ce serait donc tout bon cette fois-ci.
Un très grand merci, Fabien. Si on était plus proche l'un de l'autre, je
te paierais un pot bien mérité.
A une prochaine aventure, en espérant que celle-ci est bien close.
@+
Francis
Bonjour Fabien Ça ne marche malheureusement pas comme ça devrait. Alors, pour essayer d'y voir clair, j'ai choisi de ne pas utiliser les requêtes de filtrage que tu as faites. Mon fichier tblCerfa ne contient plus que des adhérents avec email. Je dois donc systématiquement transformer en pdf et envoyer. J'ai donc modifié ton code comme ci-après. Avec les balises que j'y ai mises, j'ai remarqué que: - Traite = Rst_tblCerfa etc... ne donne sans doute pas le résultat voulu, car si je laisse If Traite actif, je shunte tout le reste - En ayant rendu ce If inopérant, je vais bien jusqu'à: Ok_Pdf = ConvertReportToPDF etc... et après quelques secondes, Access plante (Microsoft Access a rencontré un problème et doit être fermé. Etc...). Je ne vais pas jusqu'au message disant que la conversion est faite, mais en pratique, le document Cerfa.pdf a bien été établi.
J'espère que tu y verras clair et que tu sauras me sortir de là. @+ Francis
Private Sub Envoi_Click() Dim Filtre, Strsql_ini As String Dim Rst_tblCerfa As DAO.Recordset Dim Traite, Ok_Pdf, Imprime_Fiche As Boolean Dim Expediteur As String Expediteur = Nz(DLookup("[E-Mail]", "Club", ""), "") If Expediteur <> "" Then Set Rst_tblCerfa = CurrentDb.OpenRecordset("tblCerfa") 'On ouvre le jeux d'enregistrement que l'on va parcourir Strsql_ini = CurrentDb.QueryDefs("rqt Cerfa").SQL ' Sauvegarde de la chaine Sql Initiale Go_Progress "Traitements en cours . Patientez svp ..." ' Imprime_Fiche = MsgBox("Si pas d'adresse Mail, impression des fiches ? ", vbYesNo, "On Imprime ?") = vbYes While Not Rst_tblCerfa.EOF
Traite = Rst_tblCerfa("ordre") = val(Me.Choix_Nom) ' End If ' If Traite Then 'On adapte la source de l'état a l'enregistrement a imprimer CurrentDb.QueryDefs("rqt Cerfa").SQL = "select * from TblCerfa where [IDMembre]=" & Rst_tblCerfa("IDMembre") ' If Rst_tblCerfa("Email") <> "" Then 'Si adresse mail ' Convertir la fiche de réinscription en PDF MsgBox "Conversion PDF à faire" Ok_Pdf = ConvertReportToPDF("Cerfa", , CurrentProject.Path & "Cerfa.pdf", False, False) MsgBox "Conversion PDF faite" ' If Not Ok_Pdf Then ' MsgBox "Erreur lors de la création du fichier PDF" ' Else ' Envoyer le mail SendMailCDO Expediteur, _ Rst_tblCerfa("Email"), _ "Fiche Inscription", _ "Bonjour," & vbCrLf & "Vous trouverez ci-joint votre fiche de réinscription pour la saison prochaine." & vbCrLf & _ " Cordialement," & vbCrLf & "Le responsable Inscription", _ CurrentProject.Path & "Cerfa.pdf" Kill CurrentProject.Path & "" & "Cerfa.pdf" 'On efface le Pdf aprés envoi ' End If ' Else ' If Imprime_Fiche Then 'Sinon 'Imprimer la fiche ' DoCmd.OpenReport "Cerfa", acViewNormal ' DoEvents ' End If ' End If ' End If Rst_tblCerfa.MoveNext Wend Rst_tblCerfa.Close Set Rst_tblCerfa = Nothing CurrentDb.QueryDefs("rqt Cerfa").SQL = Strsql_ini Me.Avec_Message = True ' On remet la valeur a vrai Stop_Progress "" Else MsgBox "Pas d'adresse expéditeur (cf Club) !" End If End Sub
Bonjour, J'ai pris le temps de tester . Voici ta base en retour. J'ai 'forcé' la valeur de Traite a True dans le select case pour qu'il se passe quelque chose même si le filtre n'est pas activé ;-) Tout est Ok jusqu'a la génération du PDF. Aprés je n'ai pas laisser le programme envoyer quoi que ce soit a tes adhérents. @+ http://cjoint.com/?elxYugbxny
Re, Merci beaucoup, mais Access plante au même endroit et de la même façon qu'avec ma propre tentative. Le Cerfa.pdf a bien été créé. Si ça marche chez toi, c'est donc qu'il y a qquechose qui ne va pas dans mon Access. Une référence?, une dll? On approche, mais j'ai encore besoin de ton aide Francis
Si tu tente de compiler le code ? Tu n'as pas une erreur sur une déclaration CDO ? Si oui il faut rajouter Microsoft CDO for windows 2000 library dans les bibliotheques. @+
J'avais bien cette erreur. J'ai donc rajouté Microsoft CDO for windows 2000 library. A la compil, l'erreur a disparu, mais ça plante toujours de la même façon. L'ordre des items dans la liste des modules cochés a-t-il une importance? Par ailleurs, je n'ai pas de modules relatifs à PDF actif dans la bibliothèque, alors que j'en vois plusieurs dans la liste. Normal aussi? @+
Bon ben là on est dans une impasse :-( Sur mon poste aucun soucis avec la base que je t'ai retransferer. Quant aux modules PDF l'appli n'en à pas besoin puisque toutes les opérations de conversions PDF passent par les deux DLL de Mr Lebans. En mode debug peux tu tracer l'endroit exact à partir duquel access se plante ? Peux tu faire l'essai de cette base sur un autre poste ? As tu essayé de creer une base vide avec ta version d'access et d'y importer les objets de la base de test puis de recompiler aprés avoir ajouter les rérérences de bibliothéques ? Derniére question (stupide peut-être) : entre deux essais as tu rebooté ton PC ? @+
J'ai rebooté: idem. Je vais aller pas à pas dans tes propositions, en commençant pas tester la base sur le portable de ma femme. A mon avis, c'est dans modReportToPdf que ça coince car avec les balises que j'ai mises sur ton module, on y entre, mais on n'en sort pas sans planter Access. Je vais y aller méthodiquement, et je te tiens au courant @+ Francis
as tu mis les derniéres versions des DLL de Lebans ?
Oui, ça c'est bon depuis le début. Sur le portable, c'est kif-kif. Je crois avoir fait un hénaurme bon en avant: j'ai remplacé le module ConvertReportToPDF qui datait d'une version précédente de ton appli "Suivi joueurs" par celle de la v3, et là j'ai des messages "Plantage lors de la création du fichier PDF", qui prouvent qu'on sort bien de ce module. J'accepte (OK), et les mails sont envoyés quand il y a une adresse, sinon ils sont bien imprimés si j'ai mis l'option pour. Donc, c'est comme si c'était tout bon, à part ce message incongru. Tu as une idée de la raison pour laquelle ça serait pas bon, alors que ça a l'air d'être ok. @+
Bon, là je crois que je suis complètement out, car ce message, c'est moi qui l'ai mis là comme balise. A force, je ne sais plus trop ce que j'ai bricolé et ce qui vient de toi. :/ Un peu de ménage s'impose. Ce serait donc tout bon cette fois-ci. Un très grand merci, Fabien. Si on était plus proche l'un de l'autre, je te paierais un pot bien mérité. A une prochaine aventure, en espérant que celle-ci est bien close. @+ Francis