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

Requêtes et SQL. Discussion :

Récuperer la listes des connectés à une BDD dans une requête


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Août 2005
    Messages : 525
    Points : 194
    Points
    194
    Par défaut Récuperer la listes des connectés à une BDD dans une requête
    Bonjour

    J'ai bien réussi à récupérer la liste des connectés à ma base réseau mais j'aimerai les récuperer dans une requete pour pouvoir "traduire" le nom de l'ordinateur (style H04AREA112) par son emplacement (Ordinateur de la salle 2). J'ai adapté le code de la FAQ qui me renvoie la liste concaténée et séparée de ";".

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    Option Compare Database
    Option Explicit
     
    Private Type EnrUsager
       ElemPC(1 To 32) As Byte ' Les octets 1 - 32 contiennent le nom du PC, remplissage par la valeur Null
     
    End Type
     
     
    Public Function ListConnecte() As String
     
    On Error GoTo Err_ListConnecte
    Dim intFichierLDB As Integer, intDébut As Integer, i As Integer
    Dim strChemin As String, strTest As String
    Dim sLogStr As String, strConnexions As String
    Dim strNomPC As String, strNomUsager As String
     
     
    strChemin = "\\Chu06nas1\n06ane2\CCV database_be.mdb"
     
    strTest = Dir(strChemin)
    intFichierLDB = FreeFile
     
    Open strChemin For Binary Access Read Shared As intFichierLDB
     
     
    Do While Not EOF(intFichierLDB)
     
       Get intFichierLDB, , rUsager
       With rUsager
          i = 1
          strNomPC = ""
     
      While .ElemPC(i) <> 0
             strNomPC = strNomPC & Chr(.ElemPC(i))
             i = i + 1
          Wend
     
       End With
       sLogStr = strNomPC
       If InStr(strConnexions, sLogStr) = 0 Then
          strConnexions = strConnexions & sLogStr & ";"
       End If
    Loop
    Close intFichierLDB
    ListConnecte = strConnexions
     
    Exit_ListConnecte:
       Exit Function
     
    Err_ListConnecte:
       If Err = 68 Then
          Msgbox "Le fichier " & strChemin & " n'existe pas", vbCritical, "Erreur chemin d'accès"
       Else
          Msgbox "Erreur: " & Err.Number & vbCrLf & Err.Description
          Close intFichierLDB
       End If
       Resume Exit_ListConnecte
     
    End Function
    J'ai créé une requête "R_ListConnectes" avec la table T_Ordinateurs contenant le champ "Ordinateur" (Le vrai nom du PC) et "Site" (Localise le PC)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT T_ordinateurs.Site, ListConnecte() AS liste_PC
    FROM T_ordinateurs;
    Je ne récupère que les nom séparés de ";"
    Merci pour votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 661
    Points : 34 363
    Points
    34 363
    Par défaut
    salut,
    pour "déconcaténer" tes valeurs, regarde la fonction Split(), dans l'idée ca donne ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Var As Variant
    Dim i As Integer
    Var= Split(MonChamp,";")
    For i = 1 to Ubound(Var)
    Debug.Print Var(i)
    next i

  3. #3
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut docjo et jpcheck,
    pourquoi pas transformer ta fonction en procédure et changer la concaténation en insertion dans une table.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Août 2005
    Messages : 525
    Points : 194
    Points
    194
    Par défaut
    Le problème (mais je me trompe peut-être), c'est que la fonction extrait les données du fichier LDB et les place bout à bout sans opération de concaténation.

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Voir les personnes connectées
    Bonjour,
    J'ai bien lu la FAQ concernant la remonter d'information des personnes connectées ainsi que vos différents échanges.
    La question que je me pose est la suivante : Ou doit-on mettre le code et par quel moyen peut-on le déclencher ?
    Merci à vous

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Août 2005
    Messages : 525
    Points : 194
    Points
    194
    Par défaut
    Le code peut-être mis dans un module. La fonction est appelée depuis un formulaire (soit bouton, soit évènement). La fonction dans mon cas est ListConnecte().
    Tu peux tester ton code dans le module en appellant la fenêtre de débogage et en tapant en bas:
    puis appui sur entrée.

    Dans mon cas, le code s'affiche trés bien dans un formulaire en utilisant un champs de liste. Le problème c'est que je veux l'ouvrir dans une requête.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Août 2005
    Messages : 525
    Points : 194
    Points
    194
    Par défaut
    J'avais mal cherché: j'ai trouvé la réponse ICI

    Merci encore pour votre aide

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 16/01/2015, 11h50
  2. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 11h17
  3. Réponses: 15
    Dernier message: 21/10/2009, 14h31
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 11h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 14h48

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