Bonjour
Je vous explique mon petit problème concernant le publipostage sous Access 97.
Mon code dans Access est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Dim Fichier_BaseDeDonnees As String Dim Lg_Fichier_BaseDeDonnees As Long Dim Repertoire_BaseDeDonnees As String Dim objWord As Object Dim qdfReport As QueryDef Dim NomRequete As String Dim Parametres_Relance As String Fichier_BaseDeDonnees = Application.CurrentDb.Name Lg_Fichier_BaseDeDonnees = Len(Dir(Application.CurrentDb.Name)) Repertoire_BaseDeDonnees = Left(Application.CurrentDb.Name, Len(Application.CurrentDb.Name) - Lg_Fichier_BaseDeDonnees) ' Exportation de la requête vers le fichier Relance.txt NomRequete = "_TMP_Relance_" & Format(Now, "yyyymmddHHmmss") Set qdfReport = CurrentDb.CreateQueryDef(NomRequete, _ "SELECT * " & _ "FROM PARTICIPATION " & _ "WHERE ID_PARTICIPATION IN (" & Parametres_Relance & ");") DoCmd.TransferText acExportMerge, , qdfReport.Name, Repertoire_BaseDeDonnees & "MODELES\Souhait\Relance\Relance.txt", True CurrentDb.QueryDefs.Delete (NomRequete) ' Publipostage : Lettre de Relance ' Ouverture du fichier publipostage Set objWord = GetObject(Repertoire_BaseDeDonnees & "MODELES\Souhait\Relance\Lettre Relance.doc") ' Rend visible l'application Word objWord.Application.Visible = True ' Ouverture de la source de données de fusion objWord.MailMerge.OpenDataSource Name:=Repertoire_BaseDeDonnees & "MODELES\Souhait\Relance\Relance.txt" ' Exécution de la fusion objWord.MailMerge.Execute ' Suppression des infos de fusion du document objWord.MailMerge.MainDocumentType = -1 ' Fermeture du fichier publipostage objWord.Close Set objWord = Nothing
Précision concernant le fichier word "Lettre Relance.doc" (Word 97):
Ce fichier n'est pas enregistré comme un document principal de fusion : c'est à dire qu'il n'a pas de
source de données qui lui est associée.
Ceci est fait pour que je puisse installer le programme sur différents postes sans modifier à chaque
fois le chemin d'accès de la source de données de mes fichiers word de publipostage.
Si je garde les sources de données de mes fichiers word de publipostage et que j'essaie d'ouvrir ces
fichiers dans Access (avec l'instruction GetObject), il va me demander de rechercher manuellement le
fichier de source de données.
Problème :
Le code marche mais de temps en temps (lorsque le fichier source de données est trop gros), l'instruction
objWord.MailMerge.Execute
renvoit l'erreur suivante :
Erreur d'exécution '4605':
Cette méthode ou propriété n'est pas disponible car le document principal de fusion courant requiert
une source de données.
J'ai l'impression que l'instruction
objWord.MailMerge.OpenDataSource
ne charge pas le fichier source de données avant que l'instruction suivante s'exécute
J'ai essayé de mettre une pause de 5 sec entre les 2 instructions et dans ce cas, ça marche
Question :
Comment dois-je faire pour que l'instruction
objWord.MailMerge.Execute
ne s'execute pas avant que le fichier source ne soit chargé ?
(Sans utiliser une pause car c'est un peu aléatoire comme méthode)
Merci pour votre aide.
A bientôt.
Partager