OVH Cloud OVH Cloud

Identification d'une tâche via code vba

13 réponses
Avatar
Monkeytoo
Bonsoir à tous
je désire gérer (ajouter et supprimer) des tâches dans outlook
j'ai trouvé le code vba pour ajouter une tâche mais je voudrais pouvoir lui
assigner un identifiant unique (placer une valeur provenant d'un numéro
automatique)
afin que je puisse rechercher cette tâche par cet identifiant.
où pourrais-je trouver la liste des champs disponibles dans outlook (partie
tâche) ?
ces manip s'effectueraient à partir d'access.
merci d'avance

3 réponses

1 2
Avatar
Isabelle Prawitz
Bonjour !
EntryId est une propriété de type String, de 140 caractères pour les éléments Outlook, et de 48 pour les dossiers (sous
toutes réserves, je me suis contentée de lire des longueurs de mes données !)! Il faut prévoir le champ Access en conséquence
!
D'ailleurs, moi je mettrais carrément 250, pour être sûre !
Autrement, l'écriture me semble correcte.
Voici un exemple d'utilisation (basique !) :

Dim MaTask1 as TaskItem
Dim MaTask2 as TaskItem
dim strEId as String
Set MaTask1=Session.GetDefaultFolder(olFolderTasks).Items(1) ' on récupère la première tâche du dossier Tâches
msgbox MaTask1.Subject
strEId=MaTask1.EntryId ' on stocke la valeur du EntryId
set MaTask2=Session.GetItemFromId(strEId) ' on réutilise le EntryId pour pointer à nouveau sur la tâche
msgbox MaTask2.Subject

Attention ! Si le type de l'objet découlant de GetItemFromId n'est pas connu d'avance, il ne faut pas utiliser une variable
typée, mais vérifier le type par TypeName, par exemple !
A+
Isa


"Monkeytoo" a écrit dans le message de news:u$$Nh%23P%
Bonsoir
pourriez-vous me dire par quel code je peux récupérer la valeur de cet
entryid pour le placer dans un champs de ma base ?
j'ai essayé mais access se plante à chaque fois sans message d'erreur
code :
With Ol_Appointment
.Subject = Var_IW_Objet & " " & Var_Bien
Var_IW_Bien_Reference = .EntryID


"Isabelle Prawitz" a écrit dans le message de news:
ua3PkL$
Bonjour !
EntryId est une propiété en lecture seule. Tu peux initialiser un champ de
ta base avec sa valeur au moment de la création de

la tâche, et ensuite, pour retrouver cet élément, et le supprimer (ou le
modifier), tu utilises GetItemFromId(NomDeTonChamp)

!
EntryId est la propriété qui permet de pointer sur un élément Outlook, son
identifiant unique.

Espérant avoir été plus claire ;-)
A+
Isa

"Monkeytoo" a écrit dans le message de
news:

j'ai une erreur de compilation du code que je ne comprends pas :
Impossible d'affecter à une propriété en lecture seule
voici le code qui s'arrête sur .entryID=Var_Histo_Ref :

Strsql = "SELECT * FROM ...

Set rst = CurrentDb.OpenRecordset(Strsql)
With rst
Set Ol_Appointment = Ol_App.CreateItem(olAppointmentItem)
Set OL_Task = Ol_App.CreateItem(olTaskItem)
VAR_DATE = Nz(.Fields("date_acte"))
VAR_DATE = Format(VAR_DATE, "dd-mmmm-yyyy")
Var_Heure = Nz(.Fields("acte_heure"))
Var_Histo_Ref = (.Fields("Histo_Ref"))
Var_IW_Objet = Nz(.Fields("type_contact"))
Var_IW_Memo = Nz(.Fields("Divers"))
Var_Duree = Nz(.Fields("agenda_duree_reelle"))
var_duration = (Hour(Var_Duree) * 60) +
Minute(Var_Duree)


Var_Bien = Nz(.Fields("acte_ref_bien"))

With Ol_Appointment
.Subject = Var_IW_Objet & " " & Var_Bien
.Body = Var_IW_Memo
.EntryID = Var_Histo_Ref
.Location = Var_bien
.Duration = var_duration
.Start = VAR_DATE & " " & Var_Heure
.Save
End With
.MoveNext
Set Ol_Appointment = Nothing
Loop
End With
Set Ol_Appointment = Nothing
Set Ol_App = Nothing


"Monkeytoo" a écrit dans le message de news:

je vais essayer
merci d'avance
"Isabelle Prawitz" a écrit dans le message de
news:



#
Bonjour !
Utilise sa propriété EntryId, tu pourras récupérer la tâche par
GetItemFromId du Namespace !

A+
Isa

"Monkeytoo" a écrit dans le message de
news:

Bonsoir à tous
je désire gérer (ajouter et supprimer) des tâches dans outlook
j'ai trouvé le code vba pour ajouter une tâche mais je voudrais
pouvoir



lui
assigner un identifiant unique (placer une valeur provenant d'un
numéro



automatique)
afin que je puisse rechercher cette tâche par cet identifiant.
où pourrais-je trouver la liste des champs disponibles dans
outlook





(partie
tâche) ?
ces manip s'effectueraient à partir d'access.
merci d'avance
























Avatar
Monkeytoo
désolé mais je 'arrive pas à tester
en effet, le code de déclaration est le suivant :
Dim Ol_App As New Outlook.Application
Dim OL_Task As Outlook.TaskItem
Dim Ol_Appointment As Outlook.AppointmentItem
Set Ol_Appointment = Ol_App.CreateItem(olAppointmentItem)
Set OL_Task = Ol_App.CreateItem(olTaskItem)
j'ai effectué le code pas à pas et access se plante sur la ligne :
Set Ol_Appointment = Ol_App.CreateItem(olAppointmentItem)
ai-je oublié qq chose ?

"Isabelle Prawitz" a écrit dans le message de news:
OLAw1eV#
Bonjour !
EntryId est une propriété de type String, de 140 caractères pour les
éléments Outlook, et de 48 pour les dossiers (sous

toutes réserves, je me suis contentée de lire des longueurs de mes données
!)! Il faut prévoir le champ Access en conséquence

!
D'ailleurs, moi je mettrais carrément 250, pour être sûre !
Autrement, l'écriture me semble correcte.
Voici un exemple d'utilisation (basique !) :

Dim MaTask1 as TaskItem
Dim MaTask2 as TaskItem
dim strEId as String
Set MaTask1=Session.GetDefaultFolder(olFolderTasks).Items(1) ' on récupère
la première tâche du dossier Tâches

msgbox MaTask1.Subject
strEId=MaTask1.EntryId ' on stocke la valeur du EntryId
set MaTask2=Session.GetItemFromId(strEId) ' on réutilise le EntryId pour
pointer à nouveau sur la tâche

msgbox MaTask2.Subject

Attention ! Si le type de l'objet découlant de GetItemFromId n'est pas
connu d'avance, il ne faut pas utiliser une variable

typée, mais vérifier le type par TypeName, par exemple !
A+
Isa


"Monkeytoo" a écrit dans le message de
news:u$$Nh%23P%

Bonsoir
pourriez-vous me dire par quel code je peux récupérer la valeur de cet
entryid pour le placer dans un champs de ma base ?
j'ai essayé mais access se plante à chaque fois sans message d'erreur
code :
With Ol_Appointment
.Subject = Var_IW_Objet & " " & Var_Bien
Var_IW_Bien_Reference = .EntryID


"Isabelle Prawitz" a écrit dans le message de
news:


ua3PkL$
Bonjour !
EntryId est une propiété en lecture seule. Tu peux initialiser un
champ de



ta base avec sa valeur au moment de la création de
la tâche, et ensuite, pour retrouver cet élément, et le supprimer (ou
le



modifier), tu utilises GetItemFromId(NomDeTonChamp)
!
EntryId est la propriété qui permet de pointer sur un élément Outlook,
son



identifiant unique.
Espérant avoir été plus claire ;-)
A+
Isa

"Monkeytoo" a écrit dans le message de
news:

j'ai une erreur de compilation du code que je ne comprends pas :
Impossible d'affecter à une propriété en lecture seule
voici le code qui s'arrête sur .entryID=Var_Histo_Ref :

Strsql = "SELECT * FROM ...

Set rst = CurrentDb.OpenRecordset(Strsql)
With rst
Set Ol_Appointment = Ol_App.CreateItem(olAppointmentItem)
Set OL_Task = Ol_App.CreateItem(olTaskItem)
VAR_DATE = Nz(.Fields("date_acte"))
VAR_DATE = Format(VAR_DATE, "dd-mmmm-yyyy")
Var_Heure = Nz(.Fields("acte_heure"))
Var_Histo_Ref = (.Fields("Histo_Ref"))
Var_IW_Objet = Nz(.Fields("type_contact"))
Var_IW_Memo = Nz(.Fields("Divers"))
Var_Duree = Nz(.Fields("agenda_duree_reelle"))
var_duration = (Hour(Var_Duree) * 60) +
Minute(Var_Duree)


Var_Bien = Nz(.Fields("acte_ref_bien"))

With Ol_Appointment
.Subject = Var_IW_Objet & " " & Var_Bien
.Body = Var_IW_Memo
.EntryID = Var_Histo_Ref
.Location = Var_bien
.Duration = var_duration
.Start = VAR_DATE & " " & Var_Heure
.Save
End With
.MoveNext
Set Ol_Appointment = Nothing
Loop
End With
Set Ol_Appointment = Nothing
Set Ol_App = Nothing


"Monkeytoo" a écrit dans le message de
news:





je vais essayer
merci d'avance
"Isabelle Prawitz" a écrit dans le message
de





news:
#
Bonjour !
Utilise sa propriété EntryId, tu pourras récupérer la tâche par
GetItemFromId du Namespace !

A+
Isa

"Monkeytoo" a écrit dans le message de
news:

Bonsoir à tous
je désire gérer (ajouter et supprimer) des tâches dans outlook
j'ai trouvé le code vba pour ajouter une tâche mais je
voudrais







pouvoir
lui
assigner un identifiant unique (placer une valeur provenant
d'un







numéro
automatique)
afin que je puisse rechercher cette tâche par cet identifiant.
où pourrais-je trouver la liste des champs disponibles dans
outlook





(partie
tâche) ?
ces manip s'effectueraient à partir d'access.
merci d'avance




























Avatar
Monkeytoo
en continuant à chercher, j'ai finalement trouvé
merci pour tout à tous
"Monkeytoo" a écrit dans le message de news:
Or9F#to#
désolé mais je 'arrive pas à tester
en effet, le code de déclaration est le suivant :
Dim Ol_App As New Outlook.Application
Dim OL_Task As Outlook.TaskItem
Dim Ol_Appointment As Outlook.AppointmentItem
Set Ol_Appointment = Ol_App.CreateItem(olAppointmentItem)
Set OL_Task = Ol_App.CreateItem(olTaskItem)
j'ai effectué le code pas à pas et access se plante sur la ligne :
Set Ol_Appointment = Ol_App.CreateItem(olAppointmentItem)
ai-je oublié qq chose ?

"Isabelle Prawitz" a écrit dans le message de news:
OLAw1eV#
Bonjour !
EntryId est une propriété de type String, de 140 caractères pour les
éléments Outlook, et de 48 pour les dossiers (sous

toutes réserves, je me suis contentée de lire des longueurs de mes
données


!)! Il faut prévoir le champ Access en conséquence
!
D'ailleurs, moi je mettrais carrément 250, pour être sûre !
Autrement, l'écriture me semble correcte.
Voici un exemple d'utilisation (basique !) :

Dim MaTask1 as TaskItem
Dim MaTask2 as TaskItem
dim strEId as String
Set MaTask1=Session.GetDefaultFolder(olFolderTasks).Items(1) ' on
récupère


