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 :

dLookup et dernier enregistrement


Sujet :

VBA Access

  1. #1
    Invité
    Invité(e)
    Par défaut dLookup et dernier enregistrement
    bonjour à tous,
    j'ai un formulaire avec 3 champs pour remplir une table par des saisies successives. Les champs sont Eleve, Theme, Module. Le bouton "enregistrer" du formulaire m'ouvre un nouvel enregistrement après chaque saisie. Cependant le seul champ devant être modifié à chaque saisie est le champ "eleve", puisque plusieurs eleves peuvent avoir suivi la meme formation...
    j'essaie donc de récuperer la derniere valeur saisie pour les 2 autres champs par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Module = DLookup("Module", "Formation", "Dernier enregistrement du champ Module")
    Malgré plusieurs posts traitant plus ou moins du sujet je n'arrive pas à trouver la bonne syntaxe pour le critere, quelqu'un peut-il m'aider ?
    Merci d'avance

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


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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 197
    Billets dans le blog
    47
    Par défaut
    bonjour Pimlico,

    il y a peut-être plus simple, reste à voir si ça correspond à votre besoin...

    - avec les assistants créer un formulaire principal lié à la table avec les champs module et theme.

    - créer un sous-formulaire lié à la même table avec les champs module, theme et eleve. Définir la liaison formulaire/sous-formulaire sur le couple {module; theme}.
    (propriétés champs père-champs fils= module; theme)

    dans le sous-formulaire, vous pourrez ainsi saisir les élèves inscrits à la formation (module+thème).

  3. #3
    Invité
    Invité(e)
    Par défaut
    en fait je pars d'un form continu affichant l'historique des formations et les nouvelles saisies se font via un form indépendant reposant sur la même table et qui rafraichit le form continu a chaque nouvel enregistrement. Je précise que le form de saisie reste affiché et ne se referme pas à chaque nouvelle saisie.

  4. #4
    Invité
    Invité(e)
    Par défaut
    un petit up pour un petit coup de pouce....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Module = DLookup("Module", "Formation", "ici critere : dernier enregistrement du champ Module")
    Je ne trouve pas la syntaxe du critere pour pointer sur le dernier enregistrement de la table

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Par défaut
    bonsoir,
    on peut avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Module = DLast("Module", "Formation")
    mais ça peut être aléatoire,
    de préférence utiliser un recordset.

  6. #6
    Invité
    Invité(e)
    Par défaut
    ca me dit "erreur d'execution 2135 : cette propriété est en lecture seule, impossible de la definir" !

  7. #7
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Et pourquoi pas 2 variables globales ?
    [Access] Les bases du débogage => ici

  8. #8
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Par défaut
    bonjour,
    à préciser car j'ai déduis de ton code DLookup
    que tu recherches la valeur du dernier enregistrement du champ "module" dans la table "Formation" est-ce bien le cas ?

  9. #9
    Invité
    Invité(e)
    Par défaut
    affirmatif , comme cela l'utilisateur qui saisit les données n'a juste qu'à modifier le nom de l'élève.

    Quant aux 2 variables... euh ... sur le coup j'n'y avais pas pensé car j'avais déjà utilisé le Dlookup, sauf que je suis coincé avec la syntaxe de ce pu.... de critère !
    Dernière modification par Invité ; 08/03/2010 à 09h54.

  10. #10
    Invité
    Invité(e)
    Par défaut
    bon ben voilà j'ai résolu le problème avec les variables ! Mais n'empêche, j'aimerais bien savoir comment résoudre cette histoire de critère dans le DLookup

  11. #11
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 127
    Par défaut
    Bonjour,

    Je rejoins "le vieux" sur le fait que "le dernier champ" ne signifie pas grand chose pour access...

    Il est souvent utile de mémoriser automatiquement qui a fait la saisie et la date et l'heure de saisie pour des raisons de traçabilité. Dans ton cas cela règle le problème puisque les données sont celles de la saisie la plus récente de ton utilisateur.

    Une autre solution consiste à mémoriser la dernière saisie en valeur par défaut du champ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public sub monchamp_afterupdate
      monchamp.defautvalue = monchamp
    end sub

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 4
    Par défaut
    Bonjour,

    J'ai eu le même problème et je l'ai contourné de cette manière :

    Création d'une requête avec tri "décroissant" sur le champ voulu.

    Dlookup ("Champ","Requête")

    Et ça me donne bien le dernier enregistrement.

    Cordialement

    Florient

Discussions similaires

  1. [debutant] selection des 6 derniers enregistrements
    Par LoLoSS dans le forum Langage SQL
    Réponses: 4
    Dernier message: 09/07/2004, 15h27
  2. Recupération du ID du dernier enregistrement
    Par mustang-gx dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/03/2004, 10h04
  3. Récupérer dernier enregistrement d'une table?
    Par Invité dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 19/01/2004, 11h38
  4. Réponses: 10
    Dernier message: 01/08/2003, 13h45
  5. Trouver le dernier enregistrement d'une table
    Par remi59 dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/03/2003, 14h54

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