Automation

Que désigne Automation ? A quoi cela peut-il servir ?

Automation (anciennement OLE Automation) est un système intégré à la plupart des logiciels Microsoft (entre autres), et qui permet de faire dialoguer ces logiciels les uns avec les autres. Ce dialogue permet à Access par exemple de sous-traiter des tâches qui lui sont impossibles.

Remarque : la programmation d’Automation passe par une bonne connaissance de Visual Basic.

Ce qui est possible avec Automation :

  • Piloter Excel via Access, pour créer une feuille de calcul complète à partir de données stockées dans Access.
  • Piloter Word via Access pour lancer un mailing automatique.
  • Expédier un e-mail avec pièces jointes via Outlook, depuis Access (ou Word, ou Excel, d’ailleurs !).

Dans Automation, on distingue le logiciel « serveur » (celui qui produit l’information ou la maîtrise ; le sous-traitant dans mon exemple plus haut) et le logiciel « client » (celui qui demande cette information). Ainsi, si Access envoie un e-mail via Outlook, c’est Outlook le serveur, et Access le client.

Vous aimerez aussi...

15 réponses

  1. Dorian dit :

    Lorsque je parle de l’application OpenOutlook il s’agit en fait d’un bouton de commande qui ouvre une application, et dans ce cas de figure Outlook.

    J’ai trouvé une alternative pour cette application, mais merci pour l’aide en tout cas !

  2. Hervé Inisan dit :

    Dorian > J’ai peut-être raté quelque chose, mais c’est quoi l’application OpenOutlook ?

    Sinon, dès que j’ai un peu de temps, je posterai un billet sur le pilotage Outlook.

  3. Dorian dit :

    Ok, merci pour cette explication.
    Cela à l’air cependant un peu trop compliqué pour mes compétences de petit (tout petit) développeur 🙁

    N’y a-t-il pas un moyen très simple d’ouvrir le calendrier Outlook directement depuis Access en modifiant le code de l’application « OpenOutlook » ?

  4. Hervé Inisan dit :

    Dorian > Ça demande effectivement un peu de code VBA/Automation. Il faut faire appel à un objet AppointmentItem de Outlook.

  5. Dorian dit :

    Bonjour à tous,

    Je recherche à faire une liaison DEPUIS une date rentrée dans Access vers Mon calendrier Outlook afin de créer une alerte.
    (Il est possible de faire l’inverse assez simplement en extrapolant cette méthode pour le calendrier:
    http://office.microsoft.com/fr-fr/h
    mais l’inverse ne fonctionne pas, le changement de mes dates dans ma BDD n’entraîne aucune modification dans Outlook)

    Mise en situation:

    -L’utilisateur rentre une date de rendez vous dans Access via un formulaire
    -Cette date est enregistrée dans la BDD
    -L’utilisateur envoie cette date vers son calendrier Outlook via bouton poussoir, ce qui lui créé une alerte à une certaine heure (fixe ou ajustable par l’utilisateur, peut importe…)

    J’ai vu qu’il était possible de créer des alertes automatiques avec « date » en critère de recherche en ouvrant Access mais j’aimerais que l’utilisateur soit directement avertit via son Outlook des rendez-vous qu’il a insèré dans sa BDD.

    J’espère que cela reste réalisable sans trop de difficultés.
    Merci d’avance pour votre aide.

  6. DAVID dit :

    Pour l’envoi de mail avec pj je tenterai bien libmail quand j’aurais un peu de temps.
    Ce qui est intéressant dans l’automation access/outlook c’est aussi la possibilité de copier un nouveau contact saisi sur access vers outlook sur un simple click mais j’attends impatiemment de comprendre cette histoire de « mappage » dont je n’ai pas souvent entendu parler.

  7. Hervé Inisan dit :

    LaPeche35 > libMAIL permet aussi le paramétrage du SMTP. Sinon, pour le cas de vbSendMail, est-ce que tu as lié la bibliothèque fournie au projet Access (dans Outils/Références) ? Parce que les exemples fournis font appels à de la liaison précoce.

  8. LaPeche35 dit :

    Et une autre méthode: se passer des API d’Outlook grâce à ce que je viens de trouver:
    http://www.freevbcode.com/ShowCode….

    Mais les exemples ne marchent pas chez moi :'(
    « Erreur d’exécution 429: Le composant ActiveX ne peut pas créer l’objet ». XP SP3 trop récent?

    Pourtant, cette DLL est plus complète et répondrait à mes critères de performance (1 seule ouverture de session sur le SMTP pour plusieurs mails; possibilité de définir le port SMTP de mon FAI, etc …)

  9. Hervé Inisan dit :

    LaPeche35 > Pas la peine d’adapter le code C# : il y a un bout de code équivalent dans le « grenier » : voir cette page. Et il y a aussi une autre méthode (un peu plus technique mais avec aussi plus d’indépendance par rapport à Outlook) sur cette page. Apuka choisir la méthode !

  10. LaPeche35 dit :

    Voici de quoi se mettre sous la dent:
    http://support.microsoft.com/?scid=

    Suffirait-il de convertir ce code C# en VBA Access? Je ne sais pas faire 🙁

  11. DAVID dit :

    Je ne sais pas faire. Du moins pas encore. Je commence tout juste à faire du vba. J’ai besoin d’un peu de temps.

  12. Hervé Inisan dit :

    David > Les différences ne sont pas visibles à l’oeil nu, il faut lister les propriétés de la table et des champs par code VBA.

  13. DAVID dit :

    Hervé
    Merci pour cette information précieuse même si je reste sur ma faim car j’ai comparé les deux tables comme un forcené pendant un bon bout de temps…. aucune différence apparente.
    J’attends donc avec impatience ton article… et mon application aussi.
    Merci

  14. Hervé Inisan dit :

    David > La macro AjouterDeOutlook nécessite en fait que la table destination et ses champs soient « mappés » sur les informations Outlook. Ca se met en place via des propriétés de la table et des champ. Ce qui explique pourquoi une table standard (même avec des noms de champs identiques) ne fonctionnera pas… sauf si bien sûr on lui définit les propriétés en question. C’est un peu long à expliquer ici, mais je préparerai un article là-dessus dès que j’aurai plus de temps.

  15. DAVID dit :

    Bonjour,
    L’application Access 2007 « Contact » proposé par Microsoft contient plusieurs commandes boutons automation:

    – Les boutons « Collecte de données par messagerie » et « Ajouter à partir d’Outlook » dans le formulaire « Liste des contacts »

    – Les boutons « Courrier électronique » et « Créer un contact Outlook » dans le formulaire « Détails du contact »

    Tous fonctionnement sur la commande macro « Exécuter commande ».
    Seulement voilà, j’avais construit une table identique et j’ai affecté les mêmes macros et ça ne fonctionne pas, je reçoit un message du genre : « La commande ou l’action « AjouterDeOutlook » n’est pas disponible pour l’instant » et précise que soit je suis en lecture seule soit l’objet n’est pas activé.
    Je crois avoir tout essayé et j’ai passé des heures à comprendre mais en vain.
    Par ailleurs, pour le bouton « Collecte de données par messagerie » ça ne marche ni dans l’application « Contact » de Microsoft ni dans le mien ; je reçois le message « Microsoft Outlook n’a pas pu être démarré. Assurez vous qu’Outlook est installé et configuré correctement sur votre ordinateur ».
    J’ai Access 2007 et Outlook 2007 est installé sur mon PC (XP).
    Bref, deux heures et demi de frustation à tenter de comprendre ce problème.
    Vos lumières seront les bienvenus. Merci de m’aider à comprendre ce problème.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *