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

Synchroniser les contacts entre Access et Outlook

Objectif : apprendre à créer un outil Access permettant de synchroniser les contacts entre Access et Outlook.

Niveau requis : avancé.

Commentez cet article : 14 commentaires Donner une note à l´article (5)

Article lu   fois.

L'auteur

Profil Pro

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Introduction

Après avoir décrit la structure des tables Access et de l'objet ContactItem d'Outlook, on présentera à l'aide de schémas, les différentes opérations permettant de synchrnoniser les contacts entre Access et Outlook :

  • opérations d'importation ;
  • opérations d'exportation ;
  • Opérations de suppression.

Ensuite, on détaillera la structure des différents formulaires et le code VBA de l'application exemple.

Affichage des formulaires

Formulaire F_ListeContact
Formulaire F_ListeContact
Formulaire F_Contact
Formulaire F_Contact

Le code VBA présenté dans cet article utilise la méthode de liaison appelée early binding qui nécessite de cocher la référence Microsoft Outlook xx.x Object Library. Pour éviter les conflits de version au niveau de la référence Outlook, une version 1.2 en late binding, est aussi disponible en téléchargement.

II. La base de données Access

Nous aurons besoin tout d'abord d'enregistrer dans des tables les informations concernant les contacts et les dossiers Outlook.

II-A. Table T_Contact

Table permettant d'enregistrer les différents contacts.

T_Contact

Nom du champ 

Type du champ 

Description 

IdContact 

Entier long 

Numéro identifiant le contact 

NomContact 

Texte 

Nom du contact 

PrenomContact 

Texte 

Prénom du contact 

NomSociete 

Texte 

Nom de la société 

Fonction 

Texte 

Fonction du contact dans la société 

Adresse 

Texte 

Adresse du contact au bureau 

CodePostal 

Texte 

Code postal de la ville 

Ville 

Texte 

Ville de la société 

TelBureau 

Texte 

Numéro de téléphone au bureau 

Telecopie 

Texte 

Numéro de télécopie 

TelDomicile 

Texte 

Numéro de téléphone au domicile 

TelMobile 

Texte 

Numéro de portable 

Email 

Texte 

E-mail du contact 

Categorie 

Texte 

Catégorie du contact 

Notes 

Texte 

Notes ou commentaires 

DateAnniversaire 

Date/Heure 

Date d'anniversaire 

IdDossierOutlook 

Texte 

Identifiant du dossier Outlook du contact 

IdContactOutlook 

Texte 

Identifiant du contact Outlook 

II-B. Table T_DossierOutlook

Table permettant d'enregistrer les différents dossiers de contacts Outlook.

T_DossierOutlook

Nom du champ 

Type du champ 

Description 

IdDossierContacts 

Texte 

Identifiant du dossier de contacts Outlook 

DossierContacts 

Texte 

Nom du dossier de contacts Outlook 

DossierParent 

Texte 

Nom du dossier parent dans Outlook 

II-C. Table T_ContactOutlook

Table permettant d'enregistrer les différents contacts Outlook, pour faire le lien avec la table T_Contact.

T_ContactOutlook

Nom du champ 

Type du champ 

Description 

IdContact 

Texte 

Identifiant du contact dans Outlook 

NomComplet 

Texte 

Nom complet du contact dans Outlook 

IdDossier 

Texte 

Identifiant du dossier Outlook 

III. Les contacts Outlook

Nous présentons ici un résumé de la structure de l'objet ContactItem permettant de gérer les contacts côté Outlook.

III-A. Objet ContactItem

Objet Outlook permettant d'enregistrer les contacts, il est un élément d'un dossier de contacts (Objet Folder). Voici un extrait de ses propriétés :

Objet ContactItem

Nom du champ 

Type du champ 

Description 

EntryID 

Texte 

Champ identifiant, lié au champ IDContactOutlook de la table Access

LastName 

Texte 

Nom du contact 

FirstName 

Texte 

Prénom du contact 

CompanyName 

Texte 

Nom de la société 

