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

VBA Access Discussion :

Import de rendez-vous Outlook dans Access


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Import de rendez-vous Outlook dans Access
    Bonsoir,

    J'essaye d'importer dans une table Access des rendez-vous Outlook, mais j'ai une erreur d'exécution '424' "Objet requis", je sèche depuis un bon bout de temps et si quelqu'un pouvait me débloquer ...

    Voici mon code :

    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
    'Outlook
    Dim olApp As Outlook.Application
    Dim ns As Outlook.NameSpace
    Dim cf As Outlook.MAPIFolder
    Dim ai As Outlook.AppointmentItem
    'SQL
    Dim db As DAO.Database
    Dim myrst As DAO.Recordset
    maTable = "RDV"
    'Rendez-vous
    Dim cfsubject As Variant
    Dim cfdebut As Date
    Dim cffin As Date
    Dim cflieu As Variant
    Dim cfcat As Variant
    
    Set db = CurrentDb
    Set olApp = CreateObject("Outlook.Application")
    Set ns = olApp.GetNamespace("MAPI")
    Set cf = ns.GetDefaultFolder(olFolderCalendar)
    
    
    For Each ai In cf.Items
        
    cfsubject = ai.Subject
    cfdebut = ai.Start
    cffin = ai.End
    cflieu = ai.Location
    cfcat = ai.Categories
    
    sSQLInsert = "INSERT INTO " & maTable & " ([Subject],[Debut],[fin],[lieu],[cat]) VALUES ( '" & cfsubject & "','" & cfdebut & "','" & cffin & "','" & cflieu & "','" & cfcat & "' )"
             
             'requete insert (C'est ici que celà bloque avec "dbfailonerror = 128")
             dbBase.Execute sSQLInsert, dbFailOnError
             
    
    
         'enregistrement suivant
         myrst.MoveNext
        
    Next
    
    Set cf = Nothing
    Set ns = Nothing
    Set olApp = Nothing
    myrst.Close
    Set myrst = Nothing
    db.Close
    Merci d'avance pour votre aide

    Pascal

  2. #2
    Membre régulier
    Avatar de wape
    Profil pro
    Inscrit en
    Février 2003
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2003
    Messages : 90
    Points : 123
    Points
    123
    Par défaut
    Bonsoir,

    L'objet dbBase n'est pas reconnu puisqu'il n'est défini nulle part... Essaye plutôt avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    db.Execute sSQLInsert, dbFailOnError
    D'autre part, la ligne :

    ne sert à rien, car le recordset n'a pas été chargé auparavant.

    wape

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    MERCI !

    Ca fonctionne, c'est vraiment gentil.

    Pascal

  4. #4
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    j'aimerai lier au lieu d'importer mes rendez vous outlook

    le fonction intégrée a access n'affiche pas tous les champs jours duréee heure
    comment le contourner
    merçi
    la taupe

  5. #5
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    Bonsoir

    Je relance un très vieux sujet, je suis tomber sur ce code pour importer des événements d'un calendrier outlook, je l'est adapter au donnees rechercher, ca fonction bien.

    Mais(car il y en a toujours un, sinon je serai pas la ) je dispose d'un calendrier partager ( de mon compte google) en abonnement, je voudrais savoir comment faire pour importer aussi les données de ce calendrier.

    Je pense que je doit declarer le calendrier, a la place du calendrier par défaut, j'ai quelque essai infructueux.

    J'espere que quelqu'un pourra m'aider.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    J'ai mis de coter ma précédente demande pour les compte google, pour me concentrer d'abord sur outlook.

    J'ai quelque petit souci avec mon code adapter, voici le code
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    Private Sub Commande21_Click()
    'Outlook
    Dim olApp As Outlook.Application
    Dim ns As Outlook.NameSpace
    Dim cf As Outlook.MAPIFolder
    Dim ai As Outlook.AppointmentItem
    Dim rp As Outlook.RecurrencePattern
    Dim it As Outlook.Items
    Dim op As Outlook.AppointmentItem
    'SQL
    Dim db As DAO.Database
    Dim myrst As DAO.Recordset
    MaTable = "RDVOutlook"
    MaTable2 = "ReccurenceRDVOutlook"
    'Rendez-vous
    Dim cfsubject As Variant
    Dim cfdebut As Date
    Dim cffin As Date
    Dim cflieu As Variant
    Dim cfcat As Variant
    Dim cfrecur As Variant
    Dim cfreminstart As Variant
    Dim cfremin As Boolean
    Dim cfallday As Boolean
    Dim cfbody As Variant
    Dim cfcomp As Variant
    Dim cfdur As Variant
    Dim cfenid As Variant
    Dim cfgaid As Variant
    Dim cfimp As Variant
    Dim cfirec As Boolean
    Dim cfoa As Variant
    Dim cforg As Variant
    Dim cfrec As Variant
    Dim cfsens As Variant
    Dim cfbs As Variant
    'Reccurrence des rendez-vous
    Dim rpendt As Date
    Dim rpdura As Variant
    Dim rpdwm As Variant
    Dim rpexep As Variant
    Dim rpinst As Variant
    Dim rpinter As Variant
    Dim rpned As Boolean
    Dim rpoccu As Variant
    Dim rpped As Date
    Dim rppsd As Date
    Dim rpst As Date
    Dim rprt As Variant
    Dim rpp As Variant
     
    Set db = CurrentDb
    Set olApp = CreateObject("Outlook.Application")
    Set ns = olApp.GetNamespace("MAPI")
    Set cf = ns.GetDefaultFolder(olFolderCalendar)
    Set it = cf.Items
    Set rp = it.GetRecurrencePattern
    Set op = rp.GetOccurrence(cfdebut)
     
     
    For Each ai In cf.Items
     
    cfsubject = ai.Subject
    cfdebut = ai.Start
    cffin = ai.end
    cflieu = ai.location
    cfcat = ai.Categories
    cfrecur = ai.RecurrenceState
    cfreminstart = ai.ReminderMinutesBeforeStart
    cfremin = ai.ReminderSet
    cfallday = ai.AllDayEvent
    cfbody = ai.body
    cfcomp = ai.Companies
    cfdur = ai.duration
    cfenid = ai.EntryID
    cfgaid = ai.GlobalAppointmentID
    cfimp = ai.Importance
    cfirec = ai.IsRecurring
    cfoa = ai.OptionalAttendees
    cforg = ai.Organizer
    cfrec = ai.Recipients
    cfsens = ai.Sensitivity
    cfbs = ai.BusyStatus
     
    rpendt = rp.EndTime
    rpdura = rp.duration
    rpdwm = rp.DayOfWeekMask
    rpexecp = rp.Exceptions
    rpinst = rp.Instance
    rpinter = rp.Interval
    rpmoy = rp.MonthOfYear
    rpned = rp.NoEndDate
    rpoccu = rp.Occurrences
    rpped = rp.PatternEndDate
    rppsd = rp.PatternStartDate
    rpst = rp.StartTime
    rprt = rp.RecurrenceType
    rpp = rp.Parent
     
    sSQLInsert = "INSERT INTO " & MaTable & " ([Sujet],[Debut],[Fin],[Lieu],[Categorie],[Status reccurence] ,[Rappel] , [BRappel] , [Journee entiere] , [Description], [Companies associer] , [Duree] , [Identificateur entree] , [Identificateur global] , [Importance] , [RDV reccurent] , [Participant facultatif] , [Organisateur] , [Destinataire] , [Critere diffusion] , [Disponibilite]) VALUES ( '" & cfsubject & "','" & cfdebut & "','" & cffin & "','" & cflieu & "','" & cfcat & "', '" & cfrecur & "','" & cfreminstart & "', '" & cfremin & "' ,'" & cfallday & "', '" & cfbody & "', '" & cfcomp & "', '" & cfdur & "', '" & cfenid & "', '" & cfgaid & "', '" & cfimp & "', '" & cfirec & "', '" & cfoa & "', '" & cforg & "', '" & cfrec & "', '" & cfsens & "' )"
    sSQLInsert2 = "INSERT INTO " & MaTable2 & " ([Jours semaine] ,[Duree] ,[Heure fin periodicite] , [Execptions] , [Duree periodicite] , [Interval] ,[Mois periodicite] ,[Sans fin] ,[Nb occurrences] ,[Date fin periodicite] ,[Date debut periodicite] ,[Periodicite] ,[Heure debut periodicite] ,[Parent]) VALUES ( '" & rpdwm & "','" & rpdura & "','" & rpendt & "','" & rpexecp & "','" & rpinst & "', '" & rpinter & "','" & rpmoy & "', '" & rpned & "' ,'" & rpoccu & "', '" & rpped & "', '" & rppsd & "', '" & rprt & "', '" & rpst & "', '" & rpp & "')"
     
             'requete insert
             db.Execute sSQLInsert, dbFailOnError
             db.Execute sSQLInser2, dbFailOnError
     
    'enregistrement suivant
     
     
     
    Next
     
    Set cf = Nothing
    Set ns = Nothing
    Set olApp = Nothing
     
    Set myrst = Nothing
    db.Close
    End Sub
    Mon problème est lier aux occurrence, je pense que j'ai du faire une erreur ou une omission dans les déclaration de variable, mais je ne voit pas ou.

    Quelqu'un pourrais m'aider svp

    merci d'avance

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 261
    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 261
    Points : 19 424
    Points
    19 424
    Billets dans le blog
    63
    Par défaut
    Salut,

    Je ne suis pas sûr d'avoir tout bien lu ton code , mais il me semble qu'au niveau du sql, les variables que tu utilises doivent être formatées différemment en fonction de leur type.

    Voici les 3 cas :

    • Pour un texte ( '" & cfsubject & "',...


    • Pour un numérique ( " & cfenid & ",...


    • Pour une date ( #" & Format(cfdebut,"mm/dd/yyyy") & "#,...


    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, 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


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  8. #8
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    Je suis débutant en vba mais je pense que ça a pas d'importance, tout mes champs de table sont du texte, j'avais déjà utilisé le code avec une seul requête pour lees rendez-vous principaux et il n'y avait pas de problème.
    Le problème qui va y avoir au niveau des requêtes sql c'est que la deuxième doit seulement s'executer que si un champs et égal à True (cfirec)

    Mon problème actuel est au niveau des déclarations Set. Je pense que ça doit être pour la liaison entre les rendez-vous principaux et les occurence.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    C'est bon j'ai trouvé le problème, je cherche à importer un "dossier" en temps que fichier.

    Et finalement j'ai même pas eu le problème au niveau des requêtes sql

  10. #10
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 261
    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 261
    Points : 19 424
    Points
    19 424
    Billets dans le blog
    63
    Par défaut
    Citation Envoyé par JRTConcept Voir le message
    C'est bon j'ai trouvé le problème, je cherche à importer un "dossier" en temps que fichier.

    Et finalement j'ai même pas eu le problème au niveau des requêtes sql
    Bonjour,

    J'ai quand même un doute au niveau des dates inscrites dans ton sql.
    Normalement elles doivent respecter un format us:

    #mm/dd/yyyy#

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, 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


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  11. #11
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    Dans ce cas il y aurais plusieur format a definir car il y a des champs qui renvoie des valeur date mais pour des horaires ( mm/dd/yyy hh:mm ) je pense que comme j'ai pas preciser, il me prend tout le champs(j'ai pas le temps cette apres midi pour essayer, mais des ce soir j'essaye)
    Par contre j'ai des sousi pour le champs rpdwm qui correspond au jours de la semaine pour l'aquelle l'occurence est en place. Si j'ai bien compris, la valeur correspond a un chiffre pour chaque jours( exemple: 2, 4 , 8, 16, 32 pour du lundi au vendredi) , mais je recupere seulement le premier jours je pense que je doit declarer qu'il y a plusieurs valeur separer par une , ou ; je sais plus.

    J'ai un autre probleme pour ce qui est des requetes sql et le changement d'enregistrement, il faudrais:

    1 Que le requete 1 s'execute pour le premiere enregistrement
    2 Si le rendez vous est recurrent, executer la requete 2 sinon passer a l'enregistrement suivant
    3 Passer a la recurence suivante jusqu'a la fin des reccurences
    4 Passer au rendez vous suivant et reprendre au point 2
    fin des redez-vous

    C'est pareil, pour ce qui est de liberer les valeurs je n'est pas compris, sur microsoft.com il disse qu'il faut la liberer pour changer d'enregistrement
    Dans mon code actuel la liberation ce fait qu'a la fin(il manque celle pour les occurences, cela me cree une erreur outlook), la liberation des occurences doivent ce faire a quelle moment(au changement d'occurences, de rendez vous ou a la fin). Surtout que si j'ai bien compris, si je l'est mets pas au bonne endroit, les resultat reste bloquer sur un resultat precedent(ce qui expliquerais les occurences en double ou triple)

  12. #12
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 261
    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 261
    Points : 19 424
    Points
    19 424
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    Pour le champ qui enregistre les jours de la semaine, c'est un peu compliqué.

    Il l' explique sur ce lien :
    https://msdn.microsoft.com/en-us/lib...exchg.10).aspx

    Pour le code à réaliser j'ai trouvé ceci sur un forum :

    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
    Function GetPattern(olkPat As Outlook.RecurrencePattern) As String
        Select Case olkPat.RecurrenceType
            Case olRecursDaily
                GetPattern = "Daily every " & olkPat.Interval & " day(s)"
            Case olRecursWeekly
                GetPattern = "Weekly on " & ConvertDaysOfWeekMask(olkPat.DayOfWeekMask)
            Case olRecursMonthly
                GetPattern = "Every " & olkPat.Interval & " month(s) on the " & NumericSuffix(olkPat.DayOfMonth)
            Case olRecursMonthNth
                GetPattern = "Every " & olkPat.Interval & " month(s) on the " & NumericSuffix(olkPat.Instance) & " " & ConvertDaysOfWeekMask(olkPat.DayOfWeekMask)
            Case olRecursYearly
                GetPattern = "Yearly on the " & NumericSuffix(olkPat.DayOfMonth) & " of " & MonthName(olkPat.MonthOfYear)
            Case olRecursYearNth
                GetPattern = "Yearly on the " & NumericSuffix(olkPat.Instance) & " " & ConvertDaysOfWeekMask(olkPat.DayOfWeekMask) & " of " & MonthName(olkPat.MonthOfYear)
        End Select
    End Function
     
    Function ConvertDaysOfWeekMask(intMask As Integer) As String
        If intMask And olSunday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Sun,"
        End If
        If intMask And olMonday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Mon,"
        End If
        If intMask And olTuesday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Tue,"
        End If
        If intMask And olWednesday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Wed,"
        End If
        If intMask And olThursday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Thu,"
        End If
        If intMask And olFriday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Fri,"
        End If
        If intMask And olSaturday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Sat,"
        End If
        If Len(ConvertDaysOfWeekMask) > 0 Then
            ConvertDaysOfWeekMask = Left(ConvertDaysOfWeekMask, Len(ConvertDaysOfWeekMask) - 1)
        End If
    End Function
    Le code complet est pour Excel...

    Concernant la libération des instances de quoi parles-tu ?

    Pour la variable myrst je ne vois pas où tu l'instancies dans ton code, pour moi tu n'en as pas besoin

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, 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


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  13. #13
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    Ok sur le fichier que j'avais il n'expliquer pas que les chiffre qui correspond au jours s'aditionner.

    Le code que tu a troiver fait a peut pres la meme chose que je veux faire sauf que la il export les donnees depuis outlook vers excel , moi je veux importer directement depuis access.

    Pour la liberation des instance, il le fait aussi dans son code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Réglez olkTsk = Nothing
            excWkb.SaveAs strFilename
            excWkb.Close
            MsgBox "processus complet. Un total de" & lngCnt & "tâches ont été exportés.", VbInformation + vbOKOnly, SCRIPT_NAME
        End If
        Set excWks = Nothing
        Réglez excWkb = Nothing
        Réglez excApp = Nothing

  14. #14
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 25
    Points : 19
    Points
    19
    Par défaut valeur masque de jours RDV outlook
    Bonjour a tous,


    Je revient vous demander de l'aide pour traduire la valeur dayofweekmask, qui est une addition des valeurs (1,2,4,8,16,32,64) qui correspond a chaque jours ou la reccurence ce produit.
    J'ai essayer de trouver un fichier avec toute les possibilite avec la valeur qui correspond, car si je doit le cree, je suis pas sortie de l'auberge, il y a 5040 possibilite.

    Y aurais t-il une formule ou un calcul qui me permettrais de trouver les constante utiliser par rapport au resultat de l'addition.
    Sachant qu'il y a que 7 valeur fixe, chaque valeur ne peu etre additionner qu'une fois, le resultat moins les constante egal 0.

    J'ai chercher desesperement sur interne,le seul sujet interressant vient de microsoft mais il on limiter le masque des jours a 1 seul jour.

  15. #15
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 261
    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 261
    Points : 19 424
    Points
    19 424
    Billets dans le blog
    63
    Par défaut Quelque chose de bien compliqué ...
    Bonjour,

    A mon avis tu t'es lancé dans quelque chose de bien compliqué

    J'ai essayé de tester ta fonction import des récurrences sur les 3 premiers champs de ta table "ReccurenceRDVOutlook" :

    [Jours semaine] (Texte) ,
    [Duree] (entier) ,
    [Heure fin periodicite] (Date)

    J'arrive à cette fonction qui utilise ConvertDaysOfWeekMask:

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    Public Function ImportRendezVous()
    'Outlook
    Dim olApp As Outlook.Application
    Dim ns As Outlook.NameSpace
    Dim cf As Outlook.MAPIFolder
    Dim ai As Outlook.AppointmentItem
    Dim rp As Outlook.RecurrencePattern
    Dim it As Outlook.Items
    Dim op As Outlook.AppointmentItem
    Dim olkTsk As Outlook.TaskItem
    Dim olkPat As Outlook.RecurrencePattern 'SQL
    Dim db As DAO.Database
    Dim myrst As DAO.Recordset
    MaTable = "RDVOutlook"
    MaTable2 = "ReccurenceRDVOutlook"
    'Rendez-vous
    Dim cfsubject As Variant
    Dim cfdebut As Date
    Dim cffin As Date
    Dim cflieu As Variant
    Dim cfcat As Variant
    Dim cfrecur As Variant
    Dim cfreminstart As Variant
    Dim cfremin As Boolean
    Dim cfallday As Boolean
    Dim cfbody As Variant
    Dim cfcomp As Variant
    Dim cfdur As Variant
    Dim cfenid As Variant
    Dim cfgaid As Variant
    Dim cfimp As Variant
    Dim cfirec As Boolean
    Dim cfoa As Variant
    Dim cforg As Variant
    Dim cfrec As Variant
    Dim cfsens As Variant
    Dim cfbs As Variant
    'Reccurrence des rendez-vous
    Dim rpendt As Date
    Dim rpdura As Variant
    Dim rpdwm As Variant
    Dim rpexep As Variant
    Dim rpinst As Variant
    Dim rpinter As Variant
    Dim rpned As Boolean
    Dim rpoccu As Variant
    Dim rpped As Date
    Dim rppsd As Date
    Dim rpst As Date
    Dim rprt As Variant
    Dim rpp As Variant
     
    Set db = CurrentDb
    Set olApp = CreateObject("Outlook.Application")
    Set ns = olApp.GetNamespace("MAPI")
    Set cf = ns.GetDefaultFolder(olFolderCalendar)
    Set it = cf.Items
     
     
    For Each ai In cf.Items
     
    Set rp = ai.GetRecurrencePattern
    'Set op = rp.GetOccurrence(cfdebut)
     
    cfsubject = ai.Subject
    cfdebut = ai.Start
    cffin = ai.End
    cflieu = ai.Location
    cfcat = ai.Categories
    cfrecur = ai.RecurrenceState
    cfreminstart = ai.ReminderMinutesBeforeStart
    cfremin = ai.ReminderSet
    cfallday = ai.AllDayEvent
    cfbody = ai.Body
    cfcomp = ai.Companies
    cfdur = ai.Duration
    cfenid = ai.EntryID
    cfgaid = ai.GlobalAppointmentID
    cfimp = ai.Importance
    cfirec = ai.IsRecurring
    cfoa = ai.OptionalAttendees
    cforg = ai.Organizer
       If ai.Recipients.Count > 0 Then
          For i = 1 To ai.Recipients.Count
          cfrec = cfrec & ai.Recipients.Item(i) & ";"
          Next i
       End If
    cfsens = ai.Sensitivity
    cfbs = ai.BusyStatus
     
    rpendt = rp.EndTime
    rpdura = rp.Duration
    rpdwm = ConvertDaysOfWeekMask(rp.DayOfWeekMask)
     
       If rp.Exceptions.Count > 0 Then
          For i = 1 To rp.Exceptions.Count
          rpexecp = rpexecp & rp.Exceptions.Item(i) & ";"
          Next i
       End If
     
    rpinst = rp.Instance
    rpinter = rp.Interval
    rpmoy = rp.MonthOfYear
    rpned = rp.NoEndDate
    rpoccu = rp.Occurrences
    rpped = rp.PatternEndDate
    rppsd = rp.PatternStartDate
    rpst = rp.StartTime
    rprt = rp.RecurrenceType
    rpp = rp.Parent
     
    'sSQLInsert = "INSERT INTO " & MaTable & " ([Sujet],[Debut],[Fin],[Lieu],[Categorie],[Status reccurence] ,[Rappel] , [BRappel] , [Journee entiere] , [Description], [Companies associer] , [Duree] , [Identificateur entree] , [Identificateur global] , [Importance] , [RDV reccurent] , [Participant facultatif] , [Organisateur] , [Destinataire] , [Critere diffusion] , [Disponibilite]) VALUES ( '" & cfsubject & "','" & cfdebut & "','" & cffin & "','" & cflieu & "','" & cfcat & "', '" & cfrecur & "','" & cfreminstart & "', '" & cfremin & "' ,'" & cfallday & "', '" & cfbody & "', '" & cfcomp & "', '" & cfdur & "', '" & cfenid & "', '" & cfgaid & "', '" & cfimp & "', '" & cfirec & "', '" & cfoa & "', '" & cforg & "', '" & cfrec & "', '" & cfsens & "' )"
    'sSQLInsert2 = "INSERT INTO " & MaTable2 & " ([Jours semaine] ,[Duree] ,[Heure fin periodicite] , [Execptions] , [Duree periodicite] , [Interval] ,[Mois periodicite] ,[Sans fin] ,[Nb occurrences] ,[Date fin periodicite] ,[Date debut periodicite] ,[Periodicite] ,[Heure debut periodicite] ,[Parent]) VALUES ( '" & rpdwm & "','" & rpdura & "','" & rpendt & "','" & rpexecp & "','" & rpinst & "', '" & rpinter & "','" & rpmoy & "', '" & rpned & "' ,'" & rpoccu & "', '" & rpped & "', '" & rppsd & "', '" & rprt & "', '" & rpst & "', '" & rpp & "')"
     
     sSQLInsert2 = "INSERT INTO " & MaTable2 & " ([Jours semaine] ,[Duree] ,[Heure fin periodicite]) VALUES ( '" & rpdwm & "'," & rpdura & ",#" & Format(rpendt, "hh:nn:ss") & "#)"
     
     
             'requete insert
             'db.Execute sSQLInsert, dbFailOnError
             db.Execute sSQLInsert2, dbFailOnError
     
    'enregistrement suivant
     
     
     
    Next
     
     
    Set ai = Nothing
    Set cf = Nothing
    Set ns = Nothing
    olApp.Quit
    Set olApp = Nothing
     
    Set myrst = Nothing
    db.Close
    End Function
     
     
     
    Function ConvertDaysOfWeekMask(intMask As Integer) As String
        If intMask And olSunday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Sun,"
        End If
        If intMask And olMonday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Mon,"
        End If
        If intMask And olTuesday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Tue,"
        End If
        If intMask And olWednesday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Wed,"
        End If
        If intMask And olThursday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Thu,"
        End If
        If intMask And olFriday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Fri,"
        End If
        If intMask And olSaturday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Sat,"
        End If
        If Len(ConvertDaysOfWeekMask) > 0 Then
            ConvertDaysOfWeekMask = Left(ConvertDaysOfWeekMask, Len(ConvertDaysOfWeekMask) - 1)
        End If
    End Function
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, 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


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  16. #16
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    J'ai essayer d’intégrer le code au mien il y y a un message d'erreur :
    le resultat de l'expression n est pas le nom d'une macro, le nom d'une fonction definie par l'uilisateur ou [Eent Proceure]. une erreur a peut etre ete commise lors de l'evaluation d'une fonction, d'un evenement oudne macro.

    J'ai pas trouver de faute de frappe(enfin je les est corriger)

    Voici le code complets:
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    '---------------------------------------------------------------------------------------
    ' Procedure : Commande21_Click
    ' Author    : JRTConcept
    ' Date      : 28/01/2015
    ' Purpose   :
    '---------------------------------------------------------------------------------------
    '
    Private Sub Commande21_Click()
    'Outlook
    Dim olApp As Outlook.Application
    Dim ns As Outlook.NameSpace
    Dim cf As Outlook.MAPIFolder
    Dim ai As Outlook.AppointmentItem
    Dim rp As Outlook.RecurrencePattern
    Dim it As Outlook.Items
    Dim op As Outlook.AppointmentItem
    Dim olkTsk As Outlook.TaskItem
    Dim olkPat As Outlook.RecurrencePattern
    'SQL
    Dim db As DAO.Database
    Dim myrst As DAO.Recordset
    MaTable = "RDVOutlook"
    MaTable2 = "ReccurenceRDVOutlook"
    'Rendez-vous
    Dim cfsubject As Variant
    Dim cfdebut As Date
    Dim cffin As Date
    Dim cflieu As Variant
    Dim cfcat As Variant
    Dim cfrecur As Variant
    Dim cfreminstart As Variant
    Dim cfremin As Boolean
    Dim cfallday As Boolean
    Dim cfbody As Variant
    Dim cfcomp As Variant
    Dim cfdur As Variant
    Dim cfenid As Variant
    Dim cfgaid As Variant
    Dim cfimp As Variant
    Dim cfirec As Boolean
    Dim cfoa As Variant
    Dim cforg As Variant
    Dim cfrec As Variant
    Dim cfsens As Variant
    Dim cfbs As Variant
    'Reccurrence des rendez-vous
    Dim rpendt As Date
    Dim rpdura As Variant
    Dim rpdwm As Variant
    Dim rpexep As Variant
    Dim rpinst As Variant
    Dim rpinter As Variant
    Dim rpned As Boolean
    Dim rpoccu As Variant
    Dim rpped As Date
    Dim rppsd As Date
    Dim rpst As Date
    Dim rprt As Variant
    Dim rpp As Variant
     
    Set db = CurrentDb
    Set olApp = CreateObject("Outlook.Application")
    Set ns = olApp.GetNamespace("MAPI")
    Set cf = ns.GetDefaultFolder(olFolderCalendar)
    Set it = cf.Items
     
     
    For Each ai In cf.Items
     
     
     
    cfsubject = ai.Subject
    cfdebut = ai.Start
    cffin = ai.end
    cflieu = ai.location
    cfcat = ai.Categories
    cfrecur = ai.RecurrenceState
    cfreminstart = ai.ReminderMinutesBeforeStart
    cfremin = ai.ReminderSet
    cfallday = ai.AllDayEvent
    cfbody = ai.body
    cfcomp = ai.Companies
    cfdur = ai.duration
    cfenid = ai.EntryID
    cfgaid = ai.GlobalAppointmentID
    cfimp = ai.Importance
    cfirec = ai.IsRecurring
    cfoa = ai.OptionalAttendees
    cforg = ai.Organizer
      If ai.Recipients.Count > 0 Then
       For i = 1 To ai.Recipients.Item(i) & ";"
       Next i
       End If
    cfsens = ai.Sensitivity
    cfbs = ai.BusyStatus
     
    Set ait = it(cfsubject)
    Set rp = ait.GetRecurrencePattern
     
     
    rpendt = rp.EndTime
    rpdura = rp.duration
    rpdwm = ConvertDaysOfWeekMask(rp.DayOfWeekMask)
     
     If rp.execptions.Count > 0 Then
     For i = 1 To rp.Exceptions.Count
     rpexecp = rpexecp & rp.Exceptions.Item(i) & ";"
     Next i
     End If
     
    rpinst = rp.Instance
    rpinter = rp.Interval
    rpmoy = rp.MonthOfYear
    rpned = rp.NoEndDate
    rpoccu = rp.Occurrences
    rpped = rp.PatternEndDate
    rppsd = rp.PatternStartDate
    rpst = rp.StartTime
    rprt = rp.RecurrenceType
     
     
    'sSQLInsert = "INSERT INTO " & MaTable & " ([Sujet],[Debut],[Fin],[Lieu],[Categorie],[Statut recurrence] ,[Rappel] , [BRappel] , [Journee entiere] , [Description], [Companies associer] , [Duree] , [Identificateur entree] , [Identificateur global] , [Importance] , [RDV reccurent] , [Participant facultatif] , [Organisateur] , [Critere diffusion] , [Disponibilite] ) VALUES ( '" & cfsubject & "','" & cfdebut & "','" & cffin & "','" & cflieu & "','" & cfcat & "', '" & cfrecur & "','" & cfreminstart & "', '" & cfremin & "' ,'" & cfallday & "', '" & cfbody & "', '" & cfcomp & "', '" & cfdur & "', '" & cfenid & "', '" & cfgaid & "', '" & cfimp & "', '" & cfirec & "', '" & cfoa & "', '" & cforg & "','" & cfsens & "','" & cfbs & "')"
    'sSQLInsert2 = "INSERT INTO " & MaTable2 & " ([Jours semaine] ,[Duree] ,[Heure fin periodicite] ,  [Duree periodicite] , [Interval] ,[Mois periodicite] ,[Sans fin] ,[Nb occurrence] ,[Date fin periodicite] ,[Date debut periodicite] ,[Periodicite] ,[Heure debut periodicite], [Liaison] ) VALUES ( '" & rpdwm & "','" & rpdura & "','" & rpendt & "','" & rpinst & "', '" & rpinter & "','" & rpmoy & "', '" & rpned & "' ,'" & rpoccu & "', '" & rpped & "', '" & rppsd & "', '" & rprt & "', '" & rpst & "', '" & rppsd & " " & rpst & "' )"
    sSQLInsert2 = "INSERT INTO" & MaTable2 & " ([Jours semaine], [Duree],[Heure finperiodicite]) VALUES ('" & rpdwm & "'," & rpdura & ",#" & Format(rpendt, "hh:nn:ss") & "#)"
             'requete insert
     db.Execute sSQLInsert, dbFailOnError
     If cfirec = True Then
     If rpped > Now Then
     db.Execute sSQLInsert2, dbFailOnError
     End If
     End If
    'enregistrement suivant
     
     
     
    Next
    Set op = Nothing
    Set rp = Nothing
    Set ait = Nothing
    Set it = Nothing
    Set cf = Nothing
    Set ns = Nothing
    olApp.Quit
    Set olApp = Nothing
     
    Set myrst = Nothing
    db.Close
     
    Function ConvertDaysOfWeekMask(intMask As interger) As String
      If intMask And olSanday Then
        ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Sun,"
      End If
      If intMask And olMonday Then
        ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Mon,"
      End If
      If intMask And olTuesday Then
        ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "tue,"
      End If
      If intMask And olWednesday Then
        ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "wed,"
      End If
      If intMask And olThursday Then
        ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Thu,"
      End If
      If intMask And olFriday Then
        ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Fri,"
      End If
      If intMask And olSaturday Then
        ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Sat,"
      End If
      If Len(ConvertDaysOfWeekMask) > 0 Then
        ConvertDaysOfWeekMask = left(ConvertDaysOfWeekMask, Len(ConvertDaysOfWeekMask) - 1)
        End If
     
    Dim rst As Recordset
    Dim rst2 As Recordset
    Dim i As Integer
    Dim n2 As Integer
    Dim Valeur As Integer
    Set rst = CurrentDb.OpenRecordset("ReccurenceRDVOutlook")
    Do Until rst.EOF
    Set rst2 = CurrentDb.OpenRecordset("ReccurenceRDVOutlookComplet")
    For i = 1 To rst![Nb occurrence]
        rst2.AddNew
            rst2![Jours semaine] = rst![Jours semaine]
            rst2![Duree] = rst![Duree]
            rst2![Nb occurrence] = rst![Nb occurrence] - i
            rst2![Heure fin periodicite] = rst![Heure fin periodicite]
            rst2![Duree periodicite] = rst![Duree periodicite]
            rst2![Interval] = rst![Interval]
            rst2![Mois periodicite] = rst![Mois periodicite]
            rst2![Sans fin] = rst![Sans fin]
            rst2![Date fin periodicite] = rst![Date fin periodicite]
            rst2![Date debut periodicite] = rst![Date debut periodicite]
            rst2![Periodicite] = rst![Periodicite]
            rst2![Heure debut periodicite] = rst![Heure debut periodicite]
            rst2![Liaison] = rst![Liaison]
        rst2.Update
    Next i
    rst.MoveNext    ' Enregistrement suivant
    Loop
    '
    ' Fermeture et libération des objets
    '
    rst.Close
    rst2.Close
    Set rst = Nothing
    Set rst2 = Nothing
     
       On Error GoTo 0
       Exit Function
     
    Commande21_Click_Error:
     
        MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Commande21_Click of Document VBA Form_Table1"
    End Function
    Peut tu m'expliquer comment elle fonctionne, pour que j'essaye de voir e qui va pas.

  17. #17
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 261
    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 261
    Points : 19 424
    Points
    19 424
    Billets dans le blog
    63
    Par défaut Re
    ça c'est le code sur l'événement clic de ton bouton de commande :

    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    Private Sub Commande21_Click()
    'Outlook
    Dim olApp As Outlook.Application
    Dim ns As Outlook.NameSpace
    Dim cf As Outlook.MAPIFolder
    Dim ai As Outlook.AppointmentItem
    Dim rp As Outlook.RecurrencePattern
    Dim it As Outlook.Items
    Dim op As Outlook.AppointmentItem
    Dim olkTsk As Outlook.TaskItem
    Dim olkPat As Outlook.RecurrencePattern 'SQL
    Dim db As DAO.Database
    Dim myrst As DAO.Recordset
    MaTable = "RDVOutlook"
    MaTable2 = "ReccurenceRDVOutlook"
    'Rendez-vous
    Dim cfsubject As Variant
    Dim cfdebut As Date
    Dim cffin As Date
    Dim cflieu As Variant
    Dim cfcat As Variant
    Dim cfrecur As Variant
    Dim cfreminstart As Variant
    Dim cfremin As Boolean
    Dim cfallday As Boolean
    Dim cfbody As Variant
    Dim cfcomp As Variant
    Dim cfdur As Variant
    Dim cfenid As Variant
    Dim cfgaid As Variant
    Dim cfimp As Variant
    Dim cfirec As Boolean
    Dim cfoa As Variant
    Dim cforg As Variant
    Dim cfrec As Variant
    Dim cfsens As Variant
    Dim cfbs As Variant
    'Reccurrence des rendez-vous
    Dim rpendt As Date
    Dim rpdura As Variant
    Dim rpdwm As Variant
    Dim rpexep As Variant
    Dim rpinst As Variant
    Dim rpinter As Variant
    Dim rpned As Boolean
    Dim rpoccu As Variant
    Dim rpped As Date
    Dim rppsd As Date
    Dim rpst As Date
    Dim rprt As Variant
    Dim rpp As Variant
     
    Set db = CurrentDb
    Set olApp = CreateObject("Outlook.Application")
    Set ns = olApp.GetNamespace("MAPI")
    Set cf = ns.GetDefaultFolder(olFolderCalendar)
    Set it = cf.Items
     
     
    For Each ai In cf.Items
     
    Set rp = ai.GetRecurrencePattern
    'Set op = rp.GetOccurrence(cfdebut)
     
    cfsubject = ai.Subject
    cfdebut = ai.Start
    cffin = ai.End
    cflieu = ai.Location
    cfcat = ai.Categories
    cfrecur = ai.RecurrenceState
    cfreminstart = ai.ReminderMinutesBeforeStart
    cfremin = ai.ReminderSet
    cfallday = ai.AllDayEvent
    cfbody = ai.Body
    cfcomp = ai.Companies
    cfdur = ai.Duration
    cfenid = ai.EntryID
    cfgaid = ai.GlobalAppointmentID
    cfimp = ai.Importance
    cfirec = ai.IsRecurring
    cfoa = ai.OptionalAttendees
    cforg = ai.Organizer
       If ai.Recipients.Count > 0 Then
          For i = 1 To ai.Recipients.Count
          cfrec = cfrec & ai.Recipients.Item(i) & ";"
          Next i
       End If
    cfsens = ai.Sensitivity
    cfbs = ai.BusyStatus
     
    rpendt = rp.EndTime
    rpdura = rp.Duration
    rpdwm = ConvertDaysOfWeekMask(rp.DayOfWeekMask)
     
       If rp.Exceptions.Count > 0 Then
          For i = 1 To rp.Exceptions.Count
          rpexecp = rpexecp & rp.Exceptions.Item(i) & ";"
          Next i
       End If
     
    rpinst = rp.Instance
    rpinter = rp.Interval
    rpmoy = rp.MonthOfYear
    rpned = rp.NoEndDate
    rpoccu = rp.Occurrences
    rpped = rp.PatternEndDate
    rppsd = rp.PatternStartDate
    rpst = rp.StartTime
    rprt = rp.RecurrenceType
    rpp = rp.Parent
     
    'sSQLInsert = "INSERT INTO " & MaTable & " ([Sujet],[Debut],[Fin],[Lieu],[Categorie],[Status reccurence] ,[Rappel] , [BRappel] , [Journee entiere] , [Description], [Companies associer] , [Duree] , [Identificateur entree] , [Identificateur global] , [Importance] , [RDV reccurent] , [Participant facultatif] , [Organisateur] , [Destinataire] , [Critere diffusion] , [Disponibilite]) VALUES ( '" & cfsubject & "','" & cfdebut & "','" & cffin & "','" & cflieu & "','" & cfcat & "', '" & cfrecur & "','" & cfreminstart & "', '" & cfremin & "' ,'" & cfallday & "', '" & cfbody & "', '" & cfcomp & "', '" & cfdur & "', '" & cfenid & "', '" & cfgaid & "', '" & cfimp & "', '" & cfirec & "', '" & cfoa & "', '" & cforg & "', '" & cfrec & "', '" & cfsens & "' )"
    'sSQLInsert2 = "INSERT INTO " & MaTable2 & " ([Jours semaine] ,[Duree] ,[Heure fin periodicite] , [Execptions] , [Duree periodicite] , [Interval] ,[Mois periodicite] ,[Sans fin] ,[Nb occurrences] ,[Date fin periodicite] ,[Date debut periodicite] ,[Periodicite] ,[Heure debut periodicite] ,[Parent]) VALUES ( '" & rpdwm & "','" & rpdura & "','" & rpendt & "','" & rpexecp & "','" & rpinst & "', '" & rpinter & "','" & rpmoy & "', '" & rpned & "' ,'" & rpoccu & "', '" & rpped & "', '" & rppsd & "', '" & rprt & "', '" & rpst & "', '" & rpp & "')"
     
     sSQLInsert2 = "INSERT INTO " & MaTable2 & " ([Jours semaine] ,[Duree] ,[Heure fin periodicite]) VALUES ( '" & rpdwm & "'," & rpdura & ",#" & Format(rpendt, "hh:nn:ss") & "#)"
     
     
             'requete insert
             'db.Execute sSQLInsert, dbFailOnError
             db.Execute sSQLInsert2, dbFailOnError
     
    'enregistrement suivant
     
     
     
    Next
     
    Set ai = Nothing
    Set cf = Nothing
    Set ns = Nothing
    olApp.Quit
    Set olApp = Nothing
     
    Set myrst = Nothing
    db.Close
    End sub
    Et ça la fonction à placer dans un module indépendant :

    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
    Public Function ConvertDaysOfWeekMask(intMask As Integer) As String
        If intMask And olSunday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Sun,"
        End If
        If intMask And olMonday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Mon,"
        End If
        If intMask And olTuesday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Tue,"
        End If
        If intMask And olWednesday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Wed,"
        End If
        If intMask And olThursday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Thu,"
        End If
        If intMask And olFriday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Fri,"
        End If
        If intMask And olSaturday Then
            ConvertDaysOfWeekMask = ConvertDaysOfWeekMask & "Sat,"
        End If
        If Len(ConvertDaysOfWeekMask) > 0 Then
            ConvertDaysOfWeekMask = Left(ConvertDaysOfWeekMask, Len(ConvertDaysOfWeekMask) - 1)
        End If
    End Function
    Je n'ai pas mis la gestion d'erreur...
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, 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


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  18. #18
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    après intégration et adaptation au code(quelque erreur c’était glisser) ça fonctionne super bien, maintenant je devrait pouvoir m'en sortir, il me reste plus qu'a modifier la date de mes occurrences par rapport au jours, au interval et autre donnée d'occurrence.

    Merci beaucoup pour ton aide.
    J'avais deja vu ce code mais null par il l'expliquer, maintenant que je l'utilise je comprend sont fonctionnement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/12/2011, 09h53
  2. lier rendez vous outlook dans formulaire access
    Par TAUPE007 dans le forum Access
    Réponses: 0
    Dernier message: 11/05/2008, 13h56
  3. Importer carnet Outlook dans Access
    Par jakkihm dans le forum Access
    Réponses: 1
    Dernier message: 21/10/2006, 19h16
  4. Réponses: 1
    Dernier message: 12/09/2006, 15h29
  5. Rendez-vous Outlook depuis Access
    Par pascal@falcy.ch dans le forum Access
    Réponses: 4
    Dernier message: 03/10/2005, 21h59

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