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

IHM Discussion :

empecher l'ouverture sur plusieurs ordinateurs d'un même utilisateur d'une base fractionnée


Sujet :

IHM

  1. #1
    Membre régulier Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Points : 101
    Points
    101
    Par défaut empecher l'ouverture sur plusieurs ordinateurs d'un même utilisateur d'une base fractionnée
    Bonjour,

    j'ai une base fractionnée avec plusieurs utilisateurs, les utilisateurs se connectent avec IDENTIFIANT et MDP

    je voudrais empêcher qu'un même utilisateur se connecte avec son identifiant sur plusieurs ordinateurs (auquel cas l'identifiant et le MDP ne servent à rien.)

    j'ai un formulaire F_UTISIATEUR qui recueille IDENTIFIANT et MDP

    lorsque j'ouvre la base j'ai un formulaire F_IDENTIFIANT qui demande IDENTIFIANT et MDP et à la validation

    les données sont recueillies dans une table T_UTILISATEUR contenant 2 champs ID et DATE_HEURE.

    Comment pourrai-je faire ? en rajoutant un champ (genre compteur) ? je n'ai aucune idée

    je vous mets le procédure que j'ai actuellement

    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
    62
    63
    64
    65
    66
    67
    68
    Private Sub VALIDER_Click()
     
     
     
     
        'Appel d'une variable
        Dim valide As String
        'Rechercher le mot de passe correspondant à l'identifiant
        If IsNull(DLookup("MDP", "T_UTILISATEUR", "[ID] = Forms!F_IDENTIFICATION!TXTID")) Then
        MsgBox ("Identifiant inconnu !")
         Me.TXTID.SetFocus
         Me.TXTID = ""
        Else
         valide = DLookup("MDP", "T_UTILISATEUR", "[ID] = Forms!F_IDENTIFICATION!TXTID")
        'Si le mot de passe inscrit n'est pas correct alors
        If (Me!MDP <> valide) Or IsNull(Me!TXTID) Or IsNull(Me!MDP) Then
        'Message
        MsgBox ("Mot de Passe incorrect !")
         Me.MDP.SetFocus
           Me.MDP = ""
            'Sinon
     
           Else
     
     
         securite = DLookup("Utilisateur", "T_UTILISATEUR", "[ID] = Forms!F_IDENTIFICATION!TXTID")
     
           Select Case securite
     
             Case "ADMIN"
             'DoCmd.Close acForm, "F_IDENTIFICATION"
             DoCmd.OpenForm "F_MENU"
     
             Case "GESTPRIN"
             'DoCmd.Close acForm, "F_IDENTIFICATION"
             DoCmd.OpenForm "F_MENU"
     
     
               Case "GESTSEC"
              ' Forms![F_IDENTIFICATION].Visible = False
              'DoCmd.Close acForm, "F_IDENTIFICATION"
              DoCmd.OpenForm "F_MENU"
     
     
     
          Case Else
           End Select      
     
     
    End If
    End If
     
     
        DoCmd.SetWarnings False
            'Appel d'une variable
            Dim Insert As String
     
            'Insérer dans la table T_Connexion l'identifiant et la date et heure de connexion
            Insert = "INSERT INTO T_Connexion ([ID], DATE_HEURE) " _
                        & "SELECT '" & Me!TXTID & "',#" & Now & "#"
            'Active la variable
            DoCmd.RunSQL (Insert)
            'Réactive les warnings DoCmd.RunSQL (Insert)
            DoCmd.SetWarnings True
            'Fermer le formulaire
     
     
    End Sub
    merci de votre aide

    cordialement
    A star is dead

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    589
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 589
    Points : 1 085
    Points
    1 085
    Par défaut
    Bonjour,

    Je rajouterais dans ta table T_UTILISATEUR un champ Oui/Non.

    Tu tests ce champ si il est vide (false) donc pas connect2 tu mets à oui et tu valides la connexion, si le champ est à vrai tu refuses la connexion.

    Il faut juste le mettre à false lorsqu'il quitte Access.

    ONTAYG

  3. #3
    Membre régulier Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Points : 101
    Points
    101
    Par défaut
    Bonsoir et merci ONTAIG

    je vais tester celà


    cordialement
    A star is dead

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Bonjour,

    Tout d'abord je ne saurais trop te conseiller d'abandonner

    Citation Envoyé par lio62 Voir le message
    DoCmd.SetWarnings False
    DoCmd.RunSQL (Insert)
    DoCmd.SetWarnings True
    Et de le remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.Execute insert, dbFailOnError
    Cela permet d'avoir une gestion d'erreur plutot que de laisser les bugs proliférer...

    Ensuite il est important de prendre en compte qu'autant il est facile de voir "entrer" un utilisateur" lorsqu'il s'identifie, autant il arrive très souvent qu'il sorte sans le dire (bug, fermeture intempestive...). Le controle que tu souhaites mettre en place va donc très souvent bloquer des gens qui ne sont plus sur le logiciel mais qui sont encore vus comme tels dans la table. Pour éviter cela je ne vois pas d'autre solution que d'analyser le fichier .laccdb qui seul sait qui est réellement connecté ou non.
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  5. #5
    Membre régulier Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Points : 101
    Points
    101
    Par défaut
    Bonjour,

    j'ai ajouter une case a cocher dans la table T_UTILISATEUR et une case a cocher qui se nomme "CONNECT" et j'ai mis le code en bleu ci dessous maintenant j'ai une erreur de compilation, membre de methode ou de donnees introuvables



    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    Private Sub VALIDER_Click()
     
     
     
     
        'Appel d'une variable
        Dim valide As String
        'Rechercher le mot de passe correspondant à l'identifiant
        If IsNull(DLookup("MDP", "T_UTILISATEUR", "[ID] = Forms!F_IDENTIFICATION!TXTID")) Then
        MsgBox ("Identifiant inconnu !")
         Me.TXTID.SetFocus
         Me.TXTID = ""
        Else
         valide = DLookup("MDP", "T_UTILISATEUR", "[ID] = Forms!F_IDENTIFICATION!TXTID")
        'Si le mot de passe inscrit n'est pas correct alors
        If (Me!MDP <> valide) Or IsNull(Me!TXTID) Or IsNull(Me!MDP) Then
        'Message
        MsgBox ("Mot de Passe incorrect !")
         Me.MDP.SetFocus
           Me.MDP = ""
            'Sinon
     
           Else
     
     
         securite = DLookup("Utilisateur", "T_UTILISATEUR", "[ID] = Forms!F_IDENTIFICATION!TXTID")
     
           Select Case securite
     
             Case "ADMIN"
             'DoCmd.Close acForm, "F_IDENTIFICATION"
             DoCmd.OpenForm "F_MENU"
     
             Case "GESTPRIN"
             'DoCmd.Close acForm, "F_IDENTIFICATION"
             DoCmd.OpenForm "F_MENU"
     
     
               Case "GESTSEC"
    
    If Me.Connect = False Then
               
                       Me.Connect = True
                       Else
                       MsgBox "deja connecté ", vbInformation
                       
                       End If
    
              ' Forms![F_IDENTIFICATION].Visible = False
              'DoCmd.Close acForm, "F_IDENTIFICATION"
              DoCmd.OpenForm "F_MENU"
     
     
     
          Case Else
           End Select      
     
     
    End If
    End If
     
     
        DoCmd.SetWarnings False
            'Appel d'une variable
            Dim Insert As String
     
            'Insérer dans la table T_Connexion l'identifiant et la date et heure de connexion
            Insert = "INSERT INTO T_Connexion ([ID], DATE_HEURE) " _
                        & "SELECT '" & Me!TXTID & "',#" & Now & "#"
            'Active la variable
            DoCmd.RunSQL (Insert)
            'Réactive les warnings DoCmd.RunSQL (Insert)
            DoCmd.SetWarnings True
            'Fermer le formulaire
     
     
    End Sub
    cordialement
    A star is dead

  6. #6
    Membre régulier Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Points : 101
    Points
    101
    Par défaut
    Bonjour et merci de ton aide NICO84

    mais comment analyse t on le fichier laccdb? je n'en n'ai aucune idée si je veux l'ouvrir avec le bloc note je n'ai que des hiéroglyphes ?

    CDLT
    A star is dead

  7. #7
    Membre régulier Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Points : 101
    Points
    101
    Par défaut
    j'ai oublié de preciser je suis sur une base fractionnée
    A star is dead

  8. #8
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Citation Envoyé par lio62 Voir le message
    mais comment analyse t on le fichier laccdb? je n'en n'ai aucune idée si je veux l'ouvrir avec le bloc note je n'ai que des hiéroglyphes ?
    Avec notepad++ c'est plus explicite mais j'insiste sur le fait que c'est plus complexe que ça en a l'air et avec juste un booleen ça va bloquer tout le temps
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  9. #9
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Citation Envoyé par lio62 Voir le message
    j'ai oublié de preciser je suis sur une base fractionnée
    Est-ce que la frontale est dupliquée sur les PC utilisateurs ? Si oui il faut regarder la connexion à la dorsale, sinon à la frontale
    Attention si la frontale est ouverte sans afficher de données, la dorsale ne voit pas l'utilisateur
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  10. #10
    Membre régulier Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Points : 101
    Points
    101
    Par défaut
    oui la frontale est dupliquée sur les PC utilisateurs
    A star is dead

  11. #11
    Membre régulier Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Points : 101
    Points
    101
    Par défaut
    voila ce que j'ai avec notepad

    DESKTOP-80U5T86 Admin
    alors là je ne connais pas du tout
    A star is dead

  12. #12
    Membre éprouvé
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    589
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 589
    Points : 1 085
    Points
    1 085
    Par défaut
    Re

    C'est le nom du PC qui est connecté.

    Il existe un petit outil, mais je ne sais pas s'il est toujours d'actualité : https://argyronet.developpez.com/dow.../mdbviewer/v4/


    ET

    https://arkham46.developpez.com/arti...lisateurs-ldb/

    ONTAYG

  13. #13
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Le nom du PC connecté se trouve en VBA grâce à la fonction Environ("computername"), le login avec environ("username")

    Si le fichier .laccdb contient plusieurs fois Environ("computername") c'est que la connexion en cours est un doublon sur ce PC
    Par contre le nom du login est souvent incorrect apparemment : le fichier contient "Admin" et non le log windows, encore moins le nom de l'utilisateur du logiciel

    Au final je ne vois donc pas de solution fiable pour répondre au problème posé. Je le fais à titre informatif mais sans blocage car malgré tous mes efforts j'ai 7% de déconnexions fantômes
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  14. #14
    Membre régulier Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Points : 101
    Points
    101
    Par défaut
    merci a tous pour vos réponses, la je suis dépassé.


    J' ai fait ca pour le formulaire (mais ca ne sert a rien)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     If Me.Cocher20.Value = False Then
     
    Me.Cocher20.Value = True
    Else'MsgBox "deja connecté ", vbInformation
    End If
    mais pour qu'il vienne me cocher la case a cocher CONNECT sur la table T_UTILISATEUR, je ne trouve pas la syntaxe

    merci de votre aide

    cdlt
    A star is dead

Discussions similaires

  1. Synchronisation sur plusieurs ordinateurs
    Par Dark-slade dans le forum Microsoft Office
    Réponses: 0
    Dernier message: 29/05/2020, 02h11
  2. Réponses: 14
    Dernier message: 07/07/2018, 18h56
  3. [LibreOffice][Texte] retrouver les raccourcis clavier writer sur plusieurs ordinateurs
    Par jp.arnoud dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 13/06/2017, 18h59
  4. installer un logiciel sur plusieurs ordinateurs d'un domaine
    Par pacifiquement dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 30/12/2014, 16h55
  5. Installer Ubuntu sur plusieurs ordinateurs
    Par n99ky dans le forum Ubuntu
    Réponses: 3
    Dernier message: 03/03/2011, 08h33

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