IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

lire et enregistrer contact outlook avec automation


Sujet :

WinDev

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    Points : 129
    Points
    129
    Par défaut lire et enregistrer contact outlook avec automation
    Bonjour

    Y aurait'il une bonne âme qui pourrait me donner me donner un exemple pour me positionner sur un contact précis ?

    voila ce que j'ai fait, cela enregistre dans outlook mais pas sur le bon contact :-( . Cela écrit toujours sur le 1er contact dans outook.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    // Bouton enregistrer // fiche contact
     
    // enregistrement Cote windev 
     
    Modification = DateHeureSys()
    EcranVersFichier()
    HModifie(Tb_contacts,hNumEnrEnCours)
    TableAffiche(fen_acceuil.Table_contacts,taRéExecuteRequete)
     
    // enregistrement de la fiche cote Outlook
     
    objApp est un objet OLE dynamique //outlook.application
    objNS est un objet OLE dynamique //namespace
    myFolder1 est un objet OLE dynamique //MAPIFolder
    Ocontact est un objet OLE dynamique //ContactItem
     
    NomBAL est une chaîne
    NomBAL = "xxxx@xxxx.com"
     
    NomDossierdecontact est une chaîne
    NomDossierdecontact = "TEST_WINDEV"
     
    i est un entier=1
     
    objApp=ObjetActif("OutLook.Application")
    objNS=objApp>>GetNamespace("MAPI")
     
    //Récuperer le dossier contact 
    //myFolder1=objNS>>PickFolder
    myFolder1=objNS>>folders(NomBAL)>>folders(NomDossierdecontact)
    Ocontact=myFolder1>>items(i)
     
     
    Ocontact>>FirstName = Tb_contacts.FirstName
    Ocontact>>LastName = Tb_contacts.LastName
    Ocontact>>save
    Je n'arrive donc pas à me positionner sur l'enregistrement que je veux modifier. et la je sèche avec ole automation.

    Qui peut me filer un bout de code, une piste... ?

    Merci d'avance

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 69
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    As tu essayé les fonctions Outlook?
    Peut être qu'il y a là ton bonheur

    http://doc.pcsoft.fr/fr-FR/?3032137

    Cordialement

  3. #3
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 953
    Points : 9 283
    Points
    9 283
    Par défaut
    hello,
    ta variable i est toujours à 1 si tu ne la changes pas tu vas toujours être sur le premier élément dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ocontact=myFolder1>>items(i)
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  4. #4
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    Points : 129
    Points
    129
    Par défaut
    Concernant les fonctions intégrées, cela ne me convient pas car la structure contacts est limitée.

    J'ai besoin d’accéder à tous les membres de contactitems pour les besoins de mon appli.

    Pour l'instant il semble qu'il n'y ai que OLE qui réponde à mon besoin.

    J'ai trouvé un code VBA que j'ai réussi à adapter en windev pour importer les contacts. Lui fonctionne.


    Maintenant, je souhaite faire l'inverse, pouvoir enregistrer un contact que j'ai modifié dans mon appli.


    Je suis une tanche en OLE, je cherche des exemples, j'essayes...

    Pour le Ocontact=myFolder1>>items(i) avec ou sans c'est pareil


    Sinon en vba il y a ceci qui pourrait repondre à mes attentes mais je n'arrive pas à l'adapter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    For Each oCont In oFold.Items
     
     
        stFilt = "[TTYTDDTelephoneNumber] = """ & rs.Fields(98) & """"
     
            ' Recherche avec filtre
                Set oCont = oFold.Items.Find(stFilt)
     
                'Filtre pour recherche des données déjà existantes dans les contacts locaux
     
                       If rs.Fields("TTYTDDTelephoneNumber") <> "" Then
                                  stFilt = "[TTYTDDTelephoneNumber] = """ & rs.Fields(98) & """"
                               Else
                                    stFilt = "@SQL=" & Chr(34) _
                                    & "urn:schemas:contacts:ttytddphone" & _
                                            Chr(34) & " is null"
                                    End If
     
                                    Dim toto
                                    Set toto = oFold.Items.Restrict(stFilt)
                                    '
                                    stFilt = "[TTYTDDTelephoneNumber] = """ & rs.Fields(98) & """"
     
                                    '' Recherche avec filtre
     
                                    Set Oco = oFold.Items.Find(stFilt)
                                    'Debug.Print Oco
     
                                    Set Oco = toto.Find(stFilt)
                                    Set toto = toto.Restrict(stFilt)
     
     
                                    Debug.Print toto.Count
     
     
                                    If toto.Count > 1 Then MsgBox "Doublon sur : " & rs.Fields(98) & " "
                                    'If toto.Count = 1 Then MsgBox "Pas de doublon"
    seb

Discussions similaires

  1. [OL-2007] Synchro contacts outlook avec compte gmail (Outlook4gmail)
    Par XceSs dans le forum Outlook
    Réponses: 0
    Dernier message: 20/03/2013, 12h39
  2. Réponses: 1
    Dernier message: 09/09/2011, 13h48
  3. Réponses: 1
    Dernier message: 07/03/2009, 21h54
  4. Bdd gestion de contacts synchro avec outlook
    Par sebinator dans le forum Modélisation
    Réponses: 4
    Dernier message: 10/05/2008, 10h08
  5. Réponses: 0
    Dernier message: 06/08/2007, 13h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo