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

IHM Discussion :

Dernier enregistrement avant fermeture [Toutes versions]


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2024
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2024
    Messages : 19
    Points : 9
    Points
    9
    Par défaut Dernier enregistrement avant fermeture
    Bonjour

    Je cherche à ma rappeler du dernier enregistrement ouvert d'un formulaire avant sa fermeture.

    Je souhaiterais ainsi me rappeler où j'en suis dans les données que j'ai à traiter.

    Mon form frm_agence est basé sur une table tbl_agence avec comme numéroauto et clé primaire le champ ID_pro et notamment un champ appelé company

    Je souhaite avoir une zone de texte qui me permette donc de savoir quel a été le dernier enregistrement affiché avant la fermeture du formulaire.

    Dans ce form j'ai une zone de liste déroulante qui me permet d'accéder à n'importe quel enregistrement en fonction du champ company (nom de l'entreprise)

    J'aurai besoin de votre aide svp

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 629
    Points : 34 334
    Points
    34 334
    Par défaut
    Bonjour,

    Déjà pour le stockage de l'information, tu peux passer par une table dite de paramètres :
    https://jpcheck.developpez.com/tutor...es-initiation/

    Les trois événements qui pourront être utilisés pour déclencher ta mise à jour
    Unload / Deactivate / Close
    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 :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    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
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2024
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2024
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Bonjour,

    Déjà pour le stockage de l'information, tu peux passer par une table dite de paramètres :
    https://jpcheck.developpez.com/tutor...es-initiation/

    Les trois événements qui pourront être utilisés pour déclencher ta mise à jour
    Unload / Deactivate / Close
    Merci

  4. #4
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour Lolofr, Jean-Philippe André,

    @ Jean-Philippe André, une autre façon d'aborder le sujet est d'inscrire directement dans l'objet "CurrentDB.Containers" la valeur du dernier enregistrement utilisé et ensuite à l'ouverture du formulaire se positionner sur celui-ci.
    Voici un exemple:
    Un module standard:
    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
    Option Compare Database
    Option Explicit
     
    Public Sub suPreviousRecord(sName As String, lLeNumero As Long)
    On Error GoTo gestion_err
     
        Dim db As DAO.Database
        Dim doc As DAO.Document
        Dim prp As DAO.Property
     
        Set db = CurrentDb
     
        Set doc = db.Containers("Forms").Documents(sName)
     
        If Not IsNull(lLeNumero) Then
            doc.Properties!prpReturnToPreviousRecord = lLeNumero
        End If
     
    Sortie:
    On Error Resume Next
    Set doc = Nothing
    Set prp = Nothing
    Set db = Nothing
    Exit Sub
    gestion_err:
        Select Case Err.Number
            Case 3270
    'Création de la prop si elle n'existe pas
    'Déclarée en long pour numéro auto
                Set prp = doc.CreateProperty("prpReturnToPreviousRecord", dbLong, lLeNumero) 
                doc.Properties.Append prp
                Resume Next
            Case Else
                MsgBox "Erreur inatendue :  " & Chr(13) & Err.Description & Chr(13) & "Erreur # :  " & Err.Number
                Resume Sortie
        End Select
    End Sub
    Et dans notre formulaire sur l'événement "Current" pour récupérer l'ID et sur l'événement "Open" pour se positionner sur le bon enregistrement:
    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
    Option Compare Database
    Option Explicit
     
    Private Sub Form_Current()
    suPreviousRecord Me.Name, Me.ProdID_PK
    End Sub
     
    Private Sub Form_Open(Cancel As Integer)
    On Error GoTo gestion_err
     
        Me.Recordset.FindFirst "ProdID_PK=" & CurrentDb.Containers("Forms").Documents(Me.Name).Properties!prpReturnToPreviousRecord
     
    Sortie:
    On Error Resume Next
    Exit Sub
    gestion_err:
        Select Case Err.Number
            Case 3270
                Resume Next
            Case Else
                MsgBox "Erreur inatendue :  " & Chr(13) & Err.Description & Chr(13) & "Erreur # :  " & Err.Number
                Resume Sortie
        End Select
    End Sub
    Si l'idée peut-être utile...

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

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

Discussions similaires

  1. Requête sql pour récupérer l'avant dernier enregistrement
    Par Papidjo1456 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 29/05/2017, 15h59
  2. Recherche de l'avant dernier enregistrement dans une colonne !
    Par Tony4152 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/03/2017, 21h32
  3. Requete Avant dernier enregistrement
    Par alainmaree dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 06/07/2011, 19h42
  4. Réponses: 2
    Dernier message: 09/01/2008, 08h50
  5. [VB6] Allez en avant dernier enregistrement d'une table acce
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 10/02/2006, 15h42

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