Variable public garde la méme valeur

bonjour,
j'ai un problème de renouvellement de connexion.
j'ai deux formes
dans la forme 1( frmlogin)j'ai un variable public
Public niveau
dans la forme 2( frmglobale) on a recuperation de variable public

Private Sub Form_Load()

If frmlogin.niveau = 1 Then
cmdadmin.Enabled = False
cmdchanger.Enabled = False

Else
If frmlogin.niveau = 2 Then
cmdadmin.Enabled = False
cmdchanger.Enabled = False
cmdcrea.Enabled = False
cmdevolution.Enabled = False
cmddemandederog.Enabled = False

End If
End If

End Sub

ça marche

si j'ai déconnecté

frmlogin.Show
frmglobale.Hide

lors de deuxième connexion j'ai modifiée les donnes.
l'application affiche l'ancienne variable public .
merci d'avence

3 réponses

  1. bonjour,
    mon code (from login) est la suite:

    Dim Baseaccess As Connection

    Dim Recconnexion As Recordset
    Public niveau

    Private Sub Cmdvalider_Click()
    Set Recconnexion = New Recordset
    Recconnexion.Open "SELECT * from Utilisateur where Identifiant='" & txtlogin.TEXT & "'", Baseaccess, adOpenStatic, adLockOptimistic

    If Recconnexion.EOF = False Then
    If (txtmotdepasse = Recconnexion.Fields("mot_de_passe")) Then

    niveau = New Recordset
    niveau = Recconnexion.Fields("Niveau")
    Text1.TEXT = niveau
    frmglobale.Show vbModeless
    frmlogin.Hide

    frmmotdepasse.Command1.Caption = Recconnexion.Fields("Identifiant")
    frmmotdepasse.Command2.Caption = Recconnexion.Fields("Nom_Prénom")
    frmmotdepasse.Command3.Caption = Recconnexion.Fields("Niveau")
    frmcreation1.txtid.TEXT = Recconnexion.Fields("Nom_Prénom")
    frmevolution1.cmdid.Caption = Recconnexion.Fields("Nom_Prénom")

    Else

    MsgBox "Erreur : Mot de passe incorrecte.Veuillez ressaisir", 16, "Connexion"
    txtlogin = ""
    txtmotdepasse = ""
    txtlogin.SetFocus
    End If

    Else
    MsgBox "Erreur : Login incorrecte.Veuillez ressaisir", 16, "Connexion"
    txtlogin = ""
    txtmotdepasse = ""
    txtlogin.SetFocus
    End If

    End Sub
    merci d'avancer
    1. Re,

      frmGlobale:
      vu que vous prenez l'evenement Form_Load, il faut utiliser Unload Me pour la sortie de cette frm.

      si vous aviez utilise l'evenement Form_Activate alors ME.Hide serait Ok. Le .hide fait que la form est toujours en memoire, donc le pointeur de programme ne repasse pas dans l'evenement from_Load vu que la form n'a pas ete "unloadee"(dechargee de la memoire)