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

Outlook Discussion :

Partager carnet d'adresse sur le réseau


Sujet :

Outlook

  1. #21
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    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
     
    Public Sub UpdateContacts()
    Dim oNS As NameSpace
    Dim oFod As MAPIFolder
    Dim oFod2 As MAPIFolder
     
    Set oNS = Application.GetNamespace("MAPI")
    Set oFod = oNS.GetDefaultFolder(olFolderContacts)
    Set oFod2 = oFod.Folders.Item("Mes Contacts")
    Dim myIt As ContactItem
    With myIt
        .FirstName("SuperMoi").Add
     
     
     
    For Each myIt In oFod2.Items
    Debug.Print myIt
     
    Next myIt
    Voilà la piste que je compte suivre, ouvrir un instance Outlook dans Access, accéder aux folders, créer un nouveau folders Contact et le remplir, pour l'instant je suis encore au stade de l'exploration de comment faire, c'est pour cette raison que je travaille en Outlook.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  2. #22
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 111
    Points : 55
    Points
    55
    Par défaut
    Pour éviter d'avoir une base en local, n'est-il pas préférable de faire une importation :
    Au premier lancement d'Outlook, celui-ci importera le carnet d'adresse à partir du fichier Access sur le réseau.

    J'ai trouvé ce vieux code sur le site de microsoft :
    http://support.microsoft.com/kb/180981

    En bref on aurait :
    - Une DB Access sur le poste principal qui contient une table liée au Carnet d'adresse et une table qui est une copie de la table liée (mise à jour tous les soirs).
    - Une DB Access sur le serveur qui est une copie conforme de celle disponible sur le poste principale à l'exception de la tablie liée (inutile).
    - Aucune base en local.

    Non ?

  3. #23
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    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
     
    Public Sub UpdateContacts()
    Dim oNS As NameSpace
    Dim oFod As MAPIFolder
    Dim oFod2 As MAPIFolder
    Dim ctItem As ContactItem
     
     
    Set oNS = Application.GetNamespace("MAPI")
    Set oFod = oNS.GetDefaultFolder(olFolderContacts)
    Set oFod2 = oFod.Folders.Item("Mes Contacts")
    Dim myIt As ContactItem
    Set ctItem = oFod.Items("Marie 2610")
    Set myIt = oFod2.Items.Add
    With myIt
        .FirstName = "Marie"
        .LastName = "Fille"
        .CompanyName = "SABCA"
        .Save
     
     
    End With
    Essaie de faire tourner ce code dans Outlook.

    En modifiant le code on peut le mettre en Access.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  4. #24
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Voilà le code complet que j'ai mis dans un module Access.
    La table s'appelle "tbl_Contacts"

    Je l'ai testé et il fonctionne.

    Le principe, c'est de supprimer le répertoire "Mes Contacts".
    Je crée un répertoire "Mes Contacts" vide.

    Ensuite, à l'aide d'un RecordSet, je vais remplir ce répertoire avec les contacts qui se trouvent dans ma table.

    Ma table, je l'obtiens avec ce SQL
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Contacts.First, Contacts.Last, Contacts.Title, Contacts.Company, Contacts.Department, Contacts.Office, Contacts.[Post Office Box], Contacts.Address, Contacts.City, Contacts.State, Contacts.[Zip/Postal Code], Contacts.Country, Contacts.Phone, Contacts.[Mobile Phone], Contacts.[Pager Phone], Contacts.[Home2 Phone], Contacts.[Assistant Phone Number], Contacts.[Business Fax], Contacts.[Home Fax], Contacts.[Other Fax], Contacts.[Telex Number], Contacts.[Display name], Contacts.[E-mail type], Contacts.[E-mail address], Contacts.Account, Contacts.Assistant, Contacts.[Send Rich Text], Contacts.Primary INTO tbl_Contacts
    FROM Contacts;


    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
    39
    Sub AjouterContacts()
    Dim DB As DAO.Database
    Dim RS As DAO.Recordset
    Dim SQL As String
    Dim oNS As NameSpace
    Dim oFod As MAPIFolder
    Dim oFod2 As MAPIFolder
    Dim ctItem As ContactItem
    Dim oApp As New Outlook.Application
    Dim myIt As ContactItem
     
    SQL = "select * from tbl_Contacts"
     
    Set DB = Application.CurrentDb
    Set RS = DB.OpenRecordset(SQL)
    Set oNS = oApp.GetNamespace("MAPI")
    Set oFod = oNS.GetDefaultFolder(olFolderContacts)
    Set oFod2 = oFod.Folders("Mes Contacts")
    oFod2.Delete
     
    Set oFod2 = oFod.Folders.Add("Mes Contacts")
     
    While Not RS.EOF
     
    Set myIt = oFod2.Items.Add
    With myIt
        .FirstName = Nz(RS.Fields("first"), "")
        .LastName = Nz(RS.Fields("last"), "")
        .Email1Address = Nz(RS.Fields("E-mail ADDRESS"), "")
     
        .Save
    End With
    RS.MoveNext
     
    Wend
    Set oApp = Nothing
    Set DB = Nothing
     
    End Sub
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #25
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 111
    Points : 55
    Points
    55
    Par défaut
    Dis-moi si je me trompe, en résumé ta méthode est :

    - 1 DB Access sur le poste principal (2 tables : une liée à Outlook et l'autre la copie du contenu de la première)
    - 1 DB Access sur le réseau qui contient une table liée à la première base (à la copie)

    A chaque lancement de Outlook; le module Access (réseau) se lance et rappatrie les contacts.

    C'est bien ça ?

  6. #26
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Non, rien en Outlook, tout en Access.
    On prélève les enregistrements de la table pour les injecter directement dans Outlook.
    Pas de lien en local entre Access et Outlook.

    Pour tester le module.

    Tu crée un DB Access, tu y crée une table basée sur les contacts.
    Tu appelles la table tbl_Contacts.

    Tu ajoutes les références Outlook à ton projet

    Tu lances le code qui se trouve dans le module.

    Ta vas alors avoir un nouveau folder dans le folder contact qui aura ton les contact du premier.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #27
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 111
    Points : 55
    Points
    55
    Par défaut
    Je ne suis pas sûr d'avoir compris ta solution.
    Il y a de la confusion entre les différentes bases de données.

    Je te rappelle ma situation pour que tu puisses m'expliquer :
    - Un poste principal où se trouve Outlook. Ce poste contient un carnet d'adresse
    But : chaque poste client (les autres postes du réseau) doit pouvoir accéder à ce carnet d'adresse.

    Donc si tu pouvais m'indiquer où se trouvent les différentes bases (et liaisons) dans ton exemple (poste principal, serveur, poste client).

    Merci.

  8. #28
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    De ce poste principal, une base Access (DB1) avec une liaison vers le carnet d'adresse
    Dans cette base, une requête de création de table pour une table qui sera sur le serveur dans la seconde DB (DB2).

    Sur chaque poste, une DB (DB3) qui pointe vers le carnet d'adresse de chaque utilisateur et vers la table sur le serveur (DB2). Dans cette DB (DB3), un module avec le code.

    Lorsque tu va faire tourner ce module (DB3) en Local, les informations qui se trouvent sur le serveur(DB2) vont être inscrites dans le carnet d'adresse "Mes Contacts".
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  9. #29
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 111
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par Heureux-oli
    De ce poste principal, une base Access (DB1) avec une liaison vers le carnet d'adresse
    Dans cette base, une requête de création de table pour une table qui sera sur le serveur dans la seconde DB (DB2).

    Sur chaque poste, une DB (DB3) qui pointe vers le carnet d'adresse de chaque utilisateur et vers la table sur le serveur (DB2). Dans cette DB (DB3), un module avec le code.

    Lorsque tu va faire tourner ce module (DB3) en Local, les informations qui se trouvent sur le serveur(DB2) vont être inscrites dans le carnet d'adresse "Mes Contacts".
    Ok, je te suis bien pour le début mais pas pour la DB3.

    A quoi sert la liaison tb1_3 (une table de DB3) - Outlook et tb2_3 - DB2 ?
    Car si j'ai bien compris, ton module est capable d'ajouter des contacts dans Outlook local, donc dans DB3 il suffit d'un module seul non ? La requête sélectionnera les données de DB2.

    Aurai-je raté quelque chose ?

  10. #30
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Pour DB3, on peut le faire de cette manière.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  11. #31
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 111
    Points : 55
    Points
    55
    Par défaut
    Ok, je vais essayer de mettre tout ça en place.

    Par contre, comment faire pour la mise à jour des postes clients, il faut qu'ils lancent le module Access... D'ailleurs n'est-il pas possible de le mettre sur DB2 et de l'éxécuter ?
    Si ce n'est pas possible, il faudrait que ce module s'éxécute en tâche de fond lors du démarrage d'outlook, cela doit être possible en VBA non ?

  12. #32
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Une base de données sur le réseau, et un carnet d'adresse local.

    La liaison se fait au départ de Outlook par recordset.
    On peut de cette manière ajouter des contacts et ensuite les partager.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  13. #33
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 854
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 854
    Points : 581
    Points
    581
    Par défaut
    Citation Envoyé par Heureux-oli Voir le message
    Voilà le code complet que j'ai mis dans un module Access.
    La table s'appelle "tbl_Contacts"

    Je l'ai testé et il fonctionne.

    Le principe, c'est de supprimer le répertoire "Mes Contacts".
    Je crée un répertoire "Mes Contacts" vide.

    Ensuite, à l'aide d'un RecordSet, je vais remplir ce répertoire avec les contacts qui se trouvent dans ma table.

    Ma table, je l'obtiens avec ce SQL
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Contacts.First, Contacts.Last, Contacts.Title, Contacts.Company, Contacts.Department, Contacts.Office, Contacts.[Post Office Box], Contacts.Address, Contacts.City, Contacts.State, Contacts.[Zip/Postal Code], Contacts.Country, Contacts.Phone, Contacts.[Mobile Phone], Contacts.[Pager Phone], Contacts.[Home2 Phone], Contacts.[Assistant Phone Number], Contacts.[Business Fax], Contacts.[Home Fax], Contacts.[Other Fax], Contacts.[Telex Number], Contacts.[Display name], Contacts.[E-mail type], Contacts.[E-mail address], Contacts.Account, Contacts.Assistant, Contacts.[Send Rich Text], Contacts.Primary INTO tbl_Contacts
    FROM Contacts;


    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
    39
    Sub AjouterContacts()
    Dim DB As DAO.Database
    Dim RS As DAO.Recordset
    Dim SQL As String
    Dim oNS As NameSpace
    Dim oFod As MAPIFolder
    Dim oFod2 As MAPIFolder
    Dim ctItem As ContactItem
    Dim oApp As New Outlook.Application
    Dim myIt As ContactItem
     
    SQL = "select * from tbl_Contacts"
     
    Set DB = Application.CurrentDb
    Set RS = DB.OpenRecordset(SQL)
    Set oNS = oApp.GetNamespace("MAPI")
    Set oFod = oNS.GetDefaultFolder(olFolderContacts)
    Set oFod2 = oFod.Folders("Mes Contacts")
    oFod2.Delete
     
    Set oFod2 = oFod.Folders.Add("Mes Contacts")
     
    While Not RS.EOF
     
    Set myIt = oFod2.Items.Add
    With myIt
        .FirstName = Nz(RS.Fields("first"), "")
        .LastName = Nz(RS.Fields("last"), "")
        .Email1Address = Nz(RS.Fields("E-mail ADDRESS"), "")
     
        .Save
    End With
    RS.MoveNext
     
    Wend
    Set oApp = Nothing
    Set DB = Nothing
     
    End Sub
    Bonjour,

    C'est le code que je cherchais !
    2 questions :

    1/ Les dossiers de contacts que je crée ainsi sont partagés. Quelles propriétés des dossiers doit-on définir pour qu"ils ne soient pas partagés?

    2/ Comment faire pour que l'option "Afficher ce dossier sour forme de carnet d'adresses de messagerie" de l'onglet "Carnet d'adresses Oulook" des propriétés du dossier soit cochée en VBA ?

    Merci

  14. #34
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 39
    Points : 34
    Points
    34
    Par défaut Identifier version Outlook installée
    J'ai reçu un PC avec comme OS Wind. XP Pro SP3.
    Comment puis-je savoir quelle version d'Outlook est installée sur cet ordi?
    Merci de votre aide

Discussions similaires

  1. Carnet d'adresse sur Annuaire LDAP
    Par mamxdsl dans le forum Outlook
    Réponses: 6
    Dernier message: 06/08/2010, 09h20
  2. Réponses: 6
    Dernier message: 08/11/2008, 11h58
  3. comment partager mon application access sur mon réseau
    Par yacoubmaurice42 dans le forum Sécurité
    Réponses: 1
    Dernier message: 26/08/2008, 17h44
  4. [OpenOffice][Texte] Partage de fichier Calc sur un réseau
    Par The-Most-Wanted dans le forum OpenOffice & LibreOffice
    Réponses: 4
    Dernier message: 29/07/2008, 13h32
  5. partage base de données sur un réseau
    Par zougna dans le forum Sécurité
    Réponses: 3
    Dernier message: 24/07/2007, 23h59

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