Bonsoir à tous
N'ayant pas trouvé mon bonheur je vous demande de l'aide.
Je souhaite faire du publipostage sur Word.
j'ai un début de code VBA pour une liaison avec une table access mais rien sur les requêtes.
Pouvez vous m'aider?
Merci
![]()
Bonsoir à tous
N'ayant pas trouvé mon bonheur je vous demande de l'aide.
Je souhaite faire du publipostage sur Word.
j'ai un début de code VBA pour une liaison avec une table access mais rien sur les requêtes.
Pouvez vous m'aider?
Merci
![]()
Salut
Et serait-il possible d'avoir ce début de code ?
Vous travaillez avec les champs de fusion ou les signets ?
"Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
UR - ESIROI - GPME/CG/DCG8
QTH :21°19'18"S - 055°25'32"E
Inutile de me contacter par MP
Merci de cliquer sursi la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur
Bonjour et merci pour votre intérêt hyperion13.
Voici le code que j'ai trouvé sur le site
je voudrais faire la liaison avec une requête et non une table.
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 Sub ConnexionDBAccess() 'Déclaration des variables Dim db As DAO.Database Dim rs As DAO.Recordset Dim sql As String Dim chemin As String chemin = ThisDocument.Path 'Affectation de la sentence SQL sql = "SELECT * From TABres" 'Affectation des Objets d'Access aux données Set db = DBEngine.OpenDatabase(chemin & "\convention.accdb") Set rs = db.OpenRecordset(sql) 'Boucle pour la récupération des données While Not rs.EOF Debug.Print rs.Fields(2) rs.MoveNext Wend 'Libération des objets rs.Close db.Close Set rs = Nothing Set db = Nothing End Sub
J'ai fait quelques modifications, alors désolé pour les erreurs
Oui je travaillerai avec les champs de fusion.
merci encore.
re,
A adapter
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim dbs As DAO.Database Dim qdf As DAO.QueryDef Dim rst As DAO.Recordset Set qdf = CurrentDb.QueryDefs("nomQuery") Set rst = qdf.OpenRecordset
"Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
UR - ESIROI - GPME/CG/DCG8
QTH :21°19'18"S - 055°25'32"E
Inutile de me contacter par MP
Merci de cliquer sursi la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur
Merci
Je regarde cela, je reviendrai surement.
Bonne soirée
Bonjour,
La lecture de ce tutoriel titré Piloter un publipostage Word depuis Access vous aidera sans doute à appréhender le sujet
Philippe Tulliez
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer suret si celle-ci est pertinente pensez à voter
Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier
Bonjour et merci pour votre réponse Philippe Tulliez.
J'avais lu ce tuto( trop compliqué pour mon niveau en vba ), je ne veut pas piloter depuis accès.
J'ai refait mon code avec les information de Hyperion13 .
Mais j'ai une erreur Objet requit, surement une erreur de débutant.
Suis je dans la bonne direction?
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 Sub ConnexionDBAccess() 'Déclaration des variables Dim db As DAO.Database Dim rs As DAO.Recordset Dim qdf As DAO.QueryDef Dim chemin As String chemin = ThisDocument.Path 'Affectation de la sentence SQL 'Affectation des Objets d'Access aux données Set db = DBEngine.OpenDatabase(chemin & "\conventions.accdb") Set qdf = CurrentDb.QueryDefs("REQ1") Set rs = qdf.OpenRecordset 'Boucle pour la récupération des données While Not rs.EOF Debug.Print rs.Fields(2) rs.MoveNext Wend 'Libération des objets rs.Close db.Close Set rs = Nothing Set db = Nothing End Sub
Merci
re,
Si vous pouviez correctement contextualiser le problème, car le code que vous proposez concerne le pilotage du publipostage à partir d'Access.
Vous n'avez nul besoin des objets DAO et tout le reste.
Il y a de la documentation ici pour ce que vous cherchez à réaliser.
Un peu comme ici
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 Sub lancerPublipostage() Dim wdDoc As Word.Document Dim strFilePath As String, strFileName As String strFilePath = ThisDocument.Path & Application.PathSeparator strFileName = "nomBdd.accdb" strFilePath = strFilePath & strFileName Set wdDoc = ThisDocument With wdDoc .MailMerge .MainDocumentType = WdMailMergeMainDocType.wdFormLetters .OpenDataSource Name:=strFilePath, _ LinkToSource:=True, _ AddToRecentFiles:=False, _ Connection:="QUERY nomQuery" .SuppressBlankLines = True .Destination = wdSendToNewDocument .Execute Pause:=False End With End Sub
"Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
UR - ESIROI - GPME/CG/DCG8
QTH :21°19'18"S - 055°25'32"E
Inutile de me contacter par MP
Merci de cliquer sursi la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur
Bonsoir
Désolé pour le malentendu, je pensais que le code que j'avais trouve sur https://heureuxoli.developpez.com/of...ostage/#LVII-C était du word.
Ne trouvant que des codes avec des liaisons des tables, j'ai mal cherché.
Il me reste du chemin a faire
Concernant Cela fait partie du même projet.
Je vous présente mes excuses pour ne pas avoir répondu a votre retour.
Encore merci pour le code, word se connecte directement à la requête.
Bonne soirée
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager