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 :

Valeur d'un champ du dernier enregistrement. [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre habitué
    Homme Profil pro
    Directeur technique
    Inscrit en
    Avril 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 160
    Points : 162
    Points
    162
    Par défaut Valeur d'un champ du dernier enregistrement.
    Bonjour à tous,

    Quel code écrire pour récupérer la valeur d'un champ du dernier enregistrement.

    Plus précis:

    J'ai un formulaire basé sur la table "tblFin" avec les champs:

    DateFin
    NumExtrait
    Solde

    Je voudrais que sur l'événement DateFinBeforeUpdate, s'affichent dans les champs "NmExtrait" et "Solde", les valeurs du dernier enregistrement.

    Merci pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 756
    Points : 14 789
    Points
    14 789
    Par défaut
    Bonsoir,
    Voici une fonction qui permet de récupérer la valeur des champs du dernier enregistrement de n'importe quelle table :
    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
    Function RecupDernierChamp(pTbl As String, pChp As Integer) As Variant
    ' Récupération des valeurs des champs du dernier enregistrement d'une table
    ' paramètres  : pTbl = nom de la table
    '             : pChp = index du champ
     
     Dim oRs As Recordset
     
     Set oRs = CurrentDb.OpenRecordset("select * from " & pTbl, dbOpenSnapshot)
     
        If Not (oRs.EOF) Then
        oRs.MoveLast
            If pChp < oRs.Fields.Count Then
                RecupDernierChamp = oRs.Fields(pChp).Value
            End If
     
        End If
     
    End Function
    et tu l'utilises comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NumExtrait = RecupDernierChamp("tblFin",1)
    Solde = RecupDernierChamp("tblFin",2)
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Il faudrait préciser si le dernier enregistrements est par rapport à une date, un NumAuto, etc..

    En effet, le code proposé n'est pas valable si avant je change l'ordre de tri de la table, donc une un Order By serait un plus dans la requête.

    Philippe

  4. #4
    Membre habitué
    Homme Profil pro
    Directeur technique
    Inscrit en
    Avril 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 160
    Points : 162
    Points
    162
    Par défaut Valeur des champs du dernier enregistrement
    Merci pour vos réponses.

    C'est vrai que "dernier" n'était pas assez précis. Les enregistrements sont triés par date. La table contient cependant aussi bien les enregistrements du financier banque (01) que ceux du financier caisse (07).

    Il faudrait donc que les valeurs soient récupérées en fonction du financier choisi.

    Merci pour vos aides précieuses.

  5. #5
    Membre habitué
    Homme Profil pro
    Directeur technique
    Inscrit en
    Avril 2011
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 160
    Points : 162
    Points
    162
    Par défaut valeur de champs du dernier enregistrement
    Bonjour tee_granbois,

    C'est bon ton code. J'ai un peu fouillé pour comprendre les grandes lignes (chacun son niveau), et voici comment je l'ai inséré dans mon application.

    1. Je n'ai pas besoin de remplir les champs lorsqu'il s'agit d'un financier banque, mais seulement pour le financier caisse.

    J'ai donc créé une requête avec le numéro du financier caisse comme critère pour le premier paramêtre de la fonction.

    2. Je pense qu'une requête, c'est bien mieux qu'une table parce que en réalité, dans ma table j'ai une douzaine de champs, et si j'en intercale un, lorsque je voudrai attribuer la valeur du champ 2, ça risque quand même de déraper.

    Si je voulais donner les dernières valeurs pour deux financiers différents, je pourrais écrire deux fonctions, et avec une instruction "If" choisir le résultat de l'une ou de l'autre suivant le financier dans lequel je travaille.

    Si j'ai écrit l'une ou l'autre ineptie, n'hésite pas à le signaler.

    En tout cas, j'ai ce que je souhaitais, je t'en remercie, ainsi que Philippe qui a attiré notre attention sur la précision.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/08/2016, 08h27
  2. [AC-2007] SQL : ajouter valeur dans un champs du dernier enregistrement d'une table
    Par atech dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 28/09/2011, 14h25
  3. Afficher la valeur d'un champ du dernier enregistrement d'un DBGrid
    Par doolar dans le forum Bases de données
    Réponses: 5
    Dernier message: 24/03/2008, 00h22
  4. Réponses: 2
    Dernier message: 11/02/2007, 11h30
  5. Récupérer la valeur d'un champ du dernier enregistrement
    Par Daniel MOREAU dans le forum Access
    Réponses: 1
    Dernier message: 14/04/2006, 20h01

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