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

VBA Word Discussion :

Selection d'une personne dans combobox et apelle a l'active directory pour obtenir ses informations


Sujet :

VBA Word

  1. #1
    Membre habitué
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 246
    Points : 191
    Points
    191
    Par défaut Selection d'une personne dans combobox et apelle a l'active directory pour obtenir ses informations
    Bonjour,

    Je sélectionne dans un combobox préalablement chargé via l'active directory, le nom et prénom d'une personne, et lorsque je sélectionne cette personne je souhaite obtenir son service rattachée dans un label:

    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
    40
     
    Private Sub RechercheInADUsers()
     
    Dim Nom As String
    Dim Prenom As String
    Dim Sevice As String
     
    Const ADS_SCOPE_SUBTREE = 2
     
    Set objConnection = CreateObject("ADODB.Connection") 'Création d'un objet pour la connexion
    Set objCommand = CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject" 'Définition du pilote de connexion
    objConnection.Open "Active Directory Provider" 'Ouverture de la base
    Set objCommand.ActiveConnection = objConnection
     
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
     
    'Recherche des utilisateurs dans l'active directory
    objCommand.CommandText = _
    "SELECT givenname, sn FROM 'LDAP://dc=specinov,dc=local ' WHERE objectClass='user' and objectCategory ='Person'"
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst
    cbContributeur.Clear
    cbValideurNom.Clear
    Do Until objRecordSet.EOF
      If objRecordSet.Fields("givenName").Value <> Null Then
        Nom = objRecordSet.Fields("givenName").Value
      End If
      If objRecordSet.Fields("sn").Value <> Null Then
        Prenom = objRecordSet.Fields("sn").Value
      End If
        cbContributeur.AddItem (Nom & " " & Prenom)
        cbValideurNom.AddItem (Nom & " " & Prenom)
        objRecordSet.MoveNext
    Loop
     
    On Error Resume Next
     
    End Sub
    Je ne sais pas si je peux faire une requete du type :
    "SELECT department FROM 'LDAP://dc=specinov,dc=local ' WHERE "
    givenName = xxx and sn = yyyy pour obtenir cettte information ? Une autre idée ?

  2. #2
    Membre habitué
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 246
    Points : 191
    Points
    191
    Par défaut
    j'avais oublié de mettre mon code du changement de valeur de ma combobox

    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
     
    Private Sub cbContributeur_Change()
     
      Dim Sevice As String
      Dim Referent As String
     
      Referent = cbContributeur.Value
     
    Const ADS_SCOPE_SUBTREE = 2
     
    Set objConnection = CreateObject("ADODB.Connection") 'Création d'un objet pour la connexion
    Set objCommand = CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject" 'Définition du pilote de connexion
    objConnection.Open "Active Directory Provider" 'Ouverture de la base
    Set objCommand.ActiveConnection = objConnection
     
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
     
    'Recherche des utilisateurs dans l'active directory
    objCommand.CommandText = _
    "SELECT Department FROM 'LDAP://dc=specinov,dc=local 'WHERE displayName='" & Referent & "' and objectClass='user' and objectCategory ='Person'"
    Set objRecordSet = objCommand.Execute
    If objRecordSet.Fields("department").Value <> Null Then
     lResponsableService.Caption = objRecordSet.Fields("department").Value
    End If
     
    End Sub
     
    End Sub
    J'ai une erreur sur le ligne "If objRecordSet.Fields("department").Value <> Null Then"

    il me dit que EOF ou BOF est = True ou l'enregistrement actuel a été supprimé. Je ne vois pas ce que ça signifie

  3. #3
    Membre habitué
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 246
    Points : 191
    Points
    191
    Par défaut
    J'ai modifié ainsi comme ça, je sécurise l'exécution du code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    "SELECT Department FROM 'LDAP://dc=specinov,dc=local 'WHERE displayName='" & Referent & "' and objectClass='user' and objectCategory ='Person'"
    Set objRecordSet = objCommand.Execute
    If objRecordSet.EOF = False Then
      objRecordSet.MoveFirst
      Do Until objRecordSet.EOF
        If objRecordSet.Fields("department").Value <> Null Then
          lResponsableService.Caption = objRecordSet.Fields("department").Value
        End If
      Loop
    End If

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. selection d'une case dans un formulaire
    Par salsero1 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 02/05/2007, 18h39
  2. Réponses: 4
    Dernier message: 17/01/2007, 19h52
  3. [VBA-E] Selection d'une liste dans Excel
    Par GI_GI dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/01/2007, 03h05
  4. selection d'une ligne dans un tableau en html
    Par jehlg dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/02/2006, 00h08
  5. Selection d'une valeur dans une autre table
    Par beurnoir dans le forum Access
    Réponses: 1
    Dernier message: 13/10/2005, 13h02

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