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 Access Discussion :

[Système]Connaître qui est sur ma base?


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Points : 36
    Points
    36
    Par défaut [Système]Connaître qui est sur ma base?
    Bonjour,

    J'aimerais créer une macro, une requête ou je ne sais quoi afin de connaître qui est connecté sur ma base car elle est sur le réseau. En effet, elle me serait très utile car une manipulation dans ma base nécessite qu'il n'y ait personne qui est ouvert la base. Merci d'avance pour vos solutions.

  2. #2
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Bonjour et bienvenue sur le Forum,

    il est possible de visualiser toutes les personnes connectées à un bdd grâce au fichier ldb.

    Si tu veux un exemple concret consulte mon tuto sur les bases multi-utilisateurs :
    http://dolphy35.developpez.com/artic.../BasesReseaux/

    dans ce tuto tu visualise les personnes connectées et tu peux leur envoyé un msg par NetSend.

    Dolphy

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    Euh compliqué, non?
    Faut d'abord que je fractionne ma base alors?
    Merci.

  4. #4
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    re,

    non non, la dernière partie concerne ce que tu veux
    IX-C. Création d'une base pour Administrer les bases Frontales/Dorsales

    tu peux églament télécharger la base exemple dans la partie X, tu y retrouveras un formulaire pour consulter les personnes connectés.

    sinon tu as l'outil d'argy http://argyronet.developpez.com/down...ols/ldbviewer/

    Dolphy

  5. #5
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonsoir,

    Non ! Eventuellement, tu peux te faire une table de log, mais ce sera pas plus simple, et certainement moins fiable...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Faut d'abord que je fractionne ma base alors?
    Oui ! Plus sûr et plus performant

    Tu peux faire confiance les yeux fermés au tutoriel et à ce qu'il propose...

    Si tu veux, tu peux également faire une recherche sur le forum. "Dorsale" ou "frontale". Les discussions sont nombreuses. Et elles confirment ! Scinde ton application, y'a que du bon pour la suite...

    Domi2

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Points : 36
    Points
    36
    Par défaut A l'aide
    1ère étape:
    *Pour la fraction de ma base.
    Cela a fonctionné
    >Cependant, je dois importer une table 2 fois par jour.
    Dois-je la mettre dans la base dorsale ou frontale? Quel problème cela peut-il poser?
    >De plus, beaucoup de tables sont renseignées par des copier/coller.
    Dois-je les mettre dans la base dorsale ou frontale? Quel problème cela peut-il poser?

    En gros, je ne comprends par la différence majeure entre la base dorsale et frontale. Qu'est-ce que vous appelez une table temporaire...?

    2ème étape:
    *Pour connaître qui est sur ma base.
    Je ne comprends pas le code.
    Je vous explique, j'ai créé une nouvelle base, j'ai créé une table et un formulaire sur cette base comme indiqué sur le tuto.
    J'ai créé et fait toutes les manipulations nécessaires comme indiqué sur le tuto sur le formulaire (zone de texte, commande etc)
    Ensuite j'ai, tout simplement, tout copié/collé le code du module "mdlconnectés".
    Le problème est que je ne vois pas ce que je dois personnaliser dans ce code car je ne pense pas qu'il faille que je le laisse telle quelle.
    Ne serait-ce que renseigner le nom de la base à surveiller, ou je ne sais quoi.
    Comment les PC sont-ils pistés? Par quelle entité sont-ils repérés?
    Autre chose, on me parle de bouton cmdParcourir, mais à aucun moment, on m'a dit de créer un tel bouton? Dois-je le créer sur le même formulaire que les autres boutons (cmdMAJConnectés)?
    Où dois-je insérer le code de la procédure "Sub ==>Form_Timer" de la partie IX-C-2?
    Je ne comprends pas non plus vos code couleurs; que signifie l'écriture en mauve et en rouge?

    Je sais que c'est long et que j'en demande beaucoup mais c'est important pour moi, je veux y arriver.

    Merci d'avance.

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Points : 504
    Points
    504
    Par défaut
    Je répondrais à la question Frontale/Dorsale :

    Por une dorsale, tu peux avoir plusieurs frontales

    La dorsale contiendra les tables et sera placée sur le réseau. Les frontales contiennent les formulaires, requêtes, et sont placées une sur chaque poste utilisateur.

    En gros et pour faire simple, un utilisateur par le biais de la frontale (donc si tu as suivi celle qui est sur son poste), va pouvoir acéder aux informations des tables (qui elles sont dans la dorsale sur le réseau).

  8. #8
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Citation Envoyé par juliojc13
    1ère étape:
    *Pour la fraction de ma base.
    Cela a fonctionné
    >Cependant, je dois importer une table 2 fois par jour.
    Dois-je la mettre dans la base dorsale ou frontale? Quel problème cela peut-il poser?
    Tout dépend de ce que tu fais avec cette table, je pense que les tables importées intérressent tous les utilisateurs => dans base Dorsale.

    Citation Envoyé par juliojc13
    >De plus, beaucoup de tables sont renseignées par des copier/coller.
    Dois-je les mettre dans la base dorsale ou frontale? Quel problème cela peut-il poser?
    idem

    Citation Envoyé par juliojc13
    En gros, je ne comprends par la différence majeure entre la base dorsale et frontale.
    bdd Dorsale => Comporte toutes les tables (données)
    bdd Frontale => contient toute la partie IHM les tables sont liées à la dorsale.

    Citation Envoyé par juliojc13
    Qu'est-ce que vous appelez une table temporaire...?
    Une table temporaire est une table qui est alimentée sur une manipulation précise les données y sont ajoutées, traitées puis éffacées.

    Citation Envoyé par juliojc13
    2ème étape:
    *Pour connaître qui est sur ma base.
    Je ne comprends pas le code.
    Je vous explique, j'ai créé une nouvelle base, j'ai créé une table et un formulaire sur cette base comme indiqué sur le tuto.
    J'ai créé et fait toutes les manipulations nécessaires comme indiqué sur le tuto sur le formulaire (zone de texte, commande etc)
    Ensuite j'ai, tout simplement, tout copié/collé le code du module "mdlconnectés".
    Le problème est que je ne vois pas ce que je dois personnaliser dans ce code car je ne pense pas qu'il faille que je le laisse telle quelle.
    Le code fonctionne tel quel tu n'es pas obligé de le personnalisé

    Citation Envoyé par juliojc13
    Ne serait-ce que renseigner le nom de la base à surveiller, ou je ne sais quoi.
    le nom de la base est sélectionnée par le bouton cmdParcourir qui se situe à la fin de la zone de texte txtChemin

    le code se trouve dans la partie :arrow: IX-C-2. Formulaire de consultation des personnes connectées

    Citation Envoyé par juliojc13
    Comment les PC sont-ils pistés? Par quelle entité sont-ils repérés?
    lorsqu'un personne consulte une table de la bdd Dorsale un fichier ldb est créer, le principe est de lire ce fichier ldb. Ce sont les nom des machines et le user connectés.

    Citation Envoyé par juliojc13
    Autre chose, on me parle de bouton cmdParcourir, mais à aucun moment, on m'a dit de créer un tel bouton? Dois-je le créer sur le même formulaire que les autres boutons (cmdMAJConnectés)?
    c'est vrai je ne parle de création de ce bouton, en fait ce bouton est situé juste après la zone de texte txtChemin, il permet de sélectionner la bdd à surveiller par la boîte de dialogue "Ouvrir" (code de la , le lien se trouve dans le tuto)

    Citation Envoyé par juliojc13
    Où dois-je insérer le code de la procédure "Sub ==>Form_Timer" de la partie IX-C-2?
    sur l'évenement sur Timer du Formulaire (là c'est précisé dans le tuto )

    Citation Envoyé par juliojc13
    Je ne comprends pas non plus vos code couleurs; que signifie l'écriture en mauve et en rouge?
    Ceci est la coloration synthaxique du code vb
    Mauve -> Chaîne de caractère, toujours placée entre guillemets.
    Rouge -> Valeur numérique.

    Citation Envoyé par juliojc13
    Je sais que c'est long et que j'en demande beaucoup mais c'est important pour moi, je veux y arriver.

    Merci d'avance.
    pas de soucis.

    Sinon tu peux télécharger les bases exemples dans le §X.

    Dolphy

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    Merci beaucoup pour votre aide.

    Je vais m'y coller très bientôt et vous donnerai des nouvelles.

    Merci encore, ça fait vraiment plaisir.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    *Incompréhension

    Quand j'appuie sur le bouton de commande MAJ Connectés

    "Erreur de compilation:
    Type défini par l'utilisateur non défini"

    Et il me surligne "DB As Database"

    Cette erreur apparaît quand la case n'est pas cochée.

    quand la case est cochée, rien ne se passe, même pas le message d'erreur.

    **Autre incompréhension

    Quand j'appuie sur le bouton de commande Parcourir

    "Erreur de compilation:
    Sub ou Function non défini"

    Et il me surligne "OuvrirUnFichier"

    Voilà, merci de votre aide.

  11. #11
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Citation Envoyé par juliojc13
    *Incompréhension

    Quand j'appuie sur le bouton de commande MAJ Connectés

    "Erreur de compilation:
    Type défini par l'utilisateur non défini"

    Et il me surligne "DB As Database"

    Cette erreur apparaît quand la case n'est pas cochée.

    quand la case est cochée, rien ne se passe, même pas le message d'erreur.
    il faut cocher la référence Microsoft DAO 3.x Object Library.

    dans le menu outil de l'éditeur VBA -> Références -> Coche la ligne Microsoft DAO 3.x Object Library.


    Citation Envoyé par juliojc13
    **Autre incompréhension

    Quand j'appuie sur le bouton de commande Parcourir

    "Erreur de compilation:
    Sub ou Function non défini"

    Et il me surligne "OuvrirUnFichier"

    Voilà, merci de votre aide.
    tu n'as pas bien lu le tuto, dans IX-C-2 il est précisé qu'il faut ajouter le code de la Afficher la boîte de dialogue ouvrir afin de récupérer le nom et le chemin du fichier sélectionné.

    tu créé un nouveau module et tu colle le code de la sans le modifier.

    Dolphy

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    Tout d'abord merci de votre patience face à un débutant... oui, moi... et merci à tous de votre aide, j'arrive presque au bout!
    Alors, j'y suis presque!! Il reste un petit défaut...
    En effet, je ne comprends pas.
    Je m'explique:
    j'ai fait le test de me connecter à ma base "Alpha" (base perso sur laquelle je veux voir les connectés) tout en me connectant à la base "Administrateur" (celle qui liste les connectés).
    En effet, elle me liste bien, cela fonctionne parfaitement etc... puis je me suis déconnecté de ma base "Alpha" et j'ai refait le test... Oh, surprise, la base "Administrateur" me liste à nouveau!
    Je tiens juste à préciser que ceci n'est pas un problème de rafraîchissement de ma table, j'ai fait le test.

    (Je rappelle que ma base "Alpha" est sur le réseau; sinon la base "Administrateur" fonctionne parfaitement sur les bases hors réseau...)

  13. #13
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Hello,

    c'est un point qui a été soulevé par Renardo et LedZeppII a ammené une réponse :
    http://www.developpez.net/forums/sho...d.php?t=326473

    le code du tuto fonctionne chez moi et dans ma société avec un rafraichissement direct, d'autres personnes (comme toi) n'ont pas le même rendu, je vais étudié le infos de LedZeppII quand j'aurais plus de temps pour l'intégrer dans le tuto.

    Dolphy

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    Aujourd'hui, j'ai réalisé les deux méthodes...

    Méthode de lecture du fichier .ldb:

    Je me suis rendu compte que ça ne fonctionne pas parfaitement de mon côté.
    Je m'explique plus en détails... car j'ai bien testé aujourd'hui...
    Un moment, nous sommes 2 sur ma base "Alpha"... jusque là, tout va bien, la base "Administrateur" me signale bien nos deux PC.
    Ensuite je me suis déconnecté de ma base "Alpha"... Je reteste avec la base "Administrateur", elle me signale toujours mon PC (ce qui n'est pas normal!) et le sien (ce qui est normal car il est toujours connecté!).
    Plus tard, moi, étant toujours déconnecté de ma base "Alpha", un autre individu se connecte à ma base "Alpha" et là, elle me signale toujours mon PC (ce qui n'est toujours pas normal!) et les 2 autres PC (ce qui est normal car ils sont toujours connectés).
    Et là, écoutez bien, un des 2 individus se déconnecte de ma base "Alpha", et là, je resteste avec la base "Administrateur" et devinez ce qu'elle me signale?
    Le PC de l'individu restant connecté (ce qui est normal!) et DEUX FOIS mon PC! Le seul point positif dans ce cas précis, c'est qu'elle m'a bien signalé que l'autre individu s'était déconnecté...^^
    Mystère et boule de gomme! Affaire à suivre...

    PS: j'ai ouvert le fichier .ldb avec notepad. Le code lit bien ce qu'il y a dans ce fichier... Cette méthode de lecture du fichier .ldb n'est donc pas efficace à 100%.

    **********************************************************

    Méthode par ADO:

    Cela fonctionne bien de mon côté pour le moment.
    J'ai, d'ailleurs, associé à ce code une zone de liste et un bouton de commande pour mettre à jour la liste des connectés sur mon interface.
    Je tiens juste à signaler 2 points négatifs auxquels vous pourrez peut-être trouver des solutions:

    >Le code n'est pas modulable ou plutôt n'est pas évolutif... Je m'explique...
    COMPUTER_USER, dans cette colonne, s'affichent les noms de PC.
    Ce que je voudrais faire, c'est que, dans ma zone de liste, s'affichent plutôt les noms des utilisateurs.
    Pour cela, j'ai créé une table avec les correspondances noms de PC<>noms des utilisateurs mais ensuite, je n'arrive pas à manipuler pour qu'au final, elle me renseigne les noms des utilisateurs...
    Ouvert à toute solution!

    >J'aimerais également éviter les doublons de noms de PC dans ma zone de liste. Car, d'après ce qui a été dit et qui s'est vérifié aussi de mon côté, on voit une connexion supplémentaire car le code en ouvre une! En effet, dans mon cas, mon nom de PC s'affiche par deux fois...
    Ouvert à toute solution!

    Voilà, merci d'avance.

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    Bonsoir,

    La discussion à propos de ce sujet, continue ici:

    http://www.developpez.net/forums/sho...d.php?t=326473

    Merci.

Discussions similaires

  1. [AC-2007] Savoir qui est sur la base
    Par Disco91 dans le forum Access
    Réponses: 6
    Dernier message: 27/02/2014, 20h43
  2. Réponses: 1
    Dernier message: 15/05/2008, 18h45
  3. Insérer un lien vers un swf qui est sur un autre site
    Par sebinator dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/02/2008, 09h56
  4. [Système] Savoir qui est connecté en ce moment
    Par sourivore dans le forum Langage
    Réponses: 13
    Dernier message: 12/06/2006, 17h05
  5. Réponses: 5
    Dernier message: 10/01/2006, 17h23

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