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 :

Indiquer dans un formulaire la date de dernière connexion [AC-2016]


Sujet :

VBA Access

  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Par défaut Indiquer dans un formulaire la date de dernière connexion
    Bonjour la communauté,

    j'espère que vous allez bien par ce grand froid.

    Je me tourne vers vous, car je n'arrive pas à trouver une réponse à une de mes questions sur internet.

    Je souhaiterais indiquer dans mon formulaire de tableau de bord, la date de ma dernière connexion sur ma base de données.

    Je me suis demandé s'il n'existait pas une solution alternative, en indiquant la date lorsqu'on a fermé la base de données via un code VBA.

    Le but est d'obtenir dans mon formulaire la phrase suivante " Dernière connexion le XX février 2018".

    Merci aux internautes qui m'apporteront leurs sciences, et leurs savoirs sur Access.

    Dans l'attente de vous lire, bonne journée à vous.

    Bien cordialement,
    Benjamin.

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Par défaut
    Bonsoir

    1 Il faut mettre un champ dans une table pour conserver la date du jour
    2 créer une requête Mise à jour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE NomTable SET NomTable .DernièreUtilisation = Date()
    WHERE (((NomTable .Id)=1));
    3 exécuter la requête lors de la fermeture du formulaire principal ou d'accueil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_Close()
        ...  
        DoCmd.SetWarnings False
        DoCmd.OpenQuery "r_DernièreUtilisation"
        DoCmd.SetWarnings True
        ...
    End Sub
    Tu peux ainsi récupérer la valeur pour l'affecter à une Zone de Texte


    Titi95

  3. #3
    Membre Expert Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Par défaut
    Outre la solution donnée par Titi95, il existe d'autres solutions alternatives. En utilisant la fonction "NOW()", par exemple, tu peux la stocker dans un table ou l'afficher sur ton formulaire, ça te donnera une piste à exploiter; Tu peux aussi exploiter la fonction "LastUpdated" ou "LastModified".

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Par défaut
    Bonjour Zekraoui_Jakani

    Outre la solution donnée par Titi95, il existe d'autres solutions alternatives. En utilisant la fonction "NOW()", par exemple, tu peux la stocker dans un table ou l'afficher sur ton formulaire, ça te donnera une piste à exploiter
    Je ne vois pas la différence avec ma proposition qui est de : stocker la date du jour dans une table pour pouvoir la récupérer à l'ouverture. ???

    Titi95

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Par défaut
    Citation Envoyé par titi95 Voir le message
    Bonsoir

    1 Il faut mettre un champ dans une table pour conserver la date du jour
    2 créer une requête Mise à jour

    3 exécuter la requête lors de la fermeture du formulaire principal ou d'accueil


    Tu peux ainsi récupérer la valeur pour l'affecter à une Zone de Texte


    Titi95
    Bonsoir à vous,

    alors j'ai essayé de suivre ta démarche Titi95.

    Dans un premier temps j'ai créé ma table "T_DerCox" avec une clé primaire Id et un autre champ nommé "DerUtilisation" avec un type de données "Texte court".

    Dans un second temps, j'ai créé ma requête de mise à jour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE T_DerCox SET T_DerCox.DerUtilisation = Date()
    WHERE (((T_DerCox.Id)=0));
    Et dans un troisième temps, je me demande s'il faut créé un module ou intégrer le VBA dans une procédure évènementielle du champ texte ?

    Je vous remercie pour votre aide.

    Bien cordialement,
    Benjamin.

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Par défaut
    Bonsoir

    Il faut créer un premier enregistrement dans la table avec une date "bidon".

    Dans ta requête il faut tester la valeur de l'ID ce CET enregistrement. Tu as mis 0 actuellement. Vérifie.
    En effet, si l'ID est en Num Auto, il est égal à 1.

    Pour la suite, un petit rappel :
    Tu fait exécuter ta requête au moment de la fermeture du dernier formulaire (en général Accueil, présentation...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_Close()
        ...  
        DoCmd.SetWarnings False
        DoCmd.OpenQuery "r_DernièreUtilisation"
        DoCmd.SetWarnings True
        ...
    End Sub
    A chaque fermeture, la date du jour va venir écraser la précédente (toujours dans le 1er enregistrement de la table)

    Ainsi tu peux récupérer cette date dans la table, par exemple sur le formulaire d'accueil de ta base. Dis moi où.

    Titi95

  7. #7
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2012
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 93
    Par défaut
    A part créer une table locale (cad dans le cas de l'utilisation d'une base dorsale) qui enregistre les dates (et les heures si tu veux) de la dernière connexion, y a pas d'autres solutions a ma connaissance.

    C'est une très simple table, d'un champs unique de type Date, sans avoir besoin d'une clé primaire, et sa modification se fait a l'ouverture de la base ou du formulaire en question,
    l’édition du champs se fait soit en sql soit en VBA (recordsets)
    et tu crée une fonction de type DateDernConx = Dlookup("NomDuChampsDate", "NomDeTaTable"), même pas besoin de mettre nz, car on est sûr d'avoir toujours une date valide dans ce champs
    et dans ton form tu crée une zone de texte qui a comme valeur source la fonction : DateDernConx()

    Voila

  8. #8
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Par défaut
    Bonjour à vous,

    je vous informe qu'après avoir écouté vos conseils, j'ai bien la date qui apparaît dans mon formulaire.
    Cependant, je n'ai seulement la date qui s'affiche et non l'heure avec alors que j'ai mis un champ date général dans la table.

    Est-ce que c'est l'utilisation de Date() dans le SQL qui peut poser ce problème ?

    Je vous remercie pour votre aide.

    Dans l'attente de vous lire, bonne journée.

    Bien cordialement,
    Benjamin.

  9. #9
    Membre Expert

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Par défaut
    Bonjour

    On avance !
    Je regarde le problème du format.
    A+

  10. #10
    Membre Expert

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Par défaut
    La fonction ne renvoie que la date, sans l'heure.

    Pour l'heure il faut utiliser dans la requête la fonction Temps()

    A toi de voir comment tu t'organises.
    Par exemple, ajouter un champ dans la table et la requête avec Temps(). Fait comme avec Date().

    Éventuellement, si problème, il faudra peut-être passer le champ de la table en format date. (pas sûr).

    Titi95

  11. #11
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 849
    Par défaut
    Bonjour à tous,

    La fonction Now() renvoie la date et l'heure sous Access (en français, c'est Maintenant()).

    Cordialement.

  12. #12
    Membre Expert

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Par défaut
    Re-Bonjour

    Bien sûr, je connais Now(). C'était déjà proposé plus haut.
    J'avais prévu d'en (re)parler à l'étape suivante...

    Personnellement, je considère que pour bien aider nos collègues il faut avant tout être pédagogue, et en particulier les faire avancer pas à pas. (45 ans d'expérience)
    Cordialement,

    Titi95

  13. #13
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Par défaut
    Bonjour à vous tous,

    bon je pense que je suis arrivé à ce que voulais avec toutes vos méthodes proposés.

    Voici ce que j'ai réalisé :

    1 - Création d'une table pour stocker la date de derniere connexion :
    Nom : TABLE.PNG
Affichages : 172
Taille : 5,7 Ko

    2 - Création d'une requête de mise à jour "R_DerUtilisation" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE T_DerCox SET T_DerCox.DerUtilisation = Now()
    WHERE (((T_DerCox.Id)=1));
    3 - Création du code VBA dans la procédure événementielle sur fermeture du formulaire Menu, afin d'exécuter le code à chaque fermeture de la base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_Close()
     
        DoCmd.SetWarnings False
        DoCmd.OpenQuery "R_DerUtilisation"
        DoCmd.SetWarnings True
     
    End Sub
    4 - Création d'un code VBA pour remplir une zone de texte :
    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
    'Zone de texte de la dernière connexion
    Public Sub InfosTxtDernConx(TypeAffich As Integer)
     
    Dim oDb As DAO.Database
    Dim oRst As DAO.Recordset
     
    Dim StrSynt As String ' variable résultat obtenu.
    Dim DateDernConx As Date
     
    Set oDb = CurrentDb
     
        Set oRst = oDb.OpenRecordset("T_DerCox", dbOpenSnapshot) 'Appel de la réquete
                DateDernConx = oRst.Fields("DerUtilisation")
     
    StrSynt = DateDernConx
     
     
    'Comme Source de la Zone de Texte, mise en place du résultat de la boucle.
    Select Case TypeAffich
     
    Case Is = -1    ''TypeAffich :  -1 Pour Zone de texte
     
        Form_Menu.TxtDernCox.ControlSource = _
        "=" & """" & StrSynt & """"
    End Select
     
        'Fermetures des connexions
        oRst.Close
        oDb.Close
        Set oDb = Nothing
        Set oRst = Nothing
     
    End Sub

    Pensez-vous, qu'il y a des choses que l'on peut optimiser afin d'éviter d'alourdir la base inutilement ?

    Merci pour votre aide.

    Bien cordialement,
    Benjamin.

  14. #14
    Membre Expert

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Par défaut
    Super !

    Pensez-vous, qu'il y a des choses que l'on peut optimiser afin d'éviter d'alourdir la base inutilement ?
    Si tu tiens vraiment à simplifier :
    Pour remplir la Zone de texte, dans l'événement Sur Ouverture du formulaire Menu tu mets tout simplement ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       DateDernConx=DMin("DerUtilisation", "T_DerCox")
    OU, si ton formulaire Menu n'est pas lié à une autre table, tu peux lui mettre la table T_DerCox en source, et tu affectes le champ DerUtilisation à la Zone de texte DateDernConx.

    Titi95

  15. #15
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Par défaut
    Citation Envoyé par titi95 Voir le message
    Pour remplir la Zone de texte, dans l'événement Sur Ouverture du formulaire Menu tu mets tout simplement ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       DateDernConx=DMin("DerUtilisation", "T_DerCox")
    Titi95
    J'ai essayé la proposition alternative mais ceci ne me donne aucun résultat malheureusement.

  16. #16
    Membre Expert

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Par défaut
    Bizarre...

    J'ai réessayé sur ma base, c'est bon.

    1 vérifie les noms des champs et tables. J'ai peut-être fait une erreur. Le nom de la Zone texte est bien DateDernConx ?
    2 rappel de la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomZoneTexte = DMin("NomChampTable","NomTable")
    à mettre Sur Ouverture du formulaire
    3 la Source de la Zone texte doit être vide

    OU, si ton formulaire Menu n'est pas lié à une autre table, tu peux lui mettre la table T_DerCox en source, et tu affectes le champ DerUtilisation à la Zone de texte DateDernConx.
    Titi95

  17. #17
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Par défaut
    Salut Titi95,

    malheureusement, ceci ne fonctionne pas mais pas grave je fais garder l'ancien code un peu plus lourd.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    'Zone de texte de la dernière connexion
    Public Sub InfosTxtDernConx(TypeAffich As Integer)
     
    Dim DateDernConx As Date
     
    DateDernConx = DMin("DerUtilisation", "T_DerCox")
     
    Form_Menu.TxtDernCox.ControlSource = "=" & """" & DateDernConx & """"
     
    End Sub
    Merci pour votre aide à vous tous.

    Bien cordialement,
    Benjamin.

  18. #18
    Membre Expert

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Par défaut
    Bonjour

    J'aimerais tout de même avoir qq précisions :
    as-tu un message ? lequel ?
    un résultat dans la zone ? lequel ,

    Ça m'intéresse. Merci

    Titi95

  19. #19
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

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

    non il n'y avait aucun message d'erreur, sauf une zone de texte vierge.


    Bien cordialement,
    Benjamin.

  20. #20
    Membre Expert

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Par défaut
    Bonjour

    Je ne comprends pas pourquoi tu alimentes la Zone de texte de ton formulaire avec un Private Sub.
    Par ailleurs, j'ai des doutes sur son fonctionnement au vu de la syntaxe... (mais pas essayé)

    C'est pourquoi je te propose mon UNIQUE ligne de code à mettre dans l'événement Sur Ouverture du formulaire. Copier-coller.
    Attention : je l'ai modifiée car je n'avais pas pris le bon nom pour la zone de texte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TxtDernCox= DMin("DerUtilisation", "T_DerCox")
    Vérifie les noms.

    Rappel : la Source de la Zone de texte doit être vide.

    Titi95

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [SP-2013] Date de dernière connexion
    Par rigol'man dans le forum SharePoint
    Réponses: 0
    Dernier message: 03/06/2016, 09h20
  2. Récupération de la date de dernière connexion via metadata
    Par Bunzy dans le forum Administration et Installation
    Réponses: 4
    Dernier message: 11/02/2016, 18h52
  3. Trouver la date de dernière connexion d'un ordinateur
    Par rikho dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 10/12/2009, 18h54
  4. Effacer un champ dans un formulaire, Test Dates
    Par sylvaindenisbe dans le forum Modélisation
    Réponses: 21
    Dernier message: 19/05/2007, 15h30
  5. [Oracle 9] Date de dernière connexion
    Par allex2108 dans le forum Oracle
    Réponses: 7
    Dernier message: 15/02/2006, 08h14

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