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 :

Sélectionner la date la plus récente dans une table et la stocker dans une autre


Sujet :

VBA Access

  1. #1
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 175
    Points : 223
    Points
    223
    Par défaut Sélectionner la date la plus récente dans une table et la stocker dans une autre
    Bonjour à tous,

    Je voudrais grâce à VBA Access, sélectionner la date la plus récente d'une table et la stocker dans une autre table.

    J'ai donc 2 tables. L'une est formée d'un champs identifiant et de la date la plus récente que je voudrais stocker.
    L'autre est formé des mêmes identifiant, mais répétés plusieurs fois avec un champ date où est stocker plusieurs dates pour chaque identifiant.

    Par exemple j'ai les id : 449 et 450 dans ma 1ère table.
    Dans la seconde j'ai 449 31/12/2010, 449 12/12/2010, 449 01/01/2009.
    Et 450 21/11/2010, 450 11/11/2009.
    Et donc j'aimerais mettre dans ma 1ère table :
    449 31/12/2010, 450 21/11/2010.

    J'ai pensé à un enchainement :
    Faire une boucle sur l'id de la 1ère table.
    Pour chaque ID (ex : 449) :
    On stocke l'ID dans Var
    Req = Dlookup("Max('[Date]')","Table2","[ID] = ' " & Var & " ' ")
    Stocker ensuite Req dans la table1 champs Daterécente pour l'ID Var.
    Passer à l'ID suivant.

    Mais je ne sais pas comment l'écrire en VBA.

    Quelqu'un pourrais me donner une piste? Utiliser des record set ou non ou autre chose?

    Merci d'avance.

    Cordialement,

    Q.D.
    Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 617
    Points : 56 730
    Points
    56 730
    Billets dans le blog
    40
    Par défaut
    bonjour,

    cela devrait marcher avec une requête de mise à jour:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE TblDestination  SET LaDateMax = Dmax("LaDate", "TblInitiale", "id=" & id);

  3. #3
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 175
    Points : 223
    Points
    223
    Par défaut
    Euh ok, et je met ça comme ça dans un module VBA?
    Sans boucle sur l'id?

    J'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Req = DLookup("Max([DATE])", "SRRI_HISTORY", "[SC_ID] = " & Var & "")
    Cela stocke la bonne date, mais je ne sais juste pas comment boucler ensuite sur l'id de la table1 pour le mettre en variable Var...
    Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 617
    Points : 56 730
    Points
    56 730
    Billets dans le blog
    40
    Par défaut
    tu enregistres la requête UPDATE puis en VBA,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.Execute ("NomDeLaRequete", dbFailOnError)
    avec la gestion d'erreur qui va bien (cf aide Access sur Database.execute)

  5. #5
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 175
    Points : 223
    Points
    223
    Par défaut
    WOW! Super ça fonctionne !
    Merci beaucoup pour le coup de main ^^!
    Pourquoi faire aujourd'hui ce que l'on peut remettre à demain ?

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/05/2015, 14h29
  2. Réponses: 7
    Dernier message: 18/12/2013, 14h29
  3. Réponses: 2
    Dernier message: 17/01/2010, 18h09
  4. Réponses: 1
    Dernier message: 31/03/2009, 22h59
  5. Réponses: 3
    Dernier message: 15/10/2008, 09h24

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