Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/04/2011, 21h32   #1
Invité de passage
 
Inscription : août 2009
Messages : 60
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : août 2009
Messages : 60
Points : 2
Points : 2
Par défaut Creer un document Word type à partir d'un formulaire

bonjour à tous
je recherche le moyen de créer un courrier type word 2007 partir d'une fiche formulaire access 20007, pour retrouver simplement nom et adresse du destinataire dans un modèle word.
Qui aurait une piste à me donner?

Bonne soiré
A+
samsab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2011, 23h01   #2
Membre éclairé
 
Homme Christophe AUMOITTE
Inscription : octobre 2009
Messages : 254
Détails du profil
Informations personnelles :
Nom : Homme Christophe AUMOITTE
Âge : 43
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : octobre 2009
Messages : 254
Points : 303
Points : 303
Bonsoir Samsab,

Tu peux faire un export *.rtf de ton aperçu avant impression. Tu perds alors la mise en page (trait, cadre, etc.) mais si tu ne veux que le texte, cela devrait te suffir.

Cordialement

Christophe
marsouin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 07h42   #3
Invité de passage
 
Inscription : août 2009
Messages : 60
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : août 2009
Messages : 60
Points : 2
Points : 2
hello
c'est à priori pas la fonction que je recherche; j'aimerais, en partant d'un formulaire et donc de la fiche considérée, pour voir appuyer sur un bouton inclus dans cette fiche pour atterrir directement sur word, dans un courrier intégrant entete et pied de page, et surtout, les coordonnées de destinataire venant de la fiche access.
merci pour vos conseils
samsab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 18h45   #4
Membre éclairé
 
Homme Christophe AUMOITTE
Inscription : octobre 2009
Messages : 254
Détails du profil
Informations personnelles :
Nom : Homme Christophe AUMOITTE
Âge : 43
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : octobre 2009
Messages : 254
Points : 303
Points : 303
Bonsoir,

Alors, je penses que la meilleure solution serait de s'orienter sur du publipostage commandé à partir d'Access et basé sur un modèle Word, lui même stocké dans le même répertoire que ton application.
Tu peux lancer un publipostage qui se connecte soit à une table ou une requête de ton application.

Cordialement

Christophe
marsouin_89 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/04/2011, 20h58   #5
Invité de passage
 
Inscription : août 2009
Messages : 60
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : août 2009
Messages : 60
Points : 2
Points : 2
dans le principe tu as raison; il s'agit "simplement" d'arriver directement sur le bon enregistrement word en fonction publipostage.
sauf que le "simplement" est bien compliqué pour moi.
samsab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 21h26   #6
Membre éclairé
 
Homme Christophe AUMOITTE
Inscription : octobre 2009
Messages : 254
Détails du profil
Informations personnelles :
Nom : Homme Christophe AUMOITTE
Âge : 43
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : octobre 2009
Messages : 254
Points : 303
Points : 303
Bonsoir,

Je m'attendais à cette réponse.
Alors voici un exemple, je n'ai pas eu le temps de le retesté mais cela devrait aller.

Code :
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
Sub PublipostageWord(StrFichier As String)
'StrFichier = "Le chemin de destination de ton publipostage avec une boite de dialogue Enregistrer sous par exemple"
 
'Publipostage par connection direct à Access
Dim StrPubDoc As String
Dim StrBDD As String
 
StrPubDoc = CurrentProject.Path & "\TemplateDoc\MonDoc.doc" 'Chemin du fichier modele de publipostage
StrBDD = CurrentProject.FullName 'Chemin de la base de données en cours
 
'Démarrer Word
Set Wdapp = CreateObject("Word.application") 'Création d'une instance Word
With Wdapp
       .Visible = False 'Word est invisible
 
      'Ouvrir le document
      .Documents.Open FileName:=StrPubDoc, ReadOnly:=False 'Ouverture du fichier modèle en mode création
         'Connection avec la source de données filtrée
        .ActiveDocument.MailMerge.OpenDataSource Name:=NomBase, _
            Connection:="Driver={Microsoft Access Driver (*.mdb)};" & _
            "DBQ=" & StrBDD & "; ReadOnly=false;", _
            SQLStatement:="SELECT * FROM [Rq_Export]WHERE ID=" & Me.MonForm.Id            
            .ActiveDocument.MailMerge.Execute 'Création du fusionnage
            .Documents(StrPubDoc).Close wdDoNotSaveChanges 'Ferme le fichier modèle de publipostage sans l'enregistrer
 
            .ActiveDocument.SaveAs StrFichier 'Enregistre le fichier fusionné
 
            .Documents(StrFichier).Close wdSaveChanges 'Ferme le fichier fusionné
End With
 
Wdapp.Quit 'Quitte Word
 
'Fermer et libérer les objets
Set Wdapp = Nothing
 
End Sub
Ceci implique que ton fichier modèle de publipostage est déjà configuré pour recevoir les valeur de champs. Il y a des tutos là dessus. Eventuellement, cherche sur une FAQ Word.
Tu n'as plus qu'à changer le nom de MonDoc.doc et MonForm.ID si ta clé primaire s'appelle autrement.

Avec çà, tu devrais arriver à quelque chose. Si problème, n'hésites pas à demander, la FAQ est faite pour çà. Je suis dans la zone jusqu'aux alentours de 23H00.

Cordialement

Christophe
marsouin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 06h04   #7
Invité de passage
 
Inscription : août 2009
Messages : 60
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : août 2009
Messages : 60
Points : 2
Points : 2
merci pour ton temps
j'essaie!
A+
samsab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 09h44   #8
Invité de passage
 
Inscription : août 2009
Messages : 60
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : août 2009
Messages : 60
Points : 2
Points : 2
hello
cela merdouille pour une raison certainement évidente mais qui m'échappe
Code :
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
Private Sub Commande111_Click()
Sub PublipostageWord(StrFichier As String)
'StrFichier = "Le chemin de destination de ton publipostage avec une boite de dialogue Enregistrer sous par exemple"
 
'Publipostage par connection direct à Access
Dim StrPubDoc As String
Dim StrBDD As String
 
StrPubDoc = CurrentProject.Path & "\TemplateDoc\MonDoc.doc" 'Chemin du fichier modele de publipostage
StrBDD = CurrentProject.FullName 'Chemin de la base de données en cours
 
'Démarrer Word
Set Wdapp = CreateObject("Word.application") 'Création d'une instance Word
With Wdapp
       .Visible = False 'Word est invisible
 
      'Ouvrir le document
      .Documents.Open FileName:=StrPubDoc, ReadOnly:=False 'Ouverture du fichier modèle en mode création
         'Connection avec la source de données filtrée
        .ActiveDocument.MailMerge.OpenDataSource Name:=NomBase, _
            Connection:="Driver={Microsoft Access Driver (*.mdb)};" & _
            "DBQ=" & StrBDD & "; ReadOnly=false;", _
            SQLStatement:="SELECT * FROM [Rq_Export]WHERE ID=" & Me.MonForm.Id
            .ActiveDocument.MailMerge.Execute 'Création du fusionnage
            .Documents(StrPubDoc).Close wdDoNotSaveChanges 'Ferme le fichier modèle de publipostage sans l'enregistrer
 
            .ActiveDocument.SaveAs StrFichier 'Enregistre le fichier fusionné
 
            .Documents(StrFichier).Close wdSaveChanges 'Ferme le fichier fusionné
End With
 
Wdapp.Quit 'Quitte Word
 
'Fermer et libérer les objets
Set Wdapp = Nothing
End Sub
j'ai donc mis ton code en propriété d'un bouton, et il a fallu rajouter à ton code la première ligne
Code :
Private Sub Commande111_Click()
le tout merdoie allègrement.
une idée?
A+
samsab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 17h49   #9
Membre éclairé
 
Homme Christophe AUMOITTE
Inscription : octobre 2009
Messages : 254
Détails du profil
Informations personnelles :
Nom : Homme Christophe AUMOITTE
Âge : 43
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : octobre 2009
Messages : 254
Points : 303
Points : 303
Voilà la réponse à ton problème :

Code :
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
Private Sub Commande111_Click()
 Call PublipostageWord(Le chemin de destination de ton fichier.doc)
En Sub
 
Private Sub PublipostageWord(StrFichier As String)
'StrFichier = "Le chemin de destination de ton publipostage avec une boite de dialogue Enregistrer sous par exemple"
 
'Publipostage par connection direct à Access
Dim StrPubDoc As String
Dim StrBDD As String
 
StrPubDoc = CurrentProject.Path & "\TemplateDoc\MonDoc.doc" 'Chemin du fichier modele de publipostage
StrBDD = CurrentProject.FullName 'Chemin de la base de données en cours
 
'Démarrer Word
Set Wdapp = CreateObject("Word.application") 'Création d'une instance Word
With Wdapp
       .Visible = False 'Word est invisible
 
      'Ouvrir le document
      .Documents.Open FileName:=StrPubDoc, ReadOnly:=False 'Ouverture du fichier modèle en mode création
         'Connection avec la source de données filtrée
        .ActiveDocument.MailMerge.OpenDataSource Name:=NomBase, _
            Connection:="Driver={Microsoft Access Driver (*.mdb)};" & _
            "DBQ=" & StrBDD & "; ReadOnly=false;", _
            SQLStatement:="SELECT * FROM [Rq_Export]WHERE ID=" & Me.MonForm.Id
            .ActiveDocument.MailMerge.Execute 'Création du fusionnage
            .Documents(StrPubDoc).Close wdDoNotSaveChanges 'Ferme le fichier modèle de publipostage sans l'enregistrer
 
            .ActiveDocument.SaveAs StrFichier 'Enregistre le fichier fusionné
 
            .Documents(StrFichier).Close wdSaveChanges 'Ferme le fichier fusionné
End With
 
Wdapp.Quit 'Quitte Word
 
'Fermer et libérer les objets
Set Wdapp = Nothing
End Sub
Codialement

Christophe
marsouin_89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h36.


 
 
 
 
Partenaires

Hébergement Web