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 :

Récupérer des données Outlook vers Access


Sujet :

Access

  1. #1
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut Récupérer des données Outlook vers Access
    Bonjour à tous,

    J'ai trouvé ce code sur le forum qui permet d'intérroger Outlook, puis de vérifier la liste des nouveaux mails pour ensuite les mettre à jour dans une table de la Bdd.

    J'aimerai pouvoir faire la même chose mais pour récupérer les données stockées dans le calendrier Outlook.

    Pouvez-vous m'aider à régler ce problème ?

    Voici le code qui permet donc de récupérer les nouveaux mails.

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Sub recupere_les_messages_outlook_dans_une_table()
     
        'gestion des erreurs
        On Error GoTo gere
     
        'déclaration des variables de travail
        Dim olkapp As Object
        Dim olknamespace As Object
        Dim objOLfolder As Outlook.MAPIFolder
        Dim i As Integer
        Dim marequete As String
        'ouverture de l'object outlook
        Set olkapp = CreateObject("Outlook.application")
        Set olknamespace = olkapp.GetNamespace("MAPI")
     
        'ouverture des dossiers de mails
        Set objOLfolder = olknamespace.GetDefaultFolder(olFolderInbox)
     
        'informations sur le nombre de mails trouvés
        MsgBox ("Access a trouvé : " & objOLfolder.Items.Count & " mail(s) dans votre boite de réception !")
     
        'aucun mail n'a été trouvé ? => on sort !
        If objOLfolder.Items.Count = 0 Then
            Exit Sub
        End If
     
        'on désactive les avertissements
        DoCmd.SetWarnings False
     
        'passage en revue des mails et écriture dans la table
        'des champs suivants SUJET,DESTINATAIRE,DATE ENVOI,DATE RECU
        For i = objOLfolder.Items.Count To 1 Step -1
            marequete = "INSERT INTO TABLEMAIL (SUJET,TO,ENVOYELE,RECULE) VALUES ('" _
            & IIf(Not IsNull(objOLfolder.Items(i).Subject), objOLfolder.Items(i).Subject, "") & "'" _
            & ",'" & IIf(Not IsNull(objOLfolder.Items(i).To), objOLfolder.Items(i).To, "") & "'" _
            & ",'" & IIf(Not IsNull(objOLfolder.Items(i).SentOn), objOLfolder.Items(i).SentOn, "") & "'" _
            & ",'" & IIf(Not IsNull(objOLfolder.Items(i).ReceivedTime), objOLfolder.Items(i).ReceivedTime, "") & "'" _
            & ");"
            'MsgBox ("ACCESS va éxécuter la requete suivante :" & vbCrLf & marequete)
            DoCmd.RunSQL marequete
        Next i
     
        'on réactive les avertissements
        DoCmd.SetWarnings True
     
        'fermeture des objets
        'et libération
        olkapp.Quit
        Set olkapp = Nothing
     
        'fermeture normale
        Exit Sub
     
        'en cas d'erreur
    gere:
        MsgBox ("L'erreur suivante a eu lieue : " & vbCrLf & Err.Description)
        Exit Sub
     
    End Sub
    Merci pour votre réponse.

    Daniel.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Déjà il te faut modifier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objOLfolder = olknamespace.GetDefaultFolder(olFolderInbox)
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objOLfolder = olknamespace.GetDefaultFolder(olFolderCalendar)
    Ensuite il te faut juste modifier "marequete" pour prendre en compte les infos contenuent dans "objOLfolder.Items(i)" que tu veux copier.

    A+

  3. #3
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut
    re,

    Merci Muhad'hib pour ta réponse, c'est bien cela.

    Je voulais également récuperer les dates. Comment faire ?

    J'ai déjà fais une liaison de mon Outlook vers ma Bdd, mais le problème est que les dates que je récupère par cette liaison ne correspondent pas aux dates de mon calendrier (je pense que c'est la date modification).

    Je vous remet le code (non finalisé pour le moment)

    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
    48
    49
    50
    51
    52
    Private Sub Outlook_Click()
     
        'déclaration des variables de travail
        Dim olkapp As Object
        Dim olknamespace As Object
        Dim objOLfolder As Outlook.MAPIFolder
        Dim i As Integer
       ' Dim marequete As String
        'ouverture de l'object outlook
        Set olkapp = CreateObject("Outlook.application")
        Set olknamespace = olkapp.GetNamespace("MAPI")
     
        'ouverture des dossiers de mails
        Set objOLfolder = olknamespace.GetDefaultFolder(olFolderCalendar)
     
        'informations sur le nombre de mails trouvés
        MsgBox ("Access a trouvé : " & objOLfolder.Items.Count & " message(s) dans votre calendrier !")
        'aucun mail n'a été trouvé ? => on sort !
        If objOLfolder.Items.Count = 0 Then
            Exit Sub
        End If
     
        'on désactive les avertissements
        DoCmd.SetWarnings False
     
        'passage en revue des mails et écriture dans la table
        'des champs suivants SUJET,DESTINATAIRE,DATE ENVOI,DATE RECU
        For i = objOLfolder.Items.Count To 1 Step -1
       '     marequete = "INSERT INTO TABLEMAIL (SUJET,TO,ENVOYELE,RECULE) VALUES ('" _
            & IIf(Not IsNull(objOLfolder.Items(i).Subject), objOLfolder.Items(i).Subject, "") & "'" _
            & ",'" & IIf(Not IsNull(objOLfolder.Items(i).To), objOLfolder.Items(i).To, "") & "'" _
            & ",'" & IIf(Not IsNull(objOLfolder.Items(i).SentOn), objOLfolder.Items(i).SentOn, "") & "'" _
            & ",'" & IIf(Not IsNull(objOLfolder.Items(i).ReceivedTime), objOLfolder.Items(i).ReceivedTime, "") & "'" _
            & ");"
        MsgBox objOLfolder.Items(i)
            'MsgBox ("ACCESS va éxécuter la requete suivante :" & vbCrLf & marequete)
       '     DoCmd.RunSQL marequete
        'MsgBox objOLfolder.Items.Count
        Next i
     
        'on réactive les avertissements
        DoCmd.SetWarnings True
     
        'fermeture des objets
        'et libération
        olkapp.Quit
        Set olkapp = Nothing
     
        'fermeture normale
        Exit Sub
     
    End Sub
    Peux-tu m'aider à régler ce problème.

    En attendant Merci.

    Daniel

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Pour récupérer les infos dont tu as besoin, tu peux regarder dans l'aide les propriétés d'un objet contenu dans un olFolderCalendar, ou tu dois aussi pouvoir déclaré une variable ( as object), lui affecter objOLfolder.Items(1) et regarder la liste des propriètés dans la fenètre des variables locales.

    N'ayant pas access sous la main, je n'ai pas pu tester mais tu nous dira ce que ça donne

    A+

  5. #5
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut
    re,

    Je viens de lire l'aide en ligne et j'ai trouvé ce code qui me semble pouvoir répondre à mon problème :

    Ce code permet de créer des rendez-vous dans le calendrier, mais moi je veux juste en extraire les infos.

    Pouvez-vous à partir de la syntaxe ci-après m'aider à reformuler ce code afin de consulter les infos.

    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
    Utilisation de l'objet MeetingItem
    Contrairement aux autres objets Microsoft Outlook, vous ne pouvez pas créer cet objet. Il est créé automatiquement lorsque vous affectez la constante olMeeting à la propriété MeetingStatus d'un objet AppointmentItem et que vous l'envoyez à un ou plusieurs utilisateurs. Ils le reçoivent dans leur boîte de réception sous la forme d'un objet MeetingItem. 
     
    Cet exemple montre comment utiliser la méthode CreateItem pour créer un rendez-vous. Il est transformé en objet MeetingItem avec un participant obligatoire et un participant facultatif lorsqu'il est reçu dans la boîte de réception de chaque destinataire.
     
    Set myItem = myOlApp.CreateItem(olAppointmentItem)
    myItem.MeetingStatus = olMeeting
    myItem.Subject = "Strategy Meeting"
    myItem.Location = "Conference Room B"
    myItem.Start = #9/24/97 1:30:00 PM#
    myItem.Duration = 90
    Set myRequiredAttendee = myItem.Recipients.Add("Nate _
        Sun")
    myRequiredAttendee.Type = olRequired
    Set myOptionalAttendee = myItem.Recipients.Add("Kevin _
        Kennedy")
    myOptionalAttendee.Type = olOptional
    Set myResourceAttendee = _
        myItem.Recipients.Add("Conference Room B")
    myResourceAttendee.Type = olResource
    myItem.Send
    La méthode GetAssociatedAppointment permet de renvoyer l'objet AppointmentItem associé à un objet MeetingItem et de travailler directement sur l'objet AppointmentItem pour répondre à la demande
    Si vous pouvez m'aider, vous allez me retirer une très grosse épine du pied.

    en attendant MERCI.

    Daniel

Discussions similaires

  1. [A-00] Importer des données Excel vers Access
    Par Slici dans le forum VBA Access
    Réponses: 4
    Dernier message: 06/03/2009, 12h56
  2. Exporter des données OUTLOOK vers EXCEL
    Par devdev dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 04/03/2009, 15h35
  3. [A-07] Récupérer des infos outlook en access
    Par jmarynis dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/11/2008, 15h48
  4. Réponses: 8
    Dernier message: 23/01/2007, 21h02
  5. Récupérer des données Excel vers Interbase ...
    Par Djedjeridoo dans le forum InterBase
    Réponses: 2
    Dernier message: 20/07/2003, 18h16

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