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

Macros et VBA Excel Discussion :

Recuperation Valeur entre UserForms


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2010
    Messages : 142
    Par défaut Recuperation Valeur entre UserForms
    Bonjour
    Je reviens vers le forum pour vous demander conseil à propos de la recuperation d'une valeur d'une UserForm à une autre.
    Lors du lancement de l'application Excel, This Workbook:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    UserForm_mdp.Show
    End Sub
    L'utilisatiteur doit, en effet, s'identifier pour acceder à l'application (tt un dispositif a été mis au point pour ça).
    Or, ce que je souhaiterais faire, c'est enregistrer l'historique des actions de l'utilisateur sur une BD contenant une table qui se compose des champs : Login,Operation,When.
    Login as string
    operation as string
    when as date (avec la date=maintenant() ).

    Jusqu'ici, aucun soucis, dés validation de l'identification, un nouveau champs est ajouté à la BD indiquant l'action :"Connexion à l'application", avec le nom de l'utilisateur aussi.

    Or ! L'application dispose de plusieurs autres bouton, et quand je voudrais refaire cette action (d'enregistrement sur la BD), avec le meme login, ceci ne s'effectue pas !

    Voila mon code pour l'enregistrement dans la BD :
    Dans un module:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Function histo(op As String)
    Set rst1 = cnx.OpenRecordSet("SELECT * FROM Operations;")
        rst1.AddNew
        rst1.fields("login") = UserForm_mdp.ComboBox_login.Value
        rst1.fields("Operation") = op
        rst1.Update
    End Function
    Si vous avez des idées ou plus de questions, je suis à disposition !

  2. #2
    Membre expérimenté
    Homme Profil pro
    Technicien Méthodes
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Par défaut
    Bonjour,

    Déclare une variable de portée projet en en-tete de module

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public NomOperateur as string
    Tu initialise ensuite cette variable avec ton Usf de login.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomOperateur = login.value ' a adapter à ton Usf
    Cette variable conservera sa valeur tant que le classeur est ouvert, elle pourra donc etre réutiliser par tes autres procédures.

    bonne journée

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2010
    Messages : 142
    Par défaut
    Merci pour cette reponse qui m'a un peu plus eclaircie sur le sujet.

    Du coup, la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Function histo(op As String)
    Set rst1 = cnx.OpenRecordSet("SELECT * FROM Operations;")
        rst1.AddNew
        rst1.fields("login") = UserForm_mdp.ComboBox_login.Value
        rst1.fields("Operation") = op
        rst1.Update
    End Function
    ne devra plus etre dans un module, mais dans chaque Usf non?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour sur le forum!
    Sur la feuille module:
    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
    Option Explicit
     
    Public cnx As New ADODBRD
    Public wrk As Workbook
     
    Public rst
    Public rst1
    Public rst2
    Public rst3
    Public rst4
    Public rst5
    Public rst6
    Public Rs
    Public rd
     
    Public Sql As String
    Public Sql1 As String
    Public Sql2 As String
    Public Sql3 As String
    Public Sql4 As String
    Public Sql5 As String
    Public Sql6 As String
     
    Public Rep As String
    Public nomfich As String
    Public choix As String
     
    Public I As Integer
     
    Public IMois As Long
    Public MesMois As New ClsMois
    Public CollectionMois As New Collection
    Public MoisExiste As String
    Public leMois As String
    Public Login As String
     
    Sub connexion()
    Rep = ActiveWorkbook.Path
    cnx.TYPEBASE = 4
    cnx.PassWord = "??"
    cnx.Fichier = "??"
    End Sub
     
    Public Function histo(op As String)
    Dim Sql As String
    Sql = "INSERT INTO Operations (login,Operation) values('"
    Sql = Sql & Login & "','"
    Sql = Sql & op & "');"
    cnx.Execute Sql
    End Function
    sur UserForm_mdp:
    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
    Private Sub cmd_valider_Click()
    Dim mdp As String
     
    Login = ComboBox_login.Value
    mdp = TextBox_mdp.Value
     
    Set rst = cnx.OpenRecordSet("SELECT * FROM Users WHERE login Like '" & ComboBox_login.Value & "' AND mdp='" & TextBox_mdp.Value & "'")
    If rst.EOF = False Then
           MsgBox ("Identification Réussie"), vbOKOnly, "Welcome"
            Unload Me
    Else
        MsgBox ("Erreur identification, veuillez réessayer"), vbCritical, "Erreur"
        TextBox_mdp.Value = ""
    End If
    End Sub
    ensuit quand tu en as besoin,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    histo "Condition Details"
    histo "Conditions Overview"
    histo "Number of <UB>"
    histo "Promotions OverView"
    histo "Promotion Details"
    histo "Exit"

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

Discussions similaires

  1. [sgbd] Recuperer valeurs d'un Select dans un tableau
    Par Mu_Belier dans le forum SGBD
    Réponses: 16
    Dernier message: 27/05/2005, 15h46
  2. [STRUTS] Recuperer valeurs d'une url enrichi ?
    Par Ev3rGlide dans le forum Struts 1
    Réponses: 3
    Dernier message: 07/04/2005, 11h39
  3. transfert de valeurs entre fonctions js et asp
    Par ericmart dans le forum ASP
    Réponses: 5
    Dernier message: 10/03/2005, 16h18
  4. Passage de valeurs entre fenêtres différentes
    Par Amnesiak dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/02/2005, 15h10
  5. [DateTimePicker]Recuperation valeur date
    Par jane2002 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 11/02/2003, 11h29

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