IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Access Discussion :

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


Sujet :

Access

  1. #1
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 428
    Points : 20 008
    Points
    20 008
    Billets dans le blog
    67
    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 synchronisation des rendez-vous entre Access et Outlook :

    Synchronisation 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,

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

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    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
    8 428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 428
    Points : 20 008
    Points
    20 008
    Billets dans le blog
    67
    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,

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2021
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour, Y-a-t-il une façon d'avoir accès à plusieurs calendriers ? Ou dû moins les calendriers que l'utilisateur à accès en mode partager

    Merci d'avance

  5. #5
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 428
    Points : 20 008
    Points
    20 008
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    S'il s'agit de calendriers partagés avec plusieurs comptes de messagerie, alors il faut ajouter une colonne comptemessagerie dans les tables des calendriers et des rendezvous, et faire le lien entre les 2 tables sur les colonnes (idcalendrier,comptemessagerie). Il faut également modifier le code derrière.

    Cdlt,

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