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

Access Discussion :

Vider une table a une fermeture subite


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 14
    Points : 12
    Points
    12
    Par défaut Vider une table a une fermeture subite
    Bonjour a tous,

    j'ai un formulaire qui a chaque fois qu'un usager entre dedans, son nom est inscrit dans une table nommé TEMPO
    Lorsque l'usager clique sur le bouton Quitter dans le formulaire, son nom dans la table TEMPO s'efface et quitte donc le formulaire ou l'application Access.

    Mon probleme, c'est que si jamais l'application se ferme subitement ou que l'usager utilise un CTRL+ATL+DEL pour quitter l'application au lieu de qcliquer sur le bouton Quitter dans le formulaire, son nom reste dans la table TEMPO, et cela empeche donc le prochain utilisateur de rentrer dans le formulaire car un usager peut rentrer dans le formulaire la fois et lui dit donc qu'il y a deja un usager dans la base.

    Comment faire svp pour vider automatiquement la table TEMPO si l'usager quitte subitement l'application sans utliser le bouton quitter.
    Merci de votre aide !

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 62
    Points : 38
    Points
    38
    Par défaut
    Salut,

    Oui tu peux pallier ton problème en vidant tout simplement ta table à l'ouverture de ton application ou de ton formulaire de démarrage..(Ca marche pour mon apply où j'avais le même problème !)

    Sinon il doit y avoir un moyen en reconnaissant la fermeture de ta base; mais je ne suis pas encore là , désolé

    HookerSeven

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Salut,

    merci pour ta reponse mais malheureuseusement je ne peux pas faire cela, car si jamais je vide ma table a l'ouverture, plusieurs utilisateurs pourront rentrer en meme temps dans le formulaire et c'est ca que je ne veux pas.

    je veux juste vider la table lorsque l'application se ferme mal, car meme si c'est le meme utilisateur qui essaie de re-entrer dans le formulaire, le systeme lui dira qu'il y a deja quelqu'un dedans tu comprends.

    merci pour ton aide quand meme !

  4. #4
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    ben ...
    essaie de vérifier que l'utilisateur actuellement mentionné dans la table est réellement connecté...

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Salut Maxence,

    desole pour mon manque de connaissance, mais peux tu me dire comment faire pour verifier si l'utilisateur est reeelement connecté?

    car le systeme le reconnait connecte des que son nom est dans le champ de la table et je dois manuellement le supprimer pour qu'il puisse re-entrer dans le formulaire.

    Merci !

  6. #6
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Dans un module tout vierge, tu colles ceci :

    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
    Option Compare Database
    Option Explicit
     
    'Définition d'un type pour l'enregistrement de lecture du LDB
    Type record
        ComputerName As String * 32
        UserName As String * 32
    End Type
     
    'Variable pour les utilisateurs connectés
    Dim ConnectedUsers() As String
     
    Private Sub GetUserConnected()
        'Procédure pour définir la liste des utilisateurs connectés
        Dim s As String     'Variable pour la chaine (path du LDB)
        Dim l As Long       'Variable pour un numérique (n° de fichier ou len du path)
        Dim r As record     'Variable pour l'enregistrement
        Dim i As Long       'Variable de compteur
     
        'Définition du path du LDB
        s = CurrentDb.Name
        l = Len(s) - 2
        Mid(s, l, 3) = "ldb"
     
        'Lecture des enregistrements du fichier et remplissage de la variable ConnectedUsers
        l = FreeFile
        Open s For Random Access Read As #l Len = Len(r)
        ReDim ConnectedUsers(0)
        Do Until EOF(l)
            Get #l, , r
            ReDim Preserve ConnectedUsers(i)
            ConnectedUsers(i) = Left(r.UserName, InStr(r.UserName, Chr(0)) - 1)
            i = i + 1
        Loop
        Close
    End Sub
     
    Public Function IsUserConnected(ByVal sUserName As String) As Boolean
        'fonction pour définir si un utilisateur est connecté à la base de données en cours
        'Argument : nom de l'utilisateur à tester
        Dim i As Long   'Variable pour la boucle
        GetUserConnected
        For i = LBound(ConnectedUsers) To UBound(ConnectedUsers)
            If sUserName = ConnectedUsers(i) Then
                IsUserConnected = True
                Exit Function
            Else
                'on continue les tests
            End If
        Next
    End Function
    Pour utiliser ce code, tu peux, par exemple faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If IsUserConnected (UserName) then
        .....
        .....
        .....
    Else
        .....
        .....
    End if

    ce n'est pas du sûr à 100% ...
    Il y a d'autres solutions...
    Mais déjà, avec ça, tu as de quoi faire

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup pour ton aide !!!

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

Discussions similaires

  1. 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, 10h17
  2. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  3. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  4. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  5. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50

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