OVH Cloud OVH Cloud

Détresse Publipostage Word

3 réponses
Avatar
Gringo
Au secours !

Aie Aie Aie !!! J'avais un formulaire qui effectuait un=20
mailmerge avec Word ... ca fonctionnait =E0 merveille ! J'ai=20
par erreur effac=E9 ce formulaire et j'ai d=FB le recommencer.=20
Maintenant, ma fusion ne fonctionne plus ... j'ai un=20
message d'erreur de Word comme quoi le document principal=20
de fusion requiert une source de donn=E9es ! Le probl=E8me,=20
c'est que je lui en assigne une et j'enregistre. Si=20
j'ouvres directement le document dans Word, la source de=20
donn=E9es est encore l=E0. Si je demande un mailmerge a partir=20
de Access ... la source de donn=E9es disparait du fichier=20
word !?!?! Pourquoi ?

Merci =E9norm=E9ment

Gringo

Private Sub FusionCertificat()
On Error GoTo Err_Fusion_Click
Dim Qry As DAO.QueryDef
Dim strSql As String
Dim strNewSql As String
Dim wdApp As Word.Application
=20
'lit la d=E9finition SQL de la requ=EAte publipostage
Set Qry =3D CurrentDb.QueryDefs("reqMembres")
strSql =3D Qry.Sql
=20
If stFilter =3D "" Then
strNewSql =3D "SELECT [reqEntreprises].[CNUM],=20
[reqEntreprises].[CNOM], [reqEntreprises].[Membre],=20
[reqEntreprises].[Renouvellement] FROM reqEntreprises=20
WHERE ((([reqEntreprises].[Membre]) =3D True)) ORDER BY=20
[reqEntreprises].[CNOM];"
Else 'ajoute une condition where
strNewSql =3D "SELECT [reqEntreprises].[CNUM],=20
[reqEntreprises].[CNOM], [reqEntreprises].[Membre],=20
[reqEntreprises].[Renouvellement] FROM reqEntreprises=20
WHERE ((([reqEntreprises].[Membre]) =3D True)" & stFilter=20
& ") ORDER BY [reqEntreprises].[CNOM];"
End If
=20
lbltest.Caption =3D strNewSql 'temporaire pour voir la=20
requ=EAte sql cr=E9=E9e
=20
Qry.Sql =3D strNewSql 'met a jour la requ=EAte SQL
=20
'cr=E9e le publilpostage
Set wdApp =3D CreateObject("Word.Application")
With wdApp
.Visible =3D True
.Documents.Open "C:\Micro Services=20
SIG\BDACC\Certificat2004.doc"
With .ActiveDocument
.MailMerge.Destination =3D wdSendToNewDocument
.MailMerge.Execute
.Close wdDoNotSaveChanges
End With
End With
=20
'remet la d=E9finition SQL comme elle =E9tait au d=E9part
Qry.Sql =3D strSql
Set wdApp =3D Nothing
=20
Exit_Fusion_Click:
Exit Sub

Err_Fusion_Click:
Qry.Sql =3D strSql
MsgBox Err.Description
Resume Exit_Fusion_Click

End Sub

3 réponses

Avatar
Raymond [mvp]
Bonsoir.

est-ce que ça ne viendrait pas de ton : Close wdDoNotSaveChanges
c'est une fermeture de word sans sauvegarde.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Gringo" a écrit dans le message de
news:03bb01c3c025$3b0df800$
Au secours !

Aie Aie Aie !!! J'avais un formulaire qui effectuait un
mailmerge avec Word ... ca fonctionnait à merveille ! J'ai
par erreur effacé ce formulaire et j'ai dû le recommencer.
Maintenant, ma fusion ne fonctionne plus ... j'ai un
message d'erreur de Word comme quoi le document principal
de fusion requiert une source de données ! Le problème,
c'est que je lui en assigne une et j'enregistre. Si
j'ouvres directement le document dans Word, la source de
données est encore là. Si je demande un mailmerge a partir
de Access ... la source de données disparait du fichier
word !?!?! Pourquoi ?

Merci énormément

Gringo

Private Sub FusionCertificat()
On Error GoTo Err_Fusion_Click
Dim Qry As DAO.QueryDef
Dim strSql As String
Dim strNewSql As String
Dim wdApp As Word.Application

'lit la définition SQL de la requête publipostage
Set Qry = CurrentDb.QueryDefs("reqMembres")
strSql = Qry.Sql

If stFilter = "" Then
strNewSql = "SELECT [reqEntreprises].[CNUM],
[reqEntreprises].[CNOM], [reqEntreprises].[Membre],
[reqEntreprises].[Renouvellement] FROM reqEntreprises
WHERE ((([reqEntreprises].[Membre]) = True)) ORDER BY
[reqEntreprises].[CNOM];"
Else 'ajoute une condition where
strNewSql = "SELECT [reqEntreprises].[CNUM],
[reqEntreprises].[CNOM], [reqEntreprises].[Membre],
[reqEntreprises].[Renouvellement] FROM reqEntreprises
WHERE ((([reqEntreprises].[Membre]) = True)" & stFilter
& ") ORDER BY [reqEntreprises].[CNOM];"
End If

lbltest.Caption = strNewSql 'temporaire pour voir la
requête sql créée

Qry.Sql = strNewSql 'met a jour la requête SQL

'crée le publilpostage
Set wdApp = CreateObject("Word.Application")
With wdApp
.Visible = True
.Documents.Open "C:Micro Services
SIGBDACCCertificat2004.doc"
With .ActiveDocument
.MailMerge.Destination = wdSendToNewDocument
.MailMerge.Execute
.Close wdDoNotSaveChanges
End With
End With

'remet la définition SQL comme elle était au départ
Qry.Sql = strSql
Set wdApp = Nothing

Exit_Fusion_Click:
Exit Sub

Err_Fusion_Click:
Qry.Sql = strSql
MsgBox Err.Description
Resume Exit_Fusion_Click

End Sub
Avatar
Non, je vais directemenr dans Word et j'enregistre
manuellement. Je pense que j'ai tout essayé, j'ai refait
le document, un peu plus simple, dana access directement.

Merci

-----Message d'origine-----
Bonsoir.

est-ce que ça ne viendrait pas de ton : Close
wdDoNotSaveChanges

c'est une fermeture de word sans sauvegarde.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Gringo" a écrit dans le message de
news:03bb01c3c025$3b0df800$
Au secours !

Aie Aie Aie !!! J'avais un formulaire qui effectuait un
mailmerge avec Word ... ca fonctionnait à merveille ! J'ai
par erreur effacé ce formulaire et j'ai dû le recommencer.
Maintenant, ma fusion ne fonctionne plus ... j'ai un
message d'erreur de Word comme quoi le document principal
de fusion requiert une source de données ! Le problème,
c'est que je lui en assigne une et j'enregistre. Si
j'ouvres directement le document dans Word, la source de
données est encore là. Si je demande un mailmerge a partir
de Access ... la source de données disparait du fichier
word !?!?! Pourquoi ?

Merci énormément

Gringo

Private Sub FusionCertificat()
On Error GoTo Err_Fusion_Click
Dim Qry As DAO.QueryDef
Dim strSql As String
Dim strNewSql As String
Dim wdApp As Word.Application

'lit la définition SQL de la requête publipostage
Set Qry = CurrentDb.QueryDefs("reqMembres")
strSql = Qry.Sql

If stFilter = "" Then
strNewSql = "SELECT [reqEntreprises].[CNUM],
[reqEntreprises].[CNOM], [reqEntreprises].[Membre],
[reqEntreprises].[Renouvellement] FROM reqEntreprises
WHERE ((([reqEntreprises].[Membre]) = True)) ORDER BY
[reqEntreprises].[CNOM];"
Else 'ajoute une condition where
strNewSql = "SELECT [reqEntreprises].[CNUM],
[reqEntreprises].[CNOM], [reqEntreprises].[Membre],
[reqEntreprises].[Renouvellement] FROM reqEntreprises
WHERE ((([reqEntreprises].[Membre]) = True)" & stFilter
& ") ORDER BY [reqEntreprises].[CNOM];"
End If

lbltest.Caption = strNewSql 'temporaire pour voir la
requête sql créée

Qry.Sql = strNewSql 'met a jour la requête SQL

'crée le publilpostage
Set wdApp = CreateObject("Word.Application")
With wdApp
.Visible = True
.Documents.Open "C:Micro Services
SIGBDACCCertificat2004.doc"
With .ActiveDocument
.MailMerge.Destination = wdSendToNewDocument
.MailMerge.Execute
.Close wdDoNotSaveChanges
End With
End With

'remet la définition SQL comme elle était au départ
Qry.Sql = strSql
Set wdApp = Nothing

Exit_Fusion_Click:
Exit Sub

Err_Fusion_Click:
Qry.Sql = strSql
MsgBox Err.Description
Resume Exit_Fusion_Click

End Sub


.



Avatar
Raymond [mvp]
Bonjour.

J'en reviens toujours à mon dada. tu fais un execute et un close nosave, tu
ne peux pas retrouver tes modifs dans le document avec ça ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


a écrit dans le message de
news:0c7201c3c0b8$a246cbd0$
Non, je vais directemenr dans Word et j'enregistre
manuellement. Je pense que j'ai tout essayé, j'ai refait
le document, un peu plus simple, dana access directement.

Merci