Ajout contact dossiers publics à partir d'Access

201956 Messages postés 4 Date d'inscription lundi 22 février 2016 Statut Membre Dernière intervention 23 février 2016 - 22 févr. 2016 à 15:07
ucfoutu Messages postés 18038 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

7 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
22 févr. 2016 à 15:59
Bonjour,

Peux-tu spécifier sur quelle ligne survient l'erreur ?
0
201956 Messages postés 4 Date d'inscription lundi 22 février 2016 Statut Membre Dernière intervention 23 février 2016
22 févr. 2016 à 16:03
Merci,

Voici la ligne erreur
Set myFolder = myNameSpace.Folders("Dossiers communs")
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 févr. 2016 à 19:05
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 ?


0
201956 Messages postés 4 Date d'inscription lundi 22 février 2016 Statut Membre Dernière intervention 23 février 2016
23 févr. 2016 à 11:29
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 févr. 2016 à 12:00
 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
0
201956 Messages postés 4 Date d'inscription lundi 22 février 2016 Statut Membre Dernière intervention 23 février 2016
23 févr. 2016 à 13:19
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 23/02/2016 à 16:23
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.
0
Rejoignez-nous