OVH Cloud OVH Cloud

Publipostage depuis Access

5 réponses
Avatar
Luis
Bonjour,
Je reviens sur le code qu'Ilan m'a transmis, cel=E0 marche=20
tr=E8s bien sauf lorsqu'il y a unchamp vide dans le=20
formulaire, voici ce que j'utilise:
Dim W_App As Object
Set W_App =3D CreateObject("Word.Application")
Dim Db As DAO.Database
Dim RS As DAO.Recordset
Dim strSQL As String
Set Db =3D CurrentDb
Set RS =3D Forms![PROSPECTACTIVITESELECTOPST].Recordset
RS.MoveFirst

With W_App
.Visible =3D True
Do Until RS.EOF
.Documents.Open=20
("c:\Publipostage\MailContact.doc")
.ActiveDocument.Bookmarks("Contact").Select
.Selection.InsertAfter RS.Fields("Bcontact")
.ActiveDocument.Bookmarks("Soci=E9t=E9").Select
.Selection.InsertAfter RS.Fields("RAISON=20
SOCIALE")
.ActiveDocument.Bookmarks("D=E9partement").Select
.Selection.InsertAfter RS.Fields
("Bd=E9partement")
.ActiveDocument.Bookmarks("ADRESSE").Select
.Selection.InsertAfter RS.Fields("ADRESSE")
.ActiveDocument.Bookmarks("NP").Select
.Selection.InsertAfter RS.Fields("NP")
.ActiveDocument.Bookmarks("Ville").Select
.Selection.InsertAfter RS.Fields("Ville")
=20
.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
RS.MoveNext
Loop
RS.Close
Set RS =3D Nothing
Set Db =3D Nothing
.Quit
End With
Set W_App =3D Nothing

Comment faire pour que si un champ du formulaire est null,=20
il (ou ils si plusieurs) soit ignor=E9 sans cr=E9er d'erreur=20
dans access. Et que la proc=E9dure se poursuive normalement.
Merci pour vos conseils.
Luis

5 réponses

Avatar
Raymond [mvp]
Bonjour Luis et bon dimanche.

Tu places la fonction Nz sur tous les champs du recordset, exemple:
.Selection.InsertAfter Nz(RS.Fields("Bcontact"), "")
etc.. etc..

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Luis" a écrit dans le message de
news: 105701c4b9c2$1dcaa3f0$
Bonjour,
Je reviens sur le code qu'Ilan m'a transmis, celà marche
très bien sauf lorsqu'il y a unchamp vide dans le
formulaire, voici ce que j'utilise:
Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim RS As DAO.Recordset
Dim strSQL As String
Set Db = CurrentDb
Set RS = Forms![PROSPECTACTIVITESELECTOPST].Recordset
RS.MoveFirst

With W_App
.Visible = True
Do Until RS.EOF
.Documents.Open
("c:PublipostageMailContact.doc")
.ActiveDocument.Bookmarks("Contact").Select
.Selection.InsertAfter RS.Fields("Bcontact")
.ActiveDocument.Bookmarks("Société").Select
.Selection.InsertAfter RS.Fields("RAISON
SOCIALE")
.ActiveDocument.Bookmarks("Département").Select
.Selection.InsertAfter RS.Fields
("Bdépartement")
.ActiveDocument.Bookmarks("ADRESSE").Select
.Selection.InsertAfter RS.Fields("ADRESSE")
.ActiveDocument.Bookmarks("NP").Select
.Selection.InsertAfter RS.Fields("NP")
.ActiveDocument.Bookmarks("Ville").Select
.Selection.InsertAfter RS.Fields("Ville")

.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
RS.MoveNext
Loop
RS.Close
Set RS = Nothing
Set Db = Nothing
.Quit
End With
Set W_App = Nothing

Comment faire pour que si un champ du formulaire est null,
il (ou ils si plusieurs) soit ignoré sans créer d'erreur
dans access. Et que la procédure se poursuive normalement.
Merci pour vos conseils.
Luis
Avatar
Raymond [mvp]
.../...

Tu peux aussi tester pas If IsNull et ne pas insérer le champ.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Raymond [mvp]" a écrit dans le message de
news: %
Bonjour Luis et bon dimanche.

Tu places la fonction Nz sur tous les champs du recordset, exemple:
.Selection.InsertAfter Nz(RS.Fields("Bcontact"), "")
etc.. etc..


Avatar
Luis
Bonjour Raymond,
J'espère que tu as aussi passé un bon dimanche.

Avec NZ j'ai une erreur avec en surbrillance:
.ActiveDocument.PrintOut False
Et Word se bloque sur la page précedent le client qui a
trouvé un champ vide.
Tu me dis dans le message suivant d'utiliser IF is Null
mais avec
If isnull je ne sais pas comment faire.
Merci.
Luis
-----Message d'origine-----
Bonjour Luis et bon dimanche.

Tu places la fonction Nz sur tous les champs du
recordset, exemple:

.Selection.InsertAfter Nz(RS.Fields("Bcontact"), "")
etc.. etc..

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Luis" a écrit dans
le message de

news: 105701c4b9c2$1dcaa3f0$
Bonjour,
Je reviens sur le code qu'Ilan m'a transmis, celà marche
très bien sauf lorsqu'il y a unchamp vide dans le
formulaire, voici ce que j'utilise:
Dim W_App As Object
Set W_App = CreateObject("Word.Application")
Dim Db As DAO.Database
Dim RS As DAO.Recordset
Dim strSQL As String
Set Db = CurrentDb
Set RS = Forms![PROSPECTACTIVITESELECTOPST].Recordset
RS.MoveFirst

With W_App
.Visible = True
Do Until RS.EOF
.Documents.Open
("c:PublipostageMailContact.doc")
.ActiveDocument.Bookmarks("Contact").Select
.Selection.InsertAfter RS.Fields("Bcontact")
.ActiveDocument.Bookmarks("Société").Select
.Selection.InsertAfter RS.Fields("RAISON
SOCIALE")
.ActiveDocument.Bookmarks
("Département").Select

.Selection.InsertAfter RS.Fields
("Bdépartement")
.ActiveDocument.Bookmarks("ADRESSE").Select
.Selection.InsertAfter RS.Fields("ADRESSE")
.ActiveDocument.Bookmarks("NP").Select
.Selection.InsertAfter RS.Fields("NP")
.ActiveDocument.Bookmarks("Ville").Select
.Selection.InsertAfter RS.Fields("Ville")

.ActiveDocument.PrintOut False
.ActiveDocument.Close wdDoNotSaveChanges
RS.MoveNext
Loop
RS.Close
Set RS = Nothing
Set Db = Nothing
.Quit
End With
Set W_App = Nothing

Comment faire pour que si un champ du formulaire est null,
il (ou ils si plusieurs) soit ignoré sans créer d'erreur
dans access. Et que la procédure se poursuive normalement.
Merci pour vos conseils.
Luis


.



Avatar
Raymond [mvp]
Bonjour Luis.

tu as du te tromper dans la ligne précédant le printout. Si ça passe sur les
autres , il n'y a pas de raison. vérifie tes parenthèses.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Luis" a écrit dans le message de
news: 125501c4ba6b$8c65df10$
Bonjour Raymond,
J'espère que tu as aussi passé un bon dimanche.

Avec NZ j'ai une erreur avec en surbrillance:
.ActiveDocument.PrintOut False
Et Word se bloque sur la page précedent le client qui a
trouvé un champ vide.
Tu me dis dans le message suivant d'utiliser IF is Null
mais avec
If isnull je ne sais pas comment faire.
Merci.
Luis
Avatar
Luis
Rebonjour Raymond,
Tu avais raison.
Merci.
Luis
-----Message d'origine-----
Bonjour Luis.

tu as du te tromper dans la ligne précédant le printout.
Si ça passe sur les

autres , il n'y a pas de raison. vérifie tes parenthèses.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Luis" a écrit dans
le message de

news: 125501c4ba6b$8c65df10$
Bonjour Raymond,
J'espère que tu as aussi passé un bon dimanche.

Avec NZ j'ai une erreur avec en surbrillance:
.ActiveDocument.PrintOut False
Et Word se bloque sur la page précedent le client qui a
trouvé un champ vide.
Tu me dis dans le message suivant d'utiliser IF is Null
mais avec
If isnull je ne sais pas comment faire.
Merci.
Luis


.