Exportation du contenu d'une table,d'un formulaire ou d'une requête dans un document word en vb sous access

Contenu du snippet

Je débutes en VB,je n'ai pas trouvé sur code source "comment exporter le contenu d'une requête vers Word à un emplacement spécifique" alors je me suis dit que cela pourrait peut-être aider certains,ce code n'est pas trop long ni difficile à comprendre...
Ce code m'a permi d'inserer des requêtes sous forme de tableaux contenant du matériel informatique avec la quantité,le prix,etc... dans un fichier Word nommé "proposition commerciale".L'entreprise m'a demandé d'automatiser leurs propositions commerciale au format Word,au lieu de rentrer tout le matériel manuellement,le code VBA l'insère automatiquement ,ce qui leurs permet de gagner un gain de temps considérable.

Source / Exemple :


Private Sub mode_detail_Click()

Dim stDocName As String

'ouverture du document de votre document Word (ex:"C:/Docdebase.doc")

Word_Ouvrir_document "l'emplacement de votre document word.doc", True

'L'exemple suivant s'applique pour une requête:
'1)a)atteindre un signet (position spécifique dans le fichier Word) pour pouvoir 
'inserer le fichier "transfert"(au format .rtf) contenant la requête "nom de votre requête"
'Le fichier "transfert.rtf" sert à transferer le contenu de la requête vers un fichier Word,
'il est à chaque fois ecrasé et recrée.
'On test tout d'abord si la requête est vide en comptant 
'le nombre d'enregistrement qu'elle contient.

If (DCount("*", "Nom de votre requête") > 0) Then
    Word_Atteindre_Signet "Nom de votre signet dans votre document Word"
    stDocName = "Nom de votre requête"
    DoCmd.OutputTo acQuery, stDocName, acFormatRTF, "Nom de votre fichier .rtf et son emplacement (ex: C:/transfert.rtf)"
    Word_Insère_fichier "C:/transfert.rtf"
End If

End Sub

'La commande "DoCmd.OutputTo" permet le transfert de la requête vers le document .rtf
'Elle peut prendre en paramêtre "acQuery" ou "acForm" ou  "acTable" ou"acReport"
'(pour un état).A vous de changer la valeur de stDocName si c'est 
'une table (le nom de la table)
'Les fonctions "Word_Atteindre_Signet", "Word_Insère_fichier" 
'et "Word_Ouvrir_document" sont disponible ici:

Public Sub Word_Atteindre_Signet(Optional Nom_signet As Variant)

If Not IsNull(Nom_signet) Then
     Word_Application.Selection.GoTo What:=wdGoToBookmark, Name:=Nom_signet
End If

End Sub

Public Sub Word_Insère_fichier(NomFichier As String)

Word_Application.Selection.InsertFile _
                        FileName:=NomFichier, _
                        Range:="", _
                        ConfirmConversions:=True, _
                        Link:=False, _
                        Attachment:=False

End Sub

Public Sub Word_Ouvrir_document(Nom_Document As Variant, Visible As Boolean)

Word_Création_Lien_OLE

With Word_Application
     .Visible = Visible
     .Documents.Open _
                    FileName:=Nom_Document, _
                    ConfirmConversions:=True, _
                    ReadOnly:=False, _
                    AddToRecentFiles:=False, _
                    PasswordDocument:="", _
                    PasswordTemplate:="", _
                    Revert:=False, _
                    WritePasswordDocument:="", _
                    WritePasswordTemplate:="", _
                    Format:=wdOpenFormatAuto
End With

End Sub

'L'auteur de ces 3 fonctions est "Jacques PRESTREAU" 
'(http://www.vbfrance.com/code.aspx?ID=387 )
'Merci à lui. :)

Conclusion :


Je tiens à remercier Jacques PRESTREAU,code source http://www.vbfrance.com/code.aspx?ID=387 qui grâce à son code,m'a éclairci pour la résolution de mon problème.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.