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 :

Erreur d'exécution 2467


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 43
    Points : 30
    Points
    30
    Par défaut Erreur d'exécution 2467
    Bonjour,

    Pour gérer le mot de passe des utilisateurs qui utilisent la base de données, j'ai créer le code suivant:
    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
    Set bd = CurrentDb
    Set T = bd.OpenRecordset("Identification")
     
    If IsNull(Me.TXT1) And IsNull(Me.TXT2) Then
        MsgBox "Tapez un nom d'utilisateur et/ou le mot de passe !", vbInformation
        Exit Sub
    End If
     
    Do While Not T.EOF
            If T.Fields(1) = TXT1.Value Then
            If T.Fields(2) = TXT2.Value Then
     
                DoCmd.Close
                blnPasswordOK = True
            Else
                MsgBox "Mot de passe incorrect !!!", vbCritical, "Attention..."
                GoTo Fin:
            End If
        End If
        T.MoveNext
    Loop
    Fin:
    Mais ça fonctionne pas

    il me donne le msg suivant: " Erreur d'exécution 2467, l'expression entrée fait référence à un objet ou fermé ou supprimé " en selectionnant la ligne "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If T.Fields(1) = TXT1.Value Then
    "

    Ma table Identification est déjà rempli en noms des utilisateurs et leurs mot de passe.

  2. #2
    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
    Bonsoir,

    Il n'y a pas grand chose de bon dans tout ça

    ligne 4 : isnull ... OR isnull ...

    ligne 13 : docmd.close, suivi ligne 20 de t.movenext

    ligne 16 : "mot de passe incorrect" alors qu'on n'est pas nécéssairement sur le bon user !

    En fait, le goto fin doit être réservé au cas où le log et le mdp sont corrects et si AUCUN n'est correct > "mdp incorrect"

    Enfin, il serait plus judicieux de chercher directement le bon login dans la table et de vérifier son mdp avec un Dlookup sans lire toutes les lignes

  3. #3
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 745
    Points : 57 563
    Points
    57 563
    Billets dans le blog
    42
    Par défaut
    Bonsoir Miss,

    il y a plusieurs petites choses qui ne vont pas mais tu as un exemple tout fait dans la FAQ qui devrait t'inspirer:

    Comment concevoir un formulaire login/mot de passe ?


    Le principe consiste à ouvrir un recordset non pas sur la table entière mais sur une requête, ce qui donnerait un truc à adapter comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sql = "SELECT * FROM identification WHERE login= '" & TXT1.value & "' AND motdepasse ='" & TXT2.value & "';"
    Set T = bd.OpenRecordset(sql)
    [Edit] ...et nico qui était déjà passé par là, salut Nico ! [/Edit]

Discussions similaires

  1. [JVM][8.1.7] Erreur d'exécution de initjvm.sql
    Par Escuzze dans le forum Oracle
    Réponses: 4
    Dernier message: 01/07/2005, 15h39
  2. Message d'erreur à l'exécution d'une install
    Par titof dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 22/03/2005, 11h20
  3. [CR8][VB6] Erreur d'exécution 20533
    Par pvava dans le forum SDK
    Réponses: 1
    Dernier message: 01/02/2005, 10h27
  4. Erreurs d'exécution sous delphi 5
    Par nkd dans le forum Langage
    Réponses: 3
    Dernier message: 06/11/2004, 17h25
  5. [Apache Perl] Erreur à l'exécution de mes cgi
    Par GLDavid dans le forum Apache
    Réponses: 4
    Dernier message: 28/08/2004, 20h23

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