Bonjour Tout le monde!
Pour commencer, un grand merci pour toutes vos discutions et les tutoriels que j'ai découverts sur le site et qui m'ont apporter une aide inestimable tout au long de la création de mon application.
Devant mon incapacité à résoudre un dernier problème et sachant qu'aucun problème ne résiste face à vos connaissances, je me permets de partager mon problème avec vous.
J'ai créé une base (que l'on appellera base01) que je souhaite utiliser au format accdr.
Grâce à un bouton sur un formulaire, j'aimerais créer une table puis lancer un publipostage sur word. Cependant, l'extension accdr semble ne pas convenir à word qui ne peut pas lire le contenu de la table contenue dans la base01.
J'ai donc décié de créer cette table dans une une base access (que l'on appellera base02) puis de lancer un publipostage depuis la base01 en utilisant les données de la base02.
Comment paramétrer le publipostage pour permettre à word de contenir les données contenues dans la base02?
Je pense que mon instruction SQL est fausse : strSQL = "SELECT * FROM [Table_Rapport] IN """ & strCheminBase02 & """;"
Car lorsque j'exécute mon code :
* Word affiche le message suivant :* Access affiche le message suivant :"Une erreur s'est produite : Erreur de syntaxe dans la clause FROM"erreur d’exécution '5922' WOrd n'a pas pu ouvrir la source de données
Code Vba : 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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 Private Sub PublipostageWord_Click() Dim wdApp As Word.Application Dim strCheminDoc As String Dim strSQL As String Dim strCheminBase As String 'Exécuter le requete DoCmd.OpenQuery "Requete_Rapport" 'Chemin de la base02 strCheminBase02 = CurrentProject.Path & "\Base02.accdb" ' Chemin du document Word à ouvrir strCheminDoc = CurrentProject.Path & "\Rapport.docx" ' Instruction SQL permettant d'extraire les destinataires strSQL = "SELECT * FROM [Table_Rapport] IN """ & strCheminBase02 & """;" ' Démarrer Word Set wdApp = CreateObject("Word.application") With wdApp ' Rendre Word visible pour faciliter la mise au point .Visible = True ' Ouvrir le document de publipostage .Documents.Open FileName:=strCheminDoc ' Paramétrer le publipostage With .ActiveDocument.MailMerge .OpenDataSource Name:=strCheminBase02, _ SQLStatement:=strSQL, _ ReadOnly:=True ' Diriger le publipostage vers un nouveau document plutôt que vers l'imprimante .Destination = wdSendToNewDocument ' Lancer la fusion .Execute End With 'Mettre le document word au premier plan .Activate End With ' Fermer et libérer les objets wdApp.Documents(strDocSource).Close False Set wdApp = Nothing End Sub
Un énorme merci par avance à tout ceux qui prendront le temps de me répondre
Très belle journée à vous
Partager