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 :

Affecter une valeur globale à un champ


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Billets dans le blog
    1
    Par défaut Affecter une valeur globale à un champ
    bonjour,
    j'ai posté sur le forum sécurité ceci http://www.developpez.net/forums/sho...d.php?t=493370
    Mais comme ça s'est transformé en pb de code voilà la suite!
    pour résumer : j'ai un formulaire de connexion tout simple pour se connecter à la base avec un nom et mot de passe
    je veux récupérer le nom de la personne qui se connecte dans une variable et l'utiliser à ma guise tant que ma base est ouverte
    j'ai déclaré une variable globale dans un module:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Option Compare Database
    Global User_id As String
    et dans mon formulaire de connexion sur l'évènement clic du bouton je veux attribuer le nom saisi dans le txt_user à User_id
    code du bouton

    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
    Private Sub Commande4_Click()
    Me.Requery
    Dim sql As String
    Dim rs As DAO.Recordset
    Static i As Byte
    sql = "SELECT * FROM T_USERS WHERE Prénom = '" & Me.txt_user & "' AND Motdepasse ='" & Me.txt_pass & "';"
    txt_user = Me.User_id
    Set rs = CurrentDb.OpenRecordset(sql)
    If Not rs.EOF Then
      DoCmd.OpenForm "menu", acNormal, , , , acWindowNormal
      DoCmd.Close acForm, "Formulaire2"
    Else
      MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
      i = i + 1
    End If
    If i = 3 Then
    MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
    DoCmd.Quit
    End If
    End Sub
    Mais ce code me renvoi une erreur depuis que j'ai écrit txt_user = Me.User_id
    qqn a-t-il une idée? Merci

  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 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    bonjour,
    j'aurais plutot eu tendance à utiliser la propriété Public sur la variable User_id.
    D'autre part, tu sembles utiliser un peu dans tous les sens les Me.XXX et XXX directement. Attention à bien faire la distinction d'une part. Et pour simplifier la compréhension à terme d'autre part, je te recommande de ne pas utiliser des noms de variables dans tes modules identiques aux noms des contrôles dans tes formulaires, ce qui pourrait être ici à l'origine des dysfonctionnements constatés.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Billets dans le blog
    1
    Par défaut
    Ca y est j'ai trouvé mes erreurs et ça marche
    j'ai changé le global en public
    je n'arrivais pas à attribué la valeur de mon controle à ma variable car mon code n'étais pas bon (j'avais oublié le .value du controle!)

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

Discussions similaires

  1. [AC-2000] Affecter une valeur nulle à un champs
    Par forges dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/04/2012, 08h57
  2. Affecter une valeur dans un champ
    Par cicubea dans le forum VBA Access
    Réponses: 2
    Dernier message: 02/08/2007, 23h28
  3. Réponses: 3
    Dernier message: 18/07/2006, 11h17
  4. Réponses: 2
    Dernier message: 09/04/2006, 11h45
  5. Réponses: 4
    Dernier message: 02/11/2005, 19h58

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