la première tâche du dossier Tâches
msgbox MaTask1.Subject
strEId=MaTask1.EntryId ' on stocke la valeur du EntryId
set MaTask2=Session.GetItemFromId(strEId) ' on réutilise le EntryId pour
pointer à nouveau sur la tâche

msgbox MaTask2.Subject

Attention ! Si le type de l'objet découlant de GetItemFromId n'est pas
connu d'avance, il ne faut pas utiliser une variable

typée, mais vérifier le type par TypeName, par exemple !
A+
Isa


"Monkeytoo" a écrit dans le message de
news:u$$Nh%23P%

Bonsoir
pourriez-vous me dire par quel code je peux récupérer la valeur de cet
entryid pour le placer dans un champs de ma base ?
j'ai essayé mais access se plante à chaque fois sans message d'erreur
code :
With Ol_Appointment
.Subject = Var_IW_Objet & " " & Var_Bien
Var_IW_Bien_Reference = .EntryID


"Isabelle Prawitz" a écrit dans le message de
news:


ua3PkL$
Bonjour !
EntryId est une propiété en lecture seule. Tu peux initialiser un
champ de



ta base avec sa valeur au moment de la création de
la tâche, et ensuite, pour retrouver cet élément, et le supprimer
(ou




le
modifier), tu utilises GetItemFromId(NomDeTonChamp)
!
EntryId est la propriété qui permet de pointer sur un élément
Outlook,




son
identifiant unique.
Espérant avoir été plus claire ;-)
A+
Isa

"Monkeytoo" a écrit dans le message de
news:

j'ai une erreur de compilation du code que je ne comprends pas :
Impossible d'affecter à une propriété en lecture seule
voici le code qui s'arrête sur .entryID=Var_Histo_Ref :

Strsql = "SELECT * FROM ...

Set rst = CurrentDb.OpenRecordset(Strsql)
With rst
Set Ol_Appointment = Ol_App.CreateItem(olAppointmentItem)
Set OL_Task = Ol_App.CreateItem(olTaskItem)
VAR_DATE = Nz(.Fields("date_acte"))
VAR_DATE = Format(VAR_DATE, "dd-mmmm-yyyy")
Var_Heure = Nz(.Fields("acte_heure"))
Var_Histo_Ref = (.Fields("Histo_Ref"))
Var_IW_Objet = Nz(.Fields("type_contact"))
Var_IW_Memo = Nz(.Fields("Divers"))
Var_Duree = Nz(.Fields("agenda_duree_reelle"))
var_duration = (Hour(Var_Duree) * 60) +
Minute(Var_Duree)


Var_Bien = Nz(.Fields("acte_ref_bien"))

With Ol_Appointment
.Subject = Var_IW_Objet & " " & Var_Bien
.Body = Var_IW_Memo
.EntryID = Var_Histo_Ref
.Location = Var_bien
.Duration = var_duration
.Start = VAR_DATE & " " & Var_Heure
.Save
End With
.MoveNext
Set Ol_Appointment = Nothing
Loop
End With
Set Ol_Appointment = Nothing
Set Ol_App = Nothing


"Monkeytoo" a écrit dans le message de
news:





je vais essayer
merci d'avance
"Isabelle Prawitz" a écrit dans le message
de





news:
#
Bonjour !
Utilise sa propriété EntryId, tu pourras récupérer la tâche
par







GetItemFromId du Namespace !
A+
Isa

"Monkeytoo" a écrit dans le message
de







news:
Bonsoir à tous
je désire gérer (ajouter et supprimer) des tâches dans
outlook








j'ai trouvé le code vba pour ajouter une tâche mais je
voudrais







pouvoir
lui
assigner un identifiant unique (placer une valeur provenant
d'un







numéro
automatique)
afin que je puisse rechercher cette tâche par cet
identifiant.








où pourrais-je trouver la liste des champs disponibles dans
outlook





(partie
tâche) ?
ces manip s'effectueraient à partir d'access.
merci d'avance
































1 2