Étape 2 : Créer le rapport dans MS Word
Ensuite, nous créons un rapport de publipostage dans Word. Nous allons d'abord examiner la création d'un rapport où un seul fichier .csv est généré.
Dans cet exemple, nous utilisons le fichier .csv principal (eloans.csv). Dans la plupart des cas dans lesquels un seul fichier .csv est généré quand un rapport est lancé depuis EMu, les étapes décrites ici sont tout ce qu’il faut faire pour créer un rapport de publipostage. À ce stade, le rapport inclura les détails sur le prêt et l’emprunteur (mais pas sur les objets prêtés).
Note: Les étapes décrites ici pour se connecter aux DSN sont nécessaires si vous avez un ou plusieurs fichiers .csv à accéder.
Nous allons ensuite modifier notre rapport pour accéder aux données inclues dans le deuxième fichier .csv (ObjObjec.csv) pour inclure les détails sur les objets prêtés.
Microsoft Word s’est ouvert quand nous avons lancé le nouveau rapport à la fin de l’Étape 1 : Créer un rapport dans EMu.
Afin d'exécuter les macros que nous allons créer, il est nécessaire de s'assurer que le niveau de Sécurité dans Word est approprié :
- Sélectionnez Outils>Macro>Éditeur Visual Basic (
ALT+F11
) dans la barre de menu.L'éditeur Microsoft Visual Basic s'ouvre.
- Sélectionnez Outils>Références dans la barre de menu de l’éditeur Microsoft Visual Basic.
La boîte de dialogue References - Project dialogue s’affiche.
- Cocher la casse Microsoft Activex Data Objects 2.7 Library et cliquer OK pour fermer la boîte de dialogue.
- Sous le dossier Project (Document1) dans le panneau de gauche Projet, double-cliquer sur ThisDocument :
- Tout d'abord, nous réglons la source de données :
Sélectionner Document dans la première liste déroulante et Open dans la deuxième.
- Saisissez le code suivant entre Private Sub Document_Open() et End Sub :
'
' Configurer la source de données et exécuter la fusion
'
Set MainDocument = ActiveDocument
With ActiveDocument.MailMerge
.MainDocumentType = wdFormLetters
#If Win64 Then
.OpenDataSource _
Name:="", _
connection:="DSN=EMu Loans x64;", _
SQLStatement:="SELECT * FROM eloans.csv", _
SubType:=wdMergeSubTypeWord2000
#Else
.OpenDataSource _
Name:="", _
connection:="DSN=EMu Loans;", _
SQLStatement:="SELECT * FROM eloans.csv", _
SubType:=wdMergeSubTypeWord2000
#End If
.Destination = wdSendToNewDocument
.Execute Pause:=False
End With
'
' Forcer tous les champs à être mis à jour en cas d’images
'
ActiveDocument.Fields.Update
MainDocument.Close SaveChanges:=False
Note: Voir la table DSN pour plus de détails sur les noms DSN d'EMu et le nom des fichiers .csv générés.
- Sélectionner Fermer dans la deuxième liste déroulante.
- Saisissez le code suivant entre Private Sub Document_Close() et End Sub:
' Lorsque le document est fermé, nous devons déconnecter la
' source de données sinon Word essaiera de l'utiliser
' lors de l'ouverture du document
ActiveDocument.MailMerge.MainDocumentType = wdNotAMergeDocument
ActiveDocument.Save
Note: L'éditeur Visual Basic doit être similaire à l'écran suivant :Pendant que nous construisons notre rapport, nous voulons commenter la ligne suivante :
MainDocument.Close SaveChanges:=False
Pour ce faire, nous plaçons une apostrophe au début de la ligne de code (comme dans la capture d'écran précédente).
Si cette ligne n'est pas commentée, le document de rapport principal que nous créons ne s'affichera pas lorsque le rapport sera exécuté.
Nous devrons supprimer cette apostrophe une fois que nous aurons terminé de créer le rapport.Explication des macrosNote: Cette aide en ligne n’a pas pour vocation d'expliquer en détail le code Visual Basic (ou la façon de programmer avec Visual Basic), et ce qui suit est fourni à titre informatif uniquement.
- La fonction Document_Open() est exécutée chaque fois que le document est ouvert dans Word.
- La ligne With ActiveDocument.MailMerge
spécifie que toutes les lignes qui commencent par un point (.) jusqu'à l'instruction de clôture End With ont en réalité ActiveDocument.MailMerge ajouté au préalable.
- Le type de document de fusion est défini par :
.MainDocumentType = wdFormLetters
Il existe de nombreux types de documents qui définissent la façon dont le document fusionné apparaîtra. La valeur wdFormLetters indique que nous produisons une lettre (page) séparée pour chaque enregistrement de fusion trouvé. Pour obtenir une liste complète des valeurs disponibles, consultez l’Aide de l'éditeur Visual Basic (recherchez le mot clé MainDocumentType).
Garantit que les DSN 64 bits sont utilisés lorsqu'un utilisateur dispose d'une version 64 bits d'Office ; sinon, des DSN 32 bits sont utilisés :
#If Win64 Then...
- Les lignes suivantes définissent le DSN sans spécifier l'emplacement des fichiers de la base de données :
.OpenDataSource _
Name:="", _
connection:="DSN=EMu Loans x64;", _
SQLStatement:="SELECT * FROM eloans.csv", _
SubType:=wdMergeSubTypeWord2000
Les lignes se terminant par un trait de soulignement (_) indiquent que le code passe à la ligne suivante. Les lignes ci-dessus ne sont en réalité qu’une seule instruction de code. Comme vous pouvez le constater, le nom du DSN est défini dans la propriété Connexion (la valeur est Prêts/Emprunts EMu). Si des données du module Personnes / Organisations plutôt que du module Prêts/Emprunts sont utilisées, il nécessaire de changer le DSN de Prêts/Emprunts EMu à Personnes / Organisations EMu.
Note: La table DNS peut être utilisée pour déterminer le nom du DSN à utiliser pour chaque module.
SQLStatement définit une requête utilisée pour récupérer les enregistrements requis à partir de la source de données. La requête SELECT * FROM eloans.csv récupère tous les enregistrements de la source de données Prêts/Emprunts.
La propriété Subtype est requise à partir de Word 2002.
Note: Si votre institution utilise une version antérieure de Word, supprimez cette ligne ainsi que la virgule et le trait de soulignement à la fin de la ligne précédente.
Si vous utilisez Word 2000 ou une version antérieure, il peut être nécessaire d'ajouter au moins un champ au document Word avant que la macro ne fonctionne (sinon une erreur 4605 peut être générée). - La ligne de code suivante indique la destination du document de fusion généré :
.Destination = wdSendToNewDocument
La valeur wdSendToNewDocument envoie le résultat vers un nouveau document Word. Consultez l'Aide de l'éditeur Visual Basic (effectuez une recherche à l'aide du mot clé Destination) pour obtenir une liste complète des destinations possibles.
- Maintenant que le type de document de fusion, la source de données et la destination de sortie sont définis, nous pouvons exécuter le publipostage pour produire le document requis. La ligne :
.Execute Pause:=False
exécute le publipostage, en plaçant tout message d'erreur dans le nouveau document. Lorsque la fusion est exécutée, vous verrez deux documents Word sur votre écran. Le premier document sera le document de fusion principal (celui que nous créons) et le second sera le nouveau document de sortie.
- Une fois la fusion terminée, nous forçons la mise à jour de tous les champs dans les documents fusionnés avec le code :
ActiveDocument.Fields.Update
Cette ligne n'est nécessaire que si vous avez exporté des images depuis EMu via l'interface de rapport pour les inclure dans un rapport. Si ce n'est pas le cas, vous pouvez supprimer cette ligne.
- Enfin, nous fermons le document de publipostage principal :
MainDocument.Close SaveChanges:=False
ce qui laisse le nouveau document de publipostage comme seul document ouvert. Lorsque vous créez un rapport, il est utile de désactiver cette déclaration afin de pouvoir tester votre document de publipostage. Si elle n'est pas désactivée, un publipostage sera exécuté chaque fois que nous ouvrons le document (ce qui est bien), mais nous ne serons pas en mesure d'accéder au document de publipostage car il sera fermé (ce qui n’est pas bien). Pour désactiver la déclaration, placez une apostrophe au début de la ligne. Nous supprimerons l'apostrophe lorsque nous aurons terminé le rapport (voir également Étape 3. Éditer le code VB pour fermer le document de rapport principal).
- La deuxième fonction, Document_Close(), est exécutée lorsque le document est fermé. Ce code est utilisé pour enregistrer le document sans son statut de publipostage. Si un document est considéré comme un document de publipostage, Word enregistre automatiquement l'emplacement du fichier de la source de données actuellement utilisée. Comme l'enregistrement de cet emplacement entraînera un dysfonctionnement de notre rapport sur différentes machines (puisque l'emplacement du fichier peut varier d'une machine à l'autre), nous devons enregistrer le document comme un document Word « normal ». Les lignes de code suivantes réinitialisent le type de document et enregistrent le document à nouveau :
ActiveDocument.MailMerge.MainDocumentType = wdNotAMergeDocument
ActiveDocument.Save
- Sélectionner Fichier>Fermer et retourner à Microsoft Word dans la barre de menu de l'éditeur Visual Basic.
L'éditeur Visual Basic se ferme.
- Sauvegarder le document Word avec un nom descriptif, par exemple Prêts_Emprunts.doc.
- Fermer le document Word.
Ensuite, nous testons la bonne configuration du code de source de données.
Le code ajouté à 1. Écrire le code VB assure que lorsque le document Word est ouvert, la source de données est configurée correctement sans intégrer l'emplacement du DSN. Nous testons la bonne configuration du code de source de données :
- Ouvrez le document de rapport principal (par exemple, LoanAgreement.doc dans cet exemple) :
La fenêtre Sécurité apparaît :
- Cliquer Activer les macros.
- Deux documents s’ouvrent :
- Le document de rapport principal, par exemple LoanAgreement.doc.
- Un document de publipostage (par exemple, FormLetters1.doc) généré par les macros dans le document de rapport principal. Ce document est vide car aucun texte n'a encore été ajouté au document de rapport principal.
Note: Si ce n'est pas ce qui se passe et qu'une boîte de dialogue s'ouvre en essayant de se connecter à la source de données, assurez-vous que vous avez commenté MainDocument.Close SaveChanges:=False à l'étape 9.
- Fermer FormLetters1.doc sans le sauvegarder.
- Sélectionner Affichage>Barres d'outils>Publipostage pour afficher la barre d'outil de Publipostage :
- Ajouter du texte au document LoanAgreement.doc pour faire un test, par exemple Ceci est un essai :
- Sauvegarder et fermer le document de rapport principal.
- Rouvrez le document de rapport principal, en activant les macros lorsque cela est demandé.
Un nouveau document de publipostage (par exemple, FormLetters1.doc
)
) devrait être généré et afficher le texte de test, ce qui indique que le code source des données fonctionne correctement. - Effacer le texte de test du document de rapport principal par exemple LoanAgreement.doc, sauvegarder et fermer le document.
- Fermer le document de publipostage (par exemple : FormLetters1.doc) sans le sauvegarder.
Nous allons ensuite ajouter du texte au document de rapport principal.
- Ouvrez le rapport du document de rapport principal (par exemple, LoanAgreement.doc dans cet exemple) :
La fenêtre Sécurité apparaît :
- Cliquez sur Activer les macros.
- Deux documents s’ouvrent :
- Le document de rapport principal, par exemple LoanAgreement.doc.
- Un document de publipostage, par exemple FormLetters1.doc.
- Fermez le document de publipostage sans le sauvegarder.
Dans le document de rapport principal, nous allons ajouter une date automatique en haut du document.
- Sélectionner Insertion>Date et heure dans la barre de menu de Microsoft Word pour afficher la boîte Date et heure.
- Sélectionnez le format de date requis et assurez-vous que la case Mise à jour automatique est cochée :
La date du jour s'affichera sur la page (et sera mise à jour quotidiennement).
Note: Si vous sélectionnez Outils>Options dans la barre de menu, puis que vous cochez la case Codes de champ dans l'onglet Vue, le code correspondant à ce champ de date s'affichera. Vous pouvez également utiliser le raccourci clavier
ALT+F9
pour masquer/afficher les codes de champ. - Sous la date, entrer le texte requis dans le document. Par exemple :
- Sauvegarder et fermer le document de rapport principal.
- Rouvrez le document de rapport principal, en activant les macros lorsque cela est demandé.
Deux documents sont à nouveau ouverts, le document de rapport principal (par exemple, LoanAgreement.doc) et le document de publipostage (par exemple, FormLetters1).
Le document de publipostage inclut désormais le texte et la date qui ont été ajoutés au document de rapport principal.
- Fermer le document de publipostage (par exemple : FormLetters1.doc) sans le sauvegarder.
Nous allons ensuite ajouter des champs au document de rapport principal.
Dans le document de rapport principal (LoanAgreement.doc dans cet exemple) :
- Taper
ALT+F9
.Le document est maintenant en mode Afficher les codes de champ et le champ de date saisi à l'étape précédente devrait maintenant s'afficher comme du code plutôt que comme une date.
- Placer le curseur dans le document à l'endroit où vous souhaitez insérer un champ, par exemple : un espace après Numéro d'emprunt :
- Cliquez sur Insérer des champs de fusion dans la barre d'outils Publipostage.
Note: Si la Barre d'outils de Publipostage ne s'affiche pas, sélectionner Affichage>Barres d'outils>Publipostage dans la Barre de menu de MS Word.
La boîte de dialogue Insérer un champ de fusion s'affiche :
Note: Si un champ que vous avez ajouté au rapport dans EMu ne s'affiche pas dans la fenêtre Insérer un champ de fusion, il est probable que le champ soit un tableau de valeurs et qu'il ait été généré dans un fichier .csv séparé. Si vous souhaitez l'inclure dans le rapport, convertissez le champ dans EMu de Table en Texte (voir 1 : Créer le rapport dans EMu pour plus de détails) ou d'ajouter un code Visual Basic supplémentaire pour accéder aux données du deuxième (troisième, etc.) fichier .csv.
- Sélectionner le champ à insérer, par exemple : InfLoanNumber dans cet exemple et sélectionner Insérer
-OU-
Double-cliquer sur le champ à insérer.
- Fermez la boîte de dialogue Insérer un champ de fusion.
Dans cet exemple, le code de champ suivant s'affiche à l'endroit où le curseur a été placé :
No. du prêt/emprunt : { MERGEFIELD "InfLoanNumber"}
- Ajoutez les champs restants au document de rapport principal.
Note: Pour trouver le nom du champ à sélectionner, ouvrez le module dans lequel le rapport a été créé, placez-vous sur le champ et appuyez sur
F1
. L'aide au niveau du champ EMu s'ouvre, affichant le nom du champ. - Le document de rapport principal affiche désormais un certain nombre de codes de champs insérés :
Conseil : Chaque champ peut se voir attribuer un certain nombre de propriétés d'affichage et de fonctionnement, par exemple l'affichage en MAJUSCULES, pour ajouter du texte avant ou après la valeur du champ, etc.
Pour définir les propriétés des champs :- Dans le document de rapport principal, faites un clic droit sur un champ (par exemple, InfCreditLine) et sélectionnez Éditer champ dans le menu qui s'affiche :
La fenêtre Champ s'affiche.
- Sélectionnez le format requis pour le champ dans la liste Format, par exemple Majuscule :
- Cliquez sur OK.
- Sauvegarder et fermer le document de rapport principal.
- Rouvrez le document du rapport, en activant les macros lorsque cela est demandé :
- Fermer les deux documents sans les sauvegarder.
- Dans le document de rapport principal, faites un clic droit sur un champ (par exemple, InfCreditLine) et sélectionnez Éditer champ dans le menu qui s'affiche :
- Sauvegarder et fermer le document de rapport principal.
- Rouvrez le document de rapport principal, en activant les macros lorsque cela est demandé.
Deux documents sont à nouveau ouverts, le document de rapport principal et le document de publipostage.
Note: Vous devrez peut-être sélectionner
ALT+F9
(masquer/afficher les codes de champ) afin d'afficher la date correctement.Le document de publipostage comprend le texte et les données qui ont été ajoutés au document de rapport principal :
- Fermer les deux documents sans les sauvegarder.
Nous allons ensuite ajouter les champs de Personnes / Organisations au document de rapport principal. Les champs de Personnes / Organisations sont utilisés pour :
- Insérer la formule d'appel appropriée après les salutations.
- Ajouter une adresse postale.
La logique employée pour les formules d'appel est la suivante :
- Entrer une formule d'appel si elle existe dans l'enregistrement de Personnes / Organisations.
- Si la formule d'appel n'existe pas, utiliser le prénom.
- Si le prénom n'existe pas, utiliser le texte Madame/Monsieur.
Ceci est accompli à l'aide du code de champ de Word Si...Alors...Sinon.
Pour insérer une formule d'appel dans le document de rapport principal :
- Ouvrir le document de rapport principal (LoanAgreement.doc dans cet exemple) et activer les macros quand demandé.
- Dans le document de rapport principal, sélectionner
ALT+F9
pour afficher les codes de champs. - Placer le curseur juste avant la virgule après le texte Cher/Chère (en laissant un espace entre le texte et la virgule) :
- Sélectionnez Insérer un champ Word dans la Barre d'outils Publipostage et sélectionnez Si...Alors...Sinon dans la liste déroulante qui s'affiche :
Note: Si la Barre d'outils de Publipostage ne s'affiche pas, sélectionner Affichage>Barres d'outils>Publipostage dans la barre de menu de MS Word.
La boîte Insérer un champ Word : SI la boîte de dialogue s’affiche :
- Sélectionner NamSalutation dans la liste déroulante Nom du champ.
- Sélectionner est différent de dans la liste déroulante Élément de comparaison.
- Laisser le champ À comparer avec vide.
- Entrer vrai dans la boîte Insérer le texte suivant et faux dans la boîte Sinon, celui-ci :
- Cliquez sur OK pour fermer la boîte Insérer un mot clé.
Le code suivant s'affiche dans le document de rapport principal :
- Sélectionner vrai, en vous assurant de ne pas inclure les guillemets dans la saisie :
- Cliquez sur Insérer un champ de fusion dans la barre d'outils de Publipostage et sélectionner NamSalutation dans la boîte d'Insérer un champ de fusion :
- Sélectionner Insérer et ensuite fermer la boîte Insérer un champ de fusion.
Le code suivant s'affiche maintenant dans le document de rapport principal :
- Sélectionner faux, en vous assurant de ne pas inclure les guillemets dans la saisie.
- Sélectionnez Insérer un champ Word dans la Barre d'outils Publipostage et sélectionnez Si...Alors...Sinon dans la liste déroulante qui s'affiche.
La boîte Insérer un champ Word : SI la boîte de dialogue s’affiche.
- Sélectionner NamFirst dans la liste déroulante Nom du champ.
- Sélectionner est différent de dans la liste déroulante Élément de comparaison.
- Laisser le champ À comparer avec vide.
- Entrer vrai dans la boîte Insérer le texte suivant box et Madame/Monsieur dans la boîte Sinon, celui-ci :
- Cliquez sur OK pour fermer la boîte Insérer un mot clé.
- Sélectionner vrai, en vous assurant de ne pas inclure les guillemets dans la saisie :
- Cliquez sur Insérer un champ de fusion dans la barre d'outils de Publipostage et sélectionner NamFirst.
- Sélectionnez Insérer et fermez la boîte de dialogue Insérer un champ de fusion.
Le code suivant s'affiche maintenant dans le document de rapport principal :
- Assurez-vous que la police de caractères de ce code correspond à la police du reste du texte dans votre document.
- Sauvegarder et fermer le document de rapport principal.
- Rouvrez le document de rapport principal, en activant les macros lorsque cela est demandé.
Un nouveau document est généré avec la salutation :
Nous allons ensuite insérer des détails de nom, poste, service et organisation dans le document de rapport principal.
La logique utilisée ici est similaire à celle utilisée pour la salutation. Par exemple :
- Entrer le nom du poste s'il existe.
- Si le nom de poste n'existe pas, le laisser vide.
Une fois encore, ceci est réalisé en utilisant le code de champ de Word Si...Alors...Sinon.
Pour insérer des détails de poste, service et organisation dans le document de rapport principal :
- Placer le curseur à un endroit dans le haut du document (après le champ de date) où vous voulez que les détails de l'adresse apparaissent :
Nous allons tout d'abord entrer le nom.
- Sélectionnez Insérer un champ Word dans la Barre d'outils Publipostage et sélectionnez Si...Alors...Sinon dans la liste déroulante qui s'affiche :
Note: Si la Barre d'outils de Publipostage ne s'affiche pas, sélectionner Affichage>Barres d'outils>Publipostage dans la Barre de menu de MS Word.
La boîte Insérer un champ Word : SI la boîte de dialogue s’affiche :
- Sélectionner NamFirst dans la liste déroulante Nom du champ.
- Sélectionner est différent de dans la liste déroulante Élément de comparaison.
- Laisser le champ À comparer avec vide.
- Entrer vrai dans la boîte Insérer le texte suivant et faux dans la boîte Sinon, celui-ci :
- Cliquez sur OK pour fermer la boîte Insérer un mot clé.
Le code suivant s'affiche dans le document de rapport principal :
- Placer le curseur après
{MERGEFIELD NamFirst}
et entrer un espace. - Cliquez sur Insérer un champ de fusion dans la Barre d'outils de Publipostage et sélectionner NamLast dans la boîte Insérer un champ de fusion :
- Sélectionner Insérer et ensuite fermer la boîte Insérer un champ de fusion.
- Placer des guillemets de part et d'autre de
{MERGEFIELD NamFirst} {MERGEFIELD NamLast}
Le code suivant s'affiche maintenant dans le document de rapport principal :
- Sélectionner vrai, en vous assurant de ne pas inclure les guillemets dans la saisie :
- Cliquez sur Insérer des champs de fusion dans la Barre d'outils Publipostage, sélectionnez NamFirst dans la fenêtre Insérer un champ de fusion et fermez la fenêtre.
Le curseur doit se trouver entre les champs } et " immédiatement après "NamFirst" :
- Taper sur la barre d'ESPACE pour entrer un espace entre } et
".
- Cliquez sur Insérer des champs de fusion dans la Barre d'outils Publipostage, sélectionnez NamLast dans la fenêtre Insérer un champ de fusion et fermez la fenêtre.
Le code suivant s'affiche maintenant dans le document de rapport principal :
- Afin d'éviter qu'une ligne vide apparaisse si la valeur suivant le nom n'existe pas, un retour forcé est intégré au code :
Placer le curseur entre } et " "faux"} :
- Taper SHIFT+ENTREE pour créer une nouvelle ligne à l'intérieur du code.
Le code suivant s'affiche maintenant dans le document de rapport principal :
Si ni le prénom ni le nom n'existe, rien ne devrait être inscrit, donc :
- Sélectionner faux, en vous assurant de ne pas inclure les guillemets et supprimez-le :
Le code suivant s'affiche maintenant dans le document principal du rapport :
Ce code vérifie si le premier et le dernier champ sont tous deux vides. Si le prénom ou le nom ou les deux existent, ils seront imprimés, sinon rien ne sera imprimé.
- Le destinataire du poste est ensuite inséré.
Pour s'assurer qu'il n'y a pas de ligne vierge avant la ligne d’adresse suivante, placez le curseur sur la même ligne et directement après le code précédent.
- Sélectionnez Insérer un champ Word dans la Barre d'outils Publipostage et sélectionnez Si...Alors...Sinon dans la liste déroulante qui s'affiche.
La boîte Insérer un champ Word : SI la boîte de dialogue s’affiche.
- Sélectionner NamPosition dans la liste déroulante Nom du champ.
- Sélectionner est différent de dans la liste déroulante Élément de comparaison.
- Laisser le champ À comparer avec vide.
- Entrer vrai dans la boîte Insérer le texte suivant et faux dans la boîte Sinon, celui-ci :
- Cliquez sur OK pour fermer la boîte Insérer un mot clé.
- Sélectionner vrai, en vous assurant de ne pas inclure les guillemets dans la saisie :
- Cliquez sur Insérer un champ de fusion dans la Barre d'outils de Publipostage, sélectionner NamPosition dans la boîte Insérer un champ de fusion et fermer la boîte.
- Le curseur devrait être entre } et " "faux"}. Taper SHIFT+ENTREE pour créer un retour forcé.
- Sélectionner faux, en vous assurant de ne pas inclure les guillemets et supprimez-le :
Le code suivant s'affiche maintenant dans le document de rapport principal :
- Répéter les étapes 19 et suivantes pour insérer les champs de service (NamDepartment) et d'organisation (NamOrganisation).
Le code suivant s'affiche maintenant dans le document de rapport principal :
- Assurez-vous que la police de caractères de ce code correspond à la police du reste du texte dans votre document.
- Sauvegarder et fermer le document de rapport principal.
- Rouvrez le document de rapport principal, en activant les macros lorsque cela est demandé.
Un nouveau document est généré avec les détails du destinataire :
Enfin, insérer les détails d'adresse dans le document de rapport principal.
La logique employée pour les champs de l'adresse est la suivante :
- Entrer le nom de rue de l'adresse postale s'il existe.
- Si le nom de rue de l'adresse postale n'existe pas, entrer le nom de rue de l'adresse physique.
- Si le nom de rue de l'adresse physique n'existe pas, le laisser vide.
Une fois encore, ceci est réalisé en utilisant le code de champ de Word Si...Alors...Sinon.
Pour insérer un champ d'adresse dans le document de rapport principal :
- Placer le curseur juste après la dernière parenthèse :
- Sélectionnez Insérer un champ Word dans la Barre d'outils Publipostage et sélectionnez Si...Alors...Sinon dans la liste déroulante qui s'affiche :
Note: Si la Barre d'outils de Publipostage ne s'affiche pas, sélectionner Affichage>Barres d'outils>Publipostage dans la Barre de menu de MS Word.
La boîte Insérer un champ Word : SI la boîte de dialogue s’affiche :
- Sélectionner AddPostStreet dans la liste déroulante Nom du champ.
- Sélectionner est différent de dans la liste déroulante Élément de comparaison.
- Laisser le champ À comparer avec vide.
- Entrer vrai dans la boîte Insérer le texte suivant et faux dans la boîte Sinon, celui-ci :
- Cliquez sur OK pour fermer la boîte Insérer un mot clé.
- Sélectionner vrai, en vous assurant de ne pas inclure les guillemets dans la saisie :
- Cliquez sur Insérer des champs de fusion dans la Barre d'outils Publipostage, sélectionnez AddPostStreet dans la fenêtre Insérer un champ de fusion et fermez-la.
Le curseur devrait être entre } et " "false" :
- Taper SHIFT+ENTREE pour créer une nouvelle ligne à l'intérieur du code.
- Sélectionner faux, en vous assurant de ne pas inclure les guillemets dans la saisie :
- Sélectionnez Insérer un champ Word dans la Barre d'outils Publipostage et sélectionnez Si...Alors...Sinon dans la liste déroulante qui s'affiche.
La boîte Insérer un champ Word : SI la boîte de dialogue s’affiche.
- Sélectionner AddPhysStreet dans la liste déroulante Nom du champ.
- Sélectionner est différent de dans la liste déroulante Élément de comparaison.
- Laisser le champ À comparer avec vide.
- Entrer vrai dans la boîte Insérer le texte suivant et faux dans la boîte Sinon, celui-ci.
- Cliquez sur OK pour fermer la boîte Insérer un mot clé.
- Sélectionner vrai, en vous assurant de ne pas inclure les guillemets dans la saisie :
- Cliquez sur Insérer des champs de fusion dans la Barre d'outils Publipostage, sélectionnez AddPhysStreetStreet dans la fenêtre Insérer un champ de fusion et fermez-la.
Le curseur devrait être entre } et " "faux"}.
- Taper SHIFT+ENTREE pour créer un retour forcé.
- Sélectionner faux, en vous assurant de ne pas inclure les guillemets et supprimez-le :
Le code suivant s'affiche maintenant dans le document de rapport principal :
- Répétez les Étapes 1 et suivantes pour ajouter le :
- État postal/physique (AddPostCity/AddPhysCity)
Au lieu d'utiliser un retour (
SHIFT+ENTER
), laissez trois espaces vides après les codes des champs AddPostCity et Add PhysCity afin que le code postal s'affiche trois espaces après le nom de la ville. - Code postal/physique (AddPostPost/AddPhysPost)
Le code suivant s'affiche maintenant dans le document principal du rapport :
- État postal/physique (AddPostCity/AddPhysCity)
- Assurez-vous que la police de caractères de ce code correspond à la police du reste du texte dans votre document.
- Sauvegarder et fermer le document de rapport principal.
- Ouvrir le document de rapport principal.
Un nouveau document de publipostage est généré montrant les détails de l'adresse :
Note: Si, lorsque vous lancez le rapport, vous remarquez que la ville et le code postal sont répétés (par exemple ParisParis), vérifiez qu'à l'étape 12, vous avez bien ajouté un autre énoncé Si...Alors...Sinon... et pas seulement effacé "faux".
- À l'étape 1. Écrire le code VB nous avions modifié le code VB en le commentant dans le but de faire un test
MainDocument.Close SaveChanges:=False
. Avant de pouvoir finaliser le rapport, nous devons éditer le code VB pour supprimer l'apostrophe.