Imprimer un document Word 6 depuis Access par DDE

Numéro d'article: 462844 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F12844
Agrandir tout | Réduire tout

Symptômes


Comment imprimer une lettre écrite avec Microsoft Winword 6.0 pour
Windows depuis Microsoft Access pour Windows ?


Résolution


Vous pouvez réaliser cette opération en utilisant l'échange dynamique de
données (DDE en anglais pour Dynamic Data Exchange) entre ces 2
applications. Ce mécanisme vous permet en effet de piloter Winword depuis
du code Access basic et même de lui envoyer des données.


EXEMPLE :

Lancez Microsoft Winword 6.0 pour Windows et créez dans un répertoire de
données un document dans lequel vous allez insérer 2 signets, le premier
de nom NomPersonne et le second de nom LieuVacances. Sauvez ce document
sous le nom vacances.doc et notez le répertoire de sauvegarde.
Ouvrez maintenant une base de données et dans un module de nom Imprimer
vers Winword, définissez une fonction Access basic ImprimeDoc avec 3
paramètres qui sont le nom du document Winword à imprimer, le nom de la
personne ainsi que le lieu des vacances. La fonction se présente alors
comme suit :

NOTA : Le caractère _ indique que l'instruction se poursuit sur la ligne
suivante.


Function ImprimeDoc (Lettre As String, Vacancier As String, Lieu As _
String)

' Lettre : nom du document WinWord à imprimer (avec son chemin)
' Vacancier : nom de la personne à remplacer le signet NomPersonne
' Lieu : lieu des vacances associé au signet LieuVacances


On Error GoTo TraitErreur

' ouverture du canal DDE entre Winword et Microsoft Access.
' En cas d'erreur numéro 282, WinWord est lancé
' dans la gestion des erreurs
canal = DDEInitiate("Winword", "system")

' ouverture du fichier Lettre dans l'application WinWord
DDEExecute canal, "[FichierOuvrir " & Chr(34) & Lettre & _
Chr(34) & "]"

' après avoir ouvert le fichier dans WinWord, on réinitialise le
' canal DDE avec le sujet du nom du document pour pouvoir
' accéder aux signets de ce dernier
canal = DDEInitiate("WinWord", Lettre)

' écriture des 2 variables dans les signets WinWord.
DDEPoke canal, "NomPersonne", Vacancier
DDEPoke canal, "LieuVacances", Lieu

' lancement de l'impression de ce fichier
DDEExecute canal, "[FichierImprimer .Nomfichier=" & _
Chr(34) & Lettre & Chr(34) & "]"

' fermeture du canal DDE
DDETerminate canal
Exit Function

TraitErreur:
Select Case Err
Case 282
' Impossible d'ouvrir un canal DDE. Microsoft Access
' n'a pu trouver le sujet de l'application spécifiée
' ou l'application elle-même.

' WinWord est donc démarré à l'aide de shell
LancerWord = Shell("e:\applis\winword\winword.exe")

' retour sur le DDEInitiate qui a provoqué cette erreur
Resume
Case 286
'Délai d'attente de la réponse DDE dépassé.

MsgBox " Word n'a pas pu ouvrir le fichier " & Lettre
DDETerminate canal
Exit Function
Case Else
' une erreur non déterminée est survenue

MsgBox " Une erreur est survenue dans la fonction _
ImprimeDoc "
DDETerminate canal
Exit Function
End Select

End Function

Appelez cette fonction, sur la propriété Sur pression d'un bouton de
commande dans un formulaire en tapant par exemple :
=ImprimeDoc("e:\document\vacances.doc";"Jean-Michel Dupont";"Ibiza")


REMARQUE :

Le caractère * dans le code indique que l'instruction se poursuit sur la
ligne suivante.

Propriétés

Numéro d'article: 462844 - Dernière mise à jour: lundi 1 mars 2004 - Version: 3.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Access 1.0 Standard
  • Microsoft Access 1.1 Standard
  • Microsoft Access 2.0 Standard
Mots-clés : 
KB462844
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com