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
    6 535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2004
    Messages : 6 535
    Points : 13 907
    Points
    13 907
    Billets dans le blog
    11
    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

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Un formulaire de contrôle des disponibilités du matériel sur une période donnée :
    Disponibilité du matériel

    ça permet de voir l'état du "stock" de matériel maintenant et dans le futur

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

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : mars 2006
    Messages : 3 830
    Points : 6 705
    Points
    6 705
    Billets dans le blog
    19
    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
    6 535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : août 2004
    Messages : 6 535
    Points : 13 907
    Points
    13 907
    Billets dans le blog
    11
    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

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Un formulaire de contrôle des disponibilités du matériel sur une période donnée :
    Disponibilité du matériel

    ça permet de voir l'état du "stock" de matériel maintenant et dans le futur

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