IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Creer un document Word type à partir d'un formulaire


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 94
    Points : 36
    Points
    36
    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+

  2. #2
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    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
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 94
    Points : 36
    Points
    36
    Par défaut
    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

  4. #4
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    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
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 94
    Points : 36
    Points
    36
    Par défaut
    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.

  6. #6
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    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 : 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
    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
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 94
    Points : 36
    Points
    36
    Par défaut
    merci pour ton temps
    j'essaie!
    A+

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 94
    Points : 36
    Points
    36
    Par défaut
    hello
    cela merdouille pour une raison certainement évidente mais qui m'échappe
    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
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Commande111_Click()
    le tout merdoie allègrement.
    une idée?
    A+

  9. #9
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Voilà la réponse à ton problème :

    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
    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
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  10. #10
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2020
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Même situation avec imprimer un doc Word à partir d'un bottom click sur formulaire sous Access 2013
    Bonjour,
    je viens de créer un formulaire sous access 2013 nommé RESULTAT, et créer un document word avec publipostage nommé SITU.docx.
    pour imprimer à partir du formulaire avec boton click, j'ai procédé comme suivant etape par etape:
    1- j'ai ouvert mon formulaire en mode creation;
    2- j'ai ajouté un boton click qui s'appelle commande238, puis cliquer sur annuler, puis cliquer sur sur click, puis generateur code, et un editeur de code VBA s'ouvre:
    3- code que j'ai écrit est ci-dessous, puis j'ai fait enregistrer et par la suite fermer l'editeur et revenir sur le mode formulaire, mais lorsque je clique sur mon boton creé rien ne se passe, aidez moi SVP ! :

    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
    36
    37
    38
    39
    Private Sub Commande238_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 & "C:\TemplateDoc\SITU.docx" '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

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 234
    Points : 554
    Points
    554
    Par défaut
    Salut,

    Tu mets ton instance Word en visible =False, donc Word s'ouvre mais n’apparaît pas, essaye de mettre true et vois ce que cela donne

  12. #12
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2020
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci @electrosta03 , j'ai fait Visible = True mais lorsque je clique sur mon botton une fenetre s'ouvre "erreur de compliation erreur synthaxe"
    et me donne celui la en rouge: Call PublipostageWord(Le chemin de destination de ton fichier.doc)
    En Sub
    voici ce que çà me donne, merci de m'aider SVP, j'en ai besoin et je suis pas habituel avec visuel basic
    elade

    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
    36
    37
    38
    39
    40
    41
    Private Sub Commande18_Click()
     
    End Sub
     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 & "C:\Users\lade\Desktop\projetaccess\doc1.docx" '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 = True '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

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 234
    Points : 554
    Points
    554
    Par défaut
    Salut,

    Il y a une erreur dans le code, il manque un apostrophe pour la remarque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    End Sub
    Call PublipostageWord ' (Le chemin de destination de ton fichier.doc)
    En Sub
    Essaie ça

  14. #14
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 898
    Points : 4 787
    Points
    4 787
    Par défaut
    Bonjour,

    Déjà en ce qui concerne la procédure d'appel de PublipostageWord, cooriger en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Commande18_Click()
     Call PublipostageWord("Le chemin de destination de ton fichier.doc")   
    End Sub
    pour le reste, il faut :
    • ajouter la reference 'Microsoft Word object n.n'
    • déclarer les variables Wdapp non encore déclarrée
    • vérifier/modifier le chemin de ton fichier modele de publipostage
    • vérifier/modifier la requete source
    • ...

    C'est pas difficile , juste un peu de boulot

    Cdlt
    "Always look at the bright side of life." Monty Python.

Discussions similaires

  1. Creer un document word et le remplir
    Par thib42 dans le forum VB.NET
    Réponses: 8
    Dernier message: 26/04/2008, 14h15
  2. Creer un document word
    Par KOUTO dans le forum Delphi
    Réponses: 8
    Dernier message: 05/06/2007, 19h19
  3. Comment créer un document Word ?
    Par david71 dans le forum Framework .NET
    Réponses: 2
    Dernier message: 30/10/2006, 20h17
  4. Réponses: 13
    Dernier message: 24/04/2006, 19h24
  5. Réponses: 6
    Dernier message: 06/04/2006, 10h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo