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

Requêtes et SQL. Discussion :

Mettre à jour age actuel [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Points : 48
    Points
    48
    Par défaut Mettre à jour age actuel
    Bonjour à tous, j'aimerais savoir si il est possible de mettre à jour des données dans table à chaque ouverture de ma base de données.


    J'ai une table enfant avec comme propriétés qui nous intéresse "date_naiss" et "age"

    J'ai un formulaire avec des zones de texte, le champ "age" est calculé automatiquement grave à la zone de texte " date de naissance". Mais une fois enregistré dans la base de données l'age ne changera plus.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 602
    Points : 34 273
    Points
    34 273
    Par défaut
    salut,
    déjà, on peut constater que c'est problématique de vouloir stocker l'âge d'un individu en tant que tel. Tu peux très bien te "contenter" de stocker sa date de naissance, et de faire un calcul au fil de l'eau pour l'âge

    Sinon, pour qu'un traitement se lance à l'ouverture de la base, tu peux créer une macro AutoExec, qui sera lancée à chaque fois.

    Pas forcément intéressant d'avoir à faire une manipulation a chaque fois, mais bien se limiter au stockage de la date de naissance.

    Des exemples pour le calcul de l'âge à partir d'une date sont dispo dans la
    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
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Points : 48
    Points
    48
    Par défaut
    J'ai l'algorithme pour le calcul d'un âge comparé à la date de naissance ( compare année par année , mois par mois etc..) Mais je vais avoir une centaine d'enregistrements dans ma table. Et il faut que les ages soit constamment mises à jour

    J'aimerais faire une requête en Update le soucis c'est que date de naissance est en type " date" et age en entier

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 602
    Points : 34 273
    Points
    34 273
    Par défaut
    je ne comprends pas où est le soucis
    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

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Points : 48
    Points
    48
    Par défaut
    j'ai essayé de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE ENFANTS set age = nom() -date_naiss ;
    mais sans résultat

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 602
    Points : 34 273
    Points
    34 273
    Par défaut
    le plus simple reste encore de chercher que ce nous donne la
    http://access.developpez.com/faq/?page=dates#HowOld
    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

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par jpcheck Voir le message
    le plus simple reste encore de chercher que ce nous donne la
    http://access.developpez.com/faq/?page=dates#HowOld
    Je n'ai pas besoin d'un code mais d'une requête pour mettre à jour tout les d'enregistrements d'un coup

  8. #8
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 602
    Points : 34 273
    Points
    34 273
    Par défaut
    tu mets ce code dans un module
    tu peux utiliser la fonction dans ta requête

    je t'apprends à pêcher, mais n'attends pas de moi que je pêche à ta place
    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

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Points : 48
    Points
    48
    Par défaut
    Donc j'ai crée mon moduleAge avec la fonction calculage2 ;

    et j'ai modifier ma requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    update enfants 
    set age = calculage2(Date_naiss)

    Il dit calculage2 non défini dans l'expression

  10. #10
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 602
    Points : 34 273
    Points
    34 273
    Par défaut
    as-tu mis la portée en public pour ta fonction ?
    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

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par jpcheck Voir le message
    as-tu mis la portée en public pour ta fonction ?
    Mhh non j'ai juste crée un nouveau module


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option compare database
    -----------------------------
    Function calculage2...
     
    EndFunction

  12. #12
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 283
    Points : 19 480
    Points
    19 480
    Billets dans le blog
    64
    Par défaut
    Bonsoir,

    Comme proposé par jpcheck ton module indépendant doit ressembler à cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Option compare database
     
    Public Function CalculAge2(dateNaissance As Date, Optional dateReference As Date)
    If dateReference = 0 Then dateReference = Date
    CalculAge2 = Year(dateReference) - Year(dateNaissance) + _
    (Format(dateNaissance, "mmdd") > Format(dateReference, "mmdd"))
    End Function
    et l'appelle de la fonction dans ta requête doit fonctionner, même sans le public
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Points : 48
    Points
    48
    Par défaut
    Il n'y a plus de message d'erreur , il dit que la requête va modifier mes 32 enregistrements , mais l'age est toujours vite dans chaque enregistrement

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 73
    Points : 48
    Points
    48
    Par défaut
    Oké ça marche impeccable Merci bien

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

Discussions similaires

  1. [MySQL] Comment mettre à jour en conservant les données actuelles d'un champs
    Par MisterMacPhisto dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 17/04/2007, 15h49
  2. Comment mettre à jour une ligne sans doublon via déclencheur
    Par fuelcontact dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/08/2004, 15h56
  3. Réponses: 3
    Dernier message: 09/07/2004, 10h23
  4. Mettre à jour une table depuis une autre
    Par rsc dans le forum SQL
    Réponses: 4
    Dernier message: 09/07/2004, 10h08
  5. Réponses: 6
    Dernier message: 14/02/2003, 16h52

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