Ajout contact dossiers publics à partir d'Access

Signaler
Messages postés
4
Date d'inscription
lundi 22 février 2016
Statut
Membre
Dernière intervention
23 février 2016
-
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
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

7 réponses

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

Peux-tu spécifier sur quelle ligne survient l'erreur ?
Messages postés
4
Date d'inscription
lundi 22 février 2016
Statut
Membre
Dernière intervention
23 février 2016

Merci,

Voici la ligne erreur
Set myFolder = myNameSpace.Folders("Dossiers communs")
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
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 ?


Messages postés
4
Date d'inscription
lundi 22 février 2016
Statut
Membre
Dernière intervention
23 février 2016

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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
 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
Messages postés
4
Date d'inscription
lundi 22 février 2016
Statut
Membre
Dernière intervention
23 février 2016

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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
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.