Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Rédacteur/Modérateur
    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2004
    Messages
    5 989
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2004
    Messages : 5 989
    Points : 12 454
    Points
    12 454
    Billets dans le blog
    6

    Par défaut [Article] Conception d'un outil de mise à jour des rendez-vous entre Access et Outlook

    Bonjour à tous,

    Je vous propose un nouvel article sur l'interaction entre Access et Outlook avec cette fois la mise à jour des rendez-vous entre une base Access et des calendriers Outlook :

    Mise à jour des rendez-vous entre Access et Outlook

    L'objectif étant de partir d'un exemple simple, avec un formulaire Access comportant une liste de rendez-vous, classés par date et heure, avec la possibilité de filtrer ces rendez-vous suivant une certaine période.

    A partir de ce formulaire je peux importer ou exporter les rendez-vous en fonction de la période et du calendrier choisis.

    Procédures de mise à jour :

    Importations des rendez-vous Outlook dans Access.
    Exportations des rendez-vous Access dans Outlook.
    Suppression d'un rendez-vous dans Access ou Outlook.

    Bonne lecture,
    Cordialement,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information en abondance, plein de bonnes choses à consulter sans modération

    Si vous souhaitez mettre en place une gestion de planning, une gestion de stock, de ventes/achats ou tout autre application Access, je peux vous proposer mes services.
    Pour cela n'hésitez pas à me contacter par courriel ou mp.


    Heureuse année 2019 !

    Mes tutoriels et contributions sur ma page personnelle.

  2. #2
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    mars 2006
    Messages
    3 508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : mars 2006
    Messages : 3 508
    Points : 6 068
    Points
    6 068
    Billets dans le blog
    16

    Par défaut

    Bonjour et Félicitations c'est un beau travail.

    J'ai juste quelques remarques à faire

    L'utilisation du entryID et StoreId fait que la vérification de l'existence du rdv côté Outlook ne fonctionne que si c'est le même compte, donc attention à celui qui voudrait utiliser cela avec plusieurs Utilisateurs.

    Avec plusieurs comptes (pour le même utilisateur donc) dans le code ce serait mieux d'utiliser GetitemFromID avec le EntryIDStore (expression.GetItemFromID(EntryIDItem, EntryIDStore))

    Pour le parcours des rdv coté Outlook il serait plus rapide d'utiliser une table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Sub Test_GetTable_appointments()
        Dim oFolder As Outlook.Folder
        Dim criteria
        Dim oTable As Table
        Dim i, oRow, R, arr
        Set oFolder = Application.Session.GetDefaultFolder(olFolderCalendar)
        criteria = "[MessageClass] = 'IPM.Appointment'"
     
        Dim DateToCheck As Date
        DateToCheck = Date
        'On cherche entre la date -1mois et demain
        FILTRE = " and [Start] >= '" & Format(DateAdd("M", -1, DateToCheck), "ddddd") & " 0:00 AM' "
        FILTRE = FILTRE & " and [Start] <= '" & Format(DateAdd("d", 1, DateToCheck), "ddddd") & " 0:00 AM' "
     
        Set oTable = oFolder.GetTable(criteria & FILTRE, olUserItems)
        With oTable.Columns
            'par defaut
            '1 EntryID
            '2 Subject
            '3 CreationTime
            '4 LastModificationTime
            '5 MessageClass
            '6 Start
            '7 End
            '8 IsRecurring
            .add ("Location")
            .add ("Categories")
            .add ("BillingInformation")
            .add ("ReminderSet")
            .add ("http://schemas.microsoft.com/mapi/proptag/0x1000001F")    'body
        End With
        oTable.sort "Start", True
     
        MsgBox oTable.GetRowCount, , "Nombre de rdv trouvés (filtre)"
        Do Until (oTable.EndOfTable)
            Set oRow = oTable.GetNextRow()
            If Year(oRow("Start")) <= 2018 Then
                MsgBox oRow("Subject") & vbCr & _
                       oRow("Start") & vbTab & "-->" & oRow("End") & vbCr & _
                       "Categories =" & oRow("Categories") & vbCr & _
                       "BillingInformation=" & oRow("BillingInformation") & vbCr & _
                       "ReminderSet=" & oRow("ReminderSet") & vbCr & _
                       "Body=" & oRow("http://schemas.microsoft.com/mapi/proptag/0x1000001F")
            End If
        Loop
     
    End Sub
    Tu peux avec .GetArray convertir cette Table en Array.

    Encore bravo

  3. #3
    Rédacteur/Modérateur
    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2004
    Messages
    5 989
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2004
    Messages : 5 989
    Points : 12 454
    Points
    12 454
    Billets dans le blog
    6

    Par défaut

    Merci bien !

    C'est vrai qu'il y a une beaucoup de possibilités pour extraire ces rendez-vous, j'ai essayé de faire au plus simple, mais merci pour tes remarques fort utiles.

    Je rajouterais que la manière de filtrer les dates sous Outlook n'est pas très simple pour les accessiens, je me souviens avoir eu des soucis pour récupérer les rendez-vous selon une certaine période avec restrict.

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information en abondance, plein de bonnes choses à consulter sans modération

    Si vous souhaitez mettre en place une gestion de planning, une gestion de stock, de ventes/achats ou tout autre application Access, je peux vous proposer mes services.
    Pour cela n'hésitez pas à me contacter par courriel ou mp.


    Heureuse année 2019 !

    Mes tutoriels et contributions sur ma page personnelle.

Discussions similaires

  1. Mise à jour des rendez vous dans Outlook
    Par pkrvz dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/02/2008, 21h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo