Ajout contact dossiers publics à partir d'Access

201956 4 Messages postés lundi 22 février 2016Date d'inscription 23 février 2016 Dernière intervention - 22 févr. 2016 à 15:07 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention
- 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 

Votre réponse

7 réponses

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

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

Voici la ligne erreur
Set myFolder = myNameSpace.Folders("Dossiers communs")
Commenter la réponse de 201956
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 22 févr. 2016 à 19:05
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
201956 4 Messages postés lundi 22 février 2016Date d'inscription 23 février 2016 Dernière intervention - 23 févr. 2016 à 11:29
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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 23 févr. 2016 à 12:00
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
201956 4 Messages postés lundi 22 février 2016Date d'inscription 23 février 2016 Dernière intervention - 23 févr. 2016 à 13:19
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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 23/02/2016 à 16:23
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.