Ajout contact dossiers publics à partir d'Access

Messages postés
4
Date d'inscription
lundi 22 février 2016
Statut
Membre
Dernière intervention
23 février 2016
- - Dernière réponse : ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
- 23 févr. 2016 à 16:22
Bonjour à tous,

En parcourant les différents forums j'ai trouvé le code ci-dessous qui permet l'ajout de contacts dans dossiers publics à partir d'un formulaire Access. Lorsque je clique sur mon bouton toujours le même retour : "Echec de l'opération : impossible de trouver l'objet". Une précision je suis très débutante en VBa

Private Sub Commande487_Click()
Dim myOlApp As New Outlook.Application
Dim myNameSpace As NameSpace
Dim myFolder, myContactFolder As MAPIFolder
Dim myNewContact As Outlook.ContactItem

Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myFolder = myNameSpace.Folders("Dossiers communs")
Set myContactFolder = myFolder.Folders("Dossiers communs")

Set myNewContact = myContactFolder.Items.Add(olContactItem)
With myNewContact
.FirstName = "Astérix"
.LastName = "Le Gaulois"
.Email1Address = "asterix@dolmen.fr"
.Save
End With
MsgBox "Contact Ajouté"

myOlApp.Close
Set myOlApp = Nothing
End Sub


Pouvez-vous me dire d'où vient le problème ?

Merci et bonne journée
Afficher la suite 

7 réponses

Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
15
0
Merci
Bonjour,

Peux-tu spécifier sur quelle ligne survient l'erreur ?
Commenter la réponse de cs_MPi
Messages postés
4
Date d'inscription
lundi 22 février 2016
Statut
Membre
Dernière intervention
23 février 2016
0
Merci
Merci,

Voici la ligne erreur
Set myFolder = myNameSpace.Folders("Dossiers communs")
Commenter la réponse de 201956
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
0
Merci
Je ne suis pas certain de ce que :
As NameSpace
soit compris directement depuis Access ...$
ce devrait à mon sens être plutôt :
Dim myNameSpace AS myOlApp.NameSpace
Je n'aime pas non plus
Dim myNewContact As Outlook.ContactItem
alors que Outlook.Application a été déclaré (en dessous) en liaison tardive.
Tu travailles finalement avec quoi ? Sur la base d'une référence cochée ou en liaison tardive ?


Commenter la réponse de ucfoutu
Messages postés
4
Date d'inscription
lundi 22 février 2016
Statut
Membre
Dernière intervention
23 février 2016
0
Merci
Bonjour,
Merci pour votre réponse. J'avoue ne pas comprendre la question référence cochée ou liaison tardive ?
J'ai un formulaire avec un bouton pour créer un nouveau contact dans contacts publics. J'espère être claire

Encore merci
Commenter la réponse de 201956
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
0
Merci
 Set myOlApp = CreateObject("Outlook.Application")

est une liaison tardive (création, en mode exécution, d'un objet outlook)

Dim myNameSpace As NameSpace

n'est pas compris
Commenter la réponse de ucfoutu
Messages postés
4
Date d'inscription
lundi 22 février 2016
Statut
Membre
Dernière intervention
23 février 2016
0
Merci
Bonjour,

J'ai modifié le code et le bug se trouve maintenant sur la ligne
Dim myNameSpace As myOlApp.NameSpace


Private Sub Commande487_Click()
Dim myOlApp As New Outlook.Application
Dim myNameSpace As myOlApp.NameSpace
Dim myFolder, myContactFolder As MAPIFolder

Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myFolder = myNameSpace.Folders("Dossiers Communs")
Set myContactFolder = myFolder.Folders("Contacts commmuns")

Set myNewContact = myContactFolder.Items.Add(olContactItem)
With myNewContact
.FirstName = "Astérix"
.LastName = "Le Gaulois"
.Email1Address = "asterix@dolmen.fr"
.Save
End With
MsgBox "Contact Ajouté"

myOlApp.Close
Set myOlApp = Nothing
End Sub


Merci
Commenter la réponse de 201956
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
0
Merci
Tu continues à tout mélanger.
Soit tu travailles en liaison tardive, soit tu travailles en liaison anticipée.
Tu trouveras ici :
https://msdn.microsoft.com/fr-fr/library/office/ff865816.aspx
tout ce qu'il te faut savoir dans un cas comme dans l'autre.
Dans un cas comme dans l'autre, Outlook doit bien évidemment exister sur ta machine.

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu