|
Récupérer automatiquement des informations d'une fiche Access dans un document Word
La base Access
Pour illustrer notre propos, nous utiliserons une base de données Contacts comportant un sous-formulaire Interlocteurs.
Vous pouvez télécharger le modèle de ce didacticiel ici.
La base fournie s'ouvre directement sur le formulaire concerné.
Passez en mode Création en cliquant sur l'icône .
Le cas échéant, affichez la barre d'outils Boîte à outils en cliquant sur l'icône .
Cliquez ensuite sur l'icône et dessinez un bouton sur le sous-formulaire INTERLOCUTEURS.
Si l'Assistant bouton se déclenche, appuyez simplement sur la touche Echap de votre clavier.
A présent, sélectionnez votre bouton et affichez les Propriétés (F4).
Dans l'onglet Format, champ Légende, saisissez "Envoyer un fax" (ou "Envoyer une lettre"), activez l'onglet Autres, champ Nom et nommez votre formulaire Envoi_Fax.
Activez maintenant l'onglet
Evénément, champ Sur clic et cliquez sur ...
Sélectionnez l'option Générateur de code et validez.
Entre les deux lignes, recopiez le code suivant :
Dim nom2
rep = InputBox("Veuillez saisir un objet pour votre fax") nom2 = Forms!saisie!interlocuteurs.Form!genre & " "
& forms!saisie!interlocuteurs.Form!prénom & " "
& UCase(Forms!saisie!interlocuteurs.Form!nom)
Dim oApp As Object
Set oApp = CreateObject("Word.Application")
oApp.Visible = True
With oApp
.Documents.Add Template:="C:\Documents and Settings\nom de votre ordinateur\Application Data\Microsoft\Modèles\fax.dot"
With .selection
.GoTo , , , "a"
.insertafter nom2
.GoTo , , , "télécopie"
If Forms!saisie!interlocuteurs.Form!fax <> "" Then
.insertafter Forms!saisie!interlocuteurs.Form!fax
Else
.insertafter Forms!saisie!fax
End If
.GoTo , , , "société"
.insertafter Forms!saisie!societe
.GoTo , , , "objet"
.insertafter rep
.GoTo , , , "debut"
End With
End With
Exit_word_Click:
Exit Sub
oApp.Activat
J'ai repéré en vert les éléments que vous devrez probablement ajuster.
Explications de texte
Forms!saisie!interlocuteurs.Form!genre : récupère la valeur du champ genre où saisie est le nom du formulaire principal et interlocuteurs le nom du sous-formulaire. Le champ genre est donc placé sur le sous-formulaire.
On récupère de la même manière les autres valeurs (Forms!saisie!interlocuteurs.Form!fax pour le numéro du fax, Forms!saisie!societe pour le nom de société placé sur le formulaire principal, forms!saisie!interlocuteurs.Form!prénom pour le récupérer le prénom de l'interlocuteur et Forms!saie!interlocuteurs.Form!nom pour son nom de famille).

Les variables a, société, objet, debut correspondent aux noms des signets utilisés dans le document Word.
Le signet debut est optionnel et a simplement pour objectif de placer le curseur à l'endroit où l'utilisateur pourra commencer la saisie de son texte. Si vous ne souhaitez pas l'utiliser, supprimer simplement cette ligne.
Dans la syntaxe C:\Documents and Settings\nom de votre ordinateur\Application Data\Microsoft\Modèles\fax.dot vous reconnaissez l'adresse de votre modèle.
A son lancement, la macro vous demande de saisir un objet pour votre fax. Cet objet est placé dans une variable rep.
Le genre, prénom et nom sont ensuite "additionnés" grâce à l'opérateur &, chaque élément étant séparé par un espace " ". Le nom de famille est convertit en majuscule grâce à la fonction Ucase().
Pour finir, la totalité de cette chaîne
est placée dans une variable nom2.
La macro lance ensuite Word et ouvre le modèle fax.
Le curseur est ensuite placé à chaque emplacement de signet grâce à l'instruction .Goto,,, "nom du signet Word".
Le contenu correspondant de la base Access est alors inséré grâce à l'instruction .InsertAfter Nom_de_l'objet_Access.
Attention ! Vous ne pouvez tester la macro fournie dans ce classeur sans avoir auparavant sauvegardé sur votre disque dur le modèle de fax fourni et modifié la ligne d'instruction C:\Documents and Settings\nom de votre ordinateur\Application Data\Microsoft\Modèles\fax.dot
|
Haut
|