Problème publipostage ACCESS - Word

Fermé
Poupinou10 - 15 sept. 2008 à 10:04
 Poupinou10 - 19 sept. 2008 à 10:06
Bonjour,

Voilà je suis novice en code VB mais j'aimerais faire un truc qui me simplifierais la vie !!
J'ai une base de données où nous gérons nos adhérents (sous ACCESS), à partir d'un formulaire j'aimerais pouvoir générer un courrier automatiquement, juste en cliquant sur un bouton. Il faut que ce courrier ne sorte que pour l'adhérent sur lequel mon formulaire est ouvert.

Donc j'ai créée un module avec cette commande : nom MergeIt ?

Option Compare Database
Sub Publipostage_Vers_Document()
Dim wdApp As Word.Application
Dim strCheminDoc As String, strCheminFusion As String
Dim strSQL As String
strCheminDoc = "C:\Documents and Settings\FUSION.doc"
strCheminFusion = "C:\Documents and Settings\RESULTAT.doc"
strSQL = "SELECT * FROM [INTRO]"
Set wdApp = New Word.Application
With wdApp
.Documents.Open strCheminDoc
With .ActiveDocument.MailMerge
.OpenDataSource Name:=CurrentProject.FullName, _
SQLStatement:=strSQL, _
ReadOnly:=True
.Destination = wdSendToNewDocument
.Execute
End With

.ActiveDocument.SaveAs FileName:=strCheminFusion
.Quit SaveChanges:=wdDoNotSaveChanges
End With
Set wdApp = Nothing
End Sub

Puis sur mon formulaire j'ai créée un bouton avec comme commande

Option Compare Database
Private Sub cmdPublipostage_Click()

Call MergeIt

End Sub


Mais cela ne marche pas !
J'ai apparemment réussi à le faire marcher une fois mais Word ne s'était pas ouvert il m'avait juste créé un nouveau fichier.

D'avance merci, pour vos éclairages.

Je suis en WORD2003 - Visual Basic6.3 et ACCESS2002
A voir également:

4 réponses

LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
15 sept. 2008 à 22:12
Wow!!!

Je te montre plus simple:

Tu crées dans Word le document maître, basé sur les données Access, et ensuite tu n'as plus qu'à ouvrir ce doc à partir d'Access (Bouton ou plus simple, lien hypertexte)
1
ok, merci
Mais est-ce que mon courrier sera rempli automatiquement ??
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
18 sept. 2008 à 15:13
Oui; Il te restera quand même à lancer la fusion vers l'imprimante, mais c'est tout.
0
Bonjour,

J'ai réussi à créer mon document automatique à partir d'un formulaire ACCESS.
Module :
Public Sub Publipostage_Vers_Document()
Dim wdApp As Word.Application
Dim strCheminDoc As String, strCheminFusion As String
Dim strSQL As String
strCheminDoc = "C:\Documents and Settings\FUSION.doc"
strCheminFusion = "C:\Documents and Settings\RESULTAT.doc"
strSQL = "SELECT * FROM [INTRO]"
Set wdApp = New Word.Application
With wdApp
.Documents.Open strCheminDoc
With .ActiveDocument.MailMerge
.OpenDataSource Name:=CurrentProject.FullName, _
SQLStatement:=strSQL, _
ReadOnly:=True
.Destination = wdSendToNewDocument
.Execute
End With
.ActiveDocument.SaveAs FileName:=strCheminFusion
.Quit SaveChanges:=wdDoNotSaveChanges
End With
Set wdApp = Nothing

End Sub

Avec un bouton d'exécution :
Private Sub Commande42_Click()
Call Publipostage_Vers_Document

End Sub

Donc ça marche pas trop mal.

Mais il me reste 3 petits trucs à régler :
- Word ne s'ouvre pas automatiquement, il faut que j'aille chercher le fichier et que je l'ouvre manuellement
- Sous word ma date qui est au format JJ/MM/AAAA sous ACCES devient MM/JJ/AAAA
- Comment faire pour que seul la page du formulaire en cours s'ouvre dans word et pas tout le formulaire en entier.

D'avance merci, ça fait quelques semaines que je bosse la dessus (et oui je suis novice !) et là je cale.
0