JobTitle 

Texte 

Fonction du contact dans la société 

BusinessAddressStreet 

Texte 

Adresse ou rue du contact au bureau 

BusinessAddressPostalCode 

Texte 

Code postal de la ville 

BusinessAddressCity 

Texte 

Ville de la société 

BusinessTelephoneNumber 

Texte 

Numéro de téléphone au bureau 

BusinessFaxNumber 

Texte 

Numéro de télécopie 

HomeTelephoneNumber 

Texte 

Numéro de téléphone au domicile 

TelMobile 

Texte 

Numéro de portable 

Email1Address 

Texte 

E-mail du contact 

Categorie 

Texte 

Catégorie du contact 

Body 

Texte 

Notes ou commentaires 

Birthday 

Date/Heure 

Date d'anniversaire 

Pour ajouter un contact dans Outlook, on utilise l'objet Application d'Outlook :

 
Sélectionnez
Set objContact = objApp.CreateItem(olContactItem)

Pour éditer et sauvegarder les informations dans un objet ContactItem, on peut faire :

 
Sélectionnez
objContact.FirstName = "Jean-Louis"
objContact.LastName = "Durand"
...
objContact.save

La propriété EntryID va nous permettre de faire le lien avec le champ IdContactOutlook de la table Access.

IV. Opérations réalisées

Pour mieux comprendre le principe, illustrons par des schémas les opérations d'importation, d'exportation et de suppression des données.

Ces schémas sont valables pour un seul compte de messagerie. L'adresse e-mail du compte de messagerie doit d'ailleurs être enregistrée dans la table T_CompteMessagerie.

IV-A. Opérations d'importation

On vérifie si le contact Outlook est présent dans la base Access, si c'est le cas, on le met à jour côté Access, sinon on l'ajoute :

Mise à jour du contact
Mise à jour du contact
Ajout du contact
Ajout du contact

IV-B. Opérations d'exportation

On vérifie si le contact enregistré dans la table Access est présent dans la base Outlook, si c'est le cas, on le met à jour côté Outlook, sinon on l'ajoute :

Mise à jour du contact
Mise à jour du contact
Ajout du contact
Ajout du contact

IV-C. Opérations de suppression

Si le contact est présent dans Access et Outlook, on le supprime des deux côtés, sinon on le supprime uniquement où il est présent :

Image non disponible
Suppression des deux côtés
Suppression dans Access
Suppression dans Access
Suppression dans Outlook
Suppression dans Outlook

V. Formulaire F_ListeContact

Il permet d'afficher la liste des contacts classée par nom et prénom, et filtrée par dossier Outlook ou par nom de société. Il contient également les deux boutons de commande permettant d'importer ou d'exporter les contacts.

Formulaire F_ListeContact
Formulaire F_ListeContact

V-A. Bouton de commande CmdImportContacts

Ce bouton permet l'import des contacts Outlook dans la base Access en remplaçant ceux ayant le même identifiant.

Bouton cmdImportContacts
Bouton cmdImportContacts

Déroulé de la procédure événementielle

  • On actualise l'enregistrement courant sur le formulaire.
  • On importe les contacts Outlook en fonction des choix effectués sur le formulaire.
  • On met à jour la liste des dossiers et des contacts Outlook enregistrés respectivement dans les tables T_DossierOutlook et T_ContactOutlook.
  • On actualise le sous-formulaire et les listes de choix.
Procédure événementielle CmdImportContacts_Click
Cacher/Afficher le codeSélectionnez

V-B. Bouton de commande CmdExportContacts

Ce bouton permet l'export des contacts Access dans Outlook en remplaçant ceux ayant le même identifiant.

Bouton cmdExportContacts
Bouton cmdExportContacts

Déroulé de la procédure événementielle

  • On actualise l'enregistrement courant sur le formulaire.
  • On exporte les contacts en fonction des choix effectués sur le formulaire.
  • On met à jour la liste des contacts Outlook enregistrés dans la table T_ContactOutlook.
  • On actualise le sous-formulaire.
Procédure événementielle CmdExportContacts_Click
Cacher/Afficher le codeSélectionnez

V-C. Listes déroulantes pour le filtrage des contacts

Ces listes déroulantes cmbDossierOutlook et cmbSociete permettent de filtrer les contacts dans le sous-formulaire Access.

Zone de filtrage
Zone de filtrage

V-C-1. Procédure RefreshListeContacts

Déroulé de la procédure
  • Définition du critère de la requête en fonction des choix effectués dans les listes déroulantes ;
  • Constitution de la chaîne SQL avec le critère précédent ;
  • Affectation de la chaîne SQL à la source du sous-formulaire.
Procédure RefreshListeContacts
Cacher/Afficher le codeSélectionnez

V-D. Bouton de commande CmdActualiser

Ce bouton permet d'actualiser le formulaire.

Bouton cmdActualiser
Bouton cmdActualiser

Déroulé de la procédure événementielle

  • On met à jour la liste des contacts et des dossiers Outlook enregistrés dans les tables T_ContactOutlook, T_DossierOutlook.
  • On rafraîchit le formulaire et les listes déroulantes.
Procédure événementielle CmdActualiser_Click
Cacher/Afficher le codeSélectionnez

V-E. Bouton de commande CmdInitialiserLiens

Ce bouton permet, lors d'une réinstallation ou d'un changement d'ordinateur, et en cas de récupération des données Outlook à partir du fichier .pst, de mettre à jour les liens entre le champ IdContactOutlook de la base Access et la propriété EntryID des contacts Outlook.

Bouton cmdInitialiserLiens
Bouton cmdInitialiserLiens

Déroulé de la procédure événementielle

  • Si le contact Outlook est dans la base Access, on met à jour le champ IdContactOutlook côté Access.
  • On actualise le sous-formulaire.
Procédure événementielle CmdInitialiserLiens_Click
Cacher/Afficher le codeSélectionnez

VI. Formulaire F_Contact

Il permet de modifier ou ajouter un contact. Il comprend également des boutons de commande permettant d'importer, d'exporter ou de supprimer un contact, et des listes déroulantes pour les recherches.

Formulaire F_Contact
Formulaire F_Contact

Ce formulaire s'ouvre en mode édition en double-cliquant sur une ligne précise de la liste des contacts, et en mode ajout, en cliquant sur le bouton "Ajouter un contact" situé dans l'en-tête du formulaire F_ListeRendezVous.

VI-A. Bouton de commande CmdImportContact

Ce bouton permet l'import d'un contact Outlook pour l'ajouter à la base s'il n'est pas présent ou le remplacer dans le cas contraire.

Bouton cmdImportContact
Bouton cmdImportContact

Déroulé de la procédure événementielle

  • On actualise l'enregistrement courant sur le formulaire.
  • Si le contact Outlook est dans la base Access, on le remplace.
  • Sinon, on ajoute le contact Outlook à la base.
  • On rafraîchit la source du formulaire.
  • On rafraîchit les listes des dossiers et contacts Outlook sur le formulaire.
Procédure événementielle CmdImportContact_Click
Cacher/Afficher le codeSélectionnez

VI-C. Bouton de commande CmdExportContact

Ce bouton permet l'export du contact enregistré dans la table Access pour l'ajouter dans Outlook s'il n'est pas présent ou le remplacer dans le cas contraire.

Bouton cmdExportContact
Bouton cmdExportContact

Déroulé de la procédure événementielle

  • On actualise l'enregistrement courant sur le formulaire.
  • Si le contact enregistré dans la table Access est présent dans la base Outlook, on le remplace.
  • Sinon, on ajoute le contact dans Outlook.
  • On rafraîchit la source du formulaire.
  • On rafraîchit les listes des dossiers et contacts Outlook sur le formulaire.
Procédure événementielle CmdExportContact_Click
Cacher/Afficher le codeSélectionnez

VI-E. Bouton de commande CmdSupprimerContact

Ce bouton permet de supprimer un contact côté Access ou côté Outlook.

Bouton cmdSupprimerContact
Bouton cmdSupprimerContact

Déroulé de la procédure événementielle

  • On actualise l'enregistrement courant sur le formulaire.
  • Si le contact Outlook est dans la base Access, on le supprime des deux côtés.
  • Si le contact Outlook n'est pas dans la base Access, on le supprime dans Outlook.
  • Si le contact Access n'est pas dans Outlook, on le supprime dans Access.
  • On rafraîchit la source du formulaire.
  • On ferme le formulaire pour revenir à la liste des contacts si elle est ouverte.
Procédure événementielle CmdSupprimerContact_Click
Cacher/Afficher le codeSélectionnez

VI-F. Bouton de commande CmdActualiser

Ce bouton permet d'actualiser le formulaire.

Bouton cmdActualiser
Bouton cmdActualiser

Déroulé de la procédure événementielle

  • On met à jour la liste des contacts et des dossiers Outlook enregistrés dans les tables T_ContactOutlook, T_DossierOutlook.
  • On rafraîchit le formulaire et les listes déroulantes.
Procédure événementielle CmdActualiser_Click
Cacher/Afficher le codeSélectionnez

VI-G. Liste déroulante cmbContactOutlook

Elle permet de rechercher un contact Outlook déjà importé dans la base Access.

Elle est alimentée par la requête R_ContactOutlook qui affiche l'identifiant, le nom complet et l'état du contact Outlook (État : Importé ou non).

Liste déroulante cmbContactOutlook
Liste déroulante cmbContactOutlook

VI-H. Liste déroulante cmbDossierOutlook

Elle permet de saisir un dossier Outlook pour le contact enregistré dans Access.

Elle est alimentée par la table T_DossierOutlook qui permet d'enregistrer les noms des dossiers Outlook.

Liste déroulante cmbDossierOutlook
Liste déroulante cmbDossierOutlook

VII. Module M_Contact

On s'arrange pour regrouper dans des procédures ou fonctions génériques les portions de code répétitives, pour ainsi rendre le code plus lisible et faciliter sa maintenance. Ces routines sont ensuite appelées dans les procédures principales.

VII-A. Fonction isOutLookRunning

Cette fonction teste si Outlook est ouvert ou pas :

Fonction isOutLookRunning
Cacher/Afficher le codeSélectionnez

VII-B. Procédure RunOutlook

Procédure de lancement d'Outlook.

Procédure RunOutlook
Cacher/Afficher le codeSélectionnez

VII-C. Fonction Evaluer

Elle nous permet de gérer les cas où la valeur du champ ou de la propriété est nulle.

Fonction Evaluer
Cacher/Afficher le codeSélectionnez

VII-D. Procédure générique AddContactOutlook

Elle permet d'ajouter le contact Outlook dans la table Access, et prend en argument le Recordset basé sur la table Access, l'objet ContactItem du contact Outlook, et son dossier.

Procédure AddContactOutlook
Cacher/Afficher le codeSélectionnez

VII-E. Procédure générique UpdateContactAccess

Elle permet de mettre à jour le contact enregistré côté Access avec les données du contact Outlook. Elle prend en argument le Recordset basé sur la table Access, l'objet ContactItem du contact Outlook, et son dossier.

Procédure UpdateContactAccess
Cacher/Afficher le codeSélectionnez

VII-F. Procédure générique UpdateContactOutlook

Elle permet de mettre à jour le contact Outlook avec les données du contact Access. Elle prend en argument le Recordset basé sur la table Access, l'objet ContactItem du contact Outlook, et l'objet NameSpace.

Procédure UpdateContactOutlook
Cacher/Afficher le codeSélectionnez

VII-G. Fonction ImportContact

Déroulé de la fonction

  • On teste si Outlook est ouvert et on l'ouvre si ce n'est pas le cas.
  • On crée les objets Application et NameSpace d'Outlook et on ouvre le Recordset basé sur la table des contacts.
  • On recherche le contact Outlook ayant comme identifiant la chaîne de caractères passée en argument.
  • Si on le trouve, on met à jour le contact de la base Access avec les données du contact Outlook, sinon on l'ajoute à la base.
  • On ferme et libère les variables.

On teste si Outlook est déjà ouvert :

 
Sélectionnez
   If Not IsOutLookRunning() Then ' Si Outlook n'est pas déjà ouvert
      RunOutlook ' On exécute Outlook
   End If

On crée les objets Application et NameSpace d'Outlook, la référence au compte de messagerie et à la base en cours, puis on ouvre le Recordset basé sur la table T_Contact :

 
Cacher/Afficher le codeSélectionnez

On recherche le contact Outlook ayant comme identifiant la valeur de l'argument IdContactOutlook :

 
Cacher/Afficher le codeSélectionnez

On teste si le contact trouvé est présent dans la table T_Contact, si c'est le cas on le met à jour, sinon on l'ajoute :

 
Cacher/Afficher le codeSélectionnez

Pour finir, on minimise la fenêtre Outlook pour revenir à la fenêtre Access, puis ferme et libère les variables :

 
Cacher/Afficher le codeSélectionnez

VII-H. Fonction ImportContacts

Déroulé de la fonction

  • On teste si Outlook est ouvert et on l'ouvre si ce n'est pas le cas.
  • On crée l'objet Application d'Outlook et on ouvre le Recordset basé sur la table des contacts.
  • On parcourt les dossiers et sous-dossiers Outlook à la recherche du ou des dossiers de contacts.
  • On liste les contacts contenus dans ces dossiers.
  • Pour chaque contact, si un nom de société a été choisi, on verifie s'il appartient à la bonne société.
  • Ensuite, s'il est présent dans la base, on le remplace, sinon on l'ajoute.
  • On ferme et libère les variables.

On teste si Outlook est déjà ouvert :

 
Sélectionnez
   If Not IsOutLookRunning() Then ' Si Outlook n'est pas déjà ouvert
      RunOutlook ' On exécute Outlook
   End If

On crée les objets Application et NameSpace d'Outlook, la référence au compte de messagerie et à la base en cours, puis on ouvre le Recordset basé sur la table T_Contact :

 
Cacher/Afficher le codeSélectionnez

On parcourt les dossiers et sous-dossiers Outlook à la recherche du ou des dossiers de contacts, puis on liste les contacts à la recherche de celui à importer :

 
Cacher/Afficher le codeSélectionnez

Pour chaque contact, si un nom de société a été choisi, on verifie s'il appartient à la bonne société. On teste ensuite s'il est présent dans la table T_Contact, si c'est le cas, on le met à jour, sinon on l'ajoute :

 
Cacher/Afficher le codeSélectionnez

Pour finir, on minimise la fenêtre Outlook pour revenir à la fenêtre Access, puis ferme et libère les variables :

 
Cacher/Afficher le codeSélectionnez

VII-I. Fonction ExportContact

Déroulé de la fonction

  • On teste si Outlook est ouvert et on l'ouvre si ce n'est pas le cas.
  • On crée les objets Application et NameSpace d'Outlook et on ouvre le Recordset sur le contact affiché sur le formulaire.
  • On recherche le contact Outlook ayant comme identifiant la valeur du champ IdContactOutlook de l'enregistrement courant.
  • Si on le trouve, on le remplace par celui de la base Access, sinon on l'ajoute dans Outlook.
  • On ferme et libère les variables.

On teste si Outlook est déjà ouvert :

 
Sélectionnez
   If Not IsOutLookRunning() Then ' Si Outlook n'est pas déjà ouvert
      RunOutlook ' On exécute Outlook
   End If

On crée les objets Application et NameSpace d'Outlook, la référence au compte de messagerie et à la base en cours, puis on ouvre le Recordset basé sur la table T_Contact filtrée sur le contact affiché sur le formulaire :

 
Cacher/Afficher le codeSélectionnez

On recherche le contact Outlook ayant comme identifiant la valeur du champ IdContactOutlook de la table T_Contact :

 
Cacher/Afficher le codeSélectionnez

On teste si le contact affiché sur le formulaire est présent dans Outlook, si c'est le cas, on le met à jour, sinon on l'ajoute :

 
Cacher/Afficher le codeSélectionnez

Pour finir, on minimise la fenêtre Outlook pour revenir à la fenêtre Access, puis ferme et libère les variables :

 
Cacher/Afficher le codeSélectionnez

VII-J. Fonction ExportContacts

Déroulé de la fonction

  • On teste si Outlook est ouvert et on l'ouvre si ce n'est pas le cas.
  • On crée les objets Application et NameSpace d'Outlook et on ouvre le Recordset en sélectionnant les contacts correspondant aux choix effectués sur le formulaire.
  • On parcourt le Recordset et recherche pour chaque contact dans Access celui ayant comme identifiant la valeur du champ IdContactOutlook.
  • Si on le trouve, on le remplace par celui de la base Access, sinon on l'ajoute dans Outlook.
  • On ferme et libère les variables.

On teste si Outlook est déjà ouvert :

 
Sélectionnez
   If Not IsOutLookRunning() Then ' Si Outlook n'est pas déjà ouvert
      RunOutlook ' On exécute Outlook
   End If

On crée les objets Application et NameSpace d'Outlook, la référence au compte de messagerie et à la base en cours, puis on ouvre le Recordset en fonction des choix effectués sur le formulaire :

 
Cacher/Afficher le codeSélectionnez

Pour chaque enregistrement, on recherche le contact Outlook ayant comme identifiant la valeur du champ IdContactOutlook :

 
Cacher/Afficher le codeSélectionnez

Si le contact de l'enregistrement Access est présent dans le dossier Outlook, on le met à jour, sinon on l'ajoute dans la base Access :

 
Cacher/Afficher le codeSélectionnez

Pour finir, on minimise la fenêtre Outlook pour revenir à la fenêtre Access, puis ferme et libère les variables :

 
Cacher/Afficher le codeSélectionnez

VII-K. Fonction SupprimerContactOutlook

Déroulé de la fonction

  • On teste si Outlook est ouvert et on l'ouvre si ce n'est pas le cas.
  • On crée les objets Application et NameSpace d'Outlook.
  • On recherche le contact Outlook ayant comme identifiant la chaîne de caractères passée en argument.
  • Si on le trouve, on supprime le contact dans Outlook.
  • On ferme et libère les variables.

On teste si Outlook est déjà ouvert :

 
Sélectionnez
   If Not IsOutLookRunning() Then ' Si Outlook n'est pas déjà ouvert
      RunOutlook ' On exécute Outlook
   End If

On crée les objets Application et NameSpace d'Outlook :

 
Cacher/Afficher le codeSélectionnez

On recherche le contact Outlook ayant comme identifiant la valeur de l'argument IdContactOutlook :

 
Cacher/Afficher le codeSélectionnez

On teste si le contact est présent dans Outlook, si c'est le cas, on le supprime :

 
Cacher/Afficher le codeSélectionnez

Pour finir, on minimise la fenêtre Outlook pour revenir à la fenêtre Access, puis ferme et libère les variables :

 
Cacher/Afficher le codeSélectionnez

VII-L. Fonction MajContactsOutlook

Déroulé de la fonction

  • On crée l'objet Application d'Outlook ;
  • On vide la table T_ContactOutlook et ouvre le Recordset basé sur cette table ;
  • On parcourt les dossiers et sous-dossiers Outlook à la recherche des dossiers de contacts.
  • On liste les contacts contenus dans ces dossiers en les ajoutant à la table.
  • On ferme et libère les variables.

On crée les objets Application et NameSpace d'Outlook, puis la référence au compte de messagerie :

 
Sélectionnez
' Création de l'objet Application d'Outlook
Set objApp = new Outlook.Application

' Création de l'objet NameSpace d'Outlook
Set objSpace = objApp.GetNamespace("MAPI")

' Référence au dossier principal du compte de messagerie
Set objCptFolder = objSpace.Folders(DLookup("email", "T_CompteMessagerie"))

On vide la table T_ContactOutlook et ouvre le Recordset basé sur cette table :

 
Cacher/Afficher le codeSélectionnez

On parcourt les dossiers et sous-dossiers Outlook à la recherche de dossiers de contacts, puis on liste les contacts en les ajoutant à la table :

 
Cacher/Afficher le codeSélectionnez

Pour finir, on ferme et libère les variables :

 
Cacher/Afficher le codeSélectionnez

VII-M. Fonction MajDossiersOutlook

Déroulé de la fonction

  • On crée les objets Application et NameSpace d'Outlook.
  • On vide la table T_DossierOutlook et ouvre le Recordset basé sur cette table.
  • On parcourt les dossiers et sous-dossiers Outlook à la recherche des dossiers de contacts.
  • On ajoute les noms de ces dossiers à la table.
  • On ferme et libère les variables.

On crée les objets Application et NameSpace d'Outlook, puis la référence au compte de messagerie :

 
Sélectionnez
' Création de l'objet Application d'Outlook
Set objApp = new Outlook.Application

' Création de l'objet NameSpace d'Outlook
Set objSpace = objApp.GetNamespace("MAPI")

' Référence au dossier principal du compte de messagerie
Set objCptFolder = objSpace.Folders(DLookup("email", "T_CompteMessagerie"))

On vide la table T_ContactOutlook et ouvre le Recordset basé sur cette table :

 
Cacher/Afficher le codeSélectionnez

On parcourt les dossiers et sous-dossiers Outlook à la recherche de dossiers de contacts, puis on ajoute l'identifiant, le nom du dossier Outlook et celui de son dossier parent dans la table :

 
Cacher/Afficher le codeSélectionnez

Pour finir, on ferme et libère les variables :

 
Cacher/Afficher le codeSélectionnez

VII-N. Fonction InitialiserLiens

Déroulé de la fonction

  • On teste si Outlook est ouvert et on l'ouvre si ce n'est pas le cas.
  • On crée l'objet Application d'Outlook et on ouvre le Recordset basé sur la table des contacts.
  • On parcourt les dossiers et sous-dossiers Outlook à la recherche des dossiers de contacts.
  • On liste les contacts contenus dans ces dossiers.
  • Pour chaque contact, s'il est présent dans la base, on le met à jour.
  • On ferme et libère les variables.

On teste si Outlook est déjà ouvert :

 
Sélectionnez
   If Not IsOutLookRunning() Then ' Si Outlook n'est pas déjà ouvert
       RunOutlook
   End If

On crée les objets Application et NameSpace d'Outlook, la référence au compte de messagerie et à la base en cours, puis on ouvre le Recordset basé sur la table T_Contact :

 
Cacher/Afficher le codeSélectionnez

On parcourt les dossiers et sous-dossiers Outlook à la recherche de dossiers de contacts, puis on liste les contacts à la recherche de celui à mettre à jour :

 
Cacher/Afficher le codeSélectionnez

On teste pour chaque contact s'il est présent dans la table T_Contact, si c'est le cas, on le met à jour :

 
Cacher/Afficher le codeSélectionnez

Pour finir, on minimise la fenêtre Outlook pour revenir à la fenêtre Access, puis ferme et libère les variables :

 
Cacher/Afficher le codeSélectionnez

VIII. Les bases de données à télécharger

Les bases jointesgestion-contacts sont au format mdb et accdb.

Enregistrez bien au début l'adresse e-mail de votre compte de messagerie dans la table T_CompteMessagerie.

IX. Remerciements

Je tiens à remercier Tahar AIT OUARAB pour m'avoir donné l'idée de développer ce type d'outil, Pierre Fauconnier pour m'avoir conseillé et aidé pour la réalisation de cet article, ainsi que Claude Leloup pour sa relecture.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Copyright © 2018 Denis Hulo. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.