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

4D Discussion :

[Résolu] recherche prochaine date anniversaire 4D V13


Sujet :

4D

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [Résolu] recherche prochaine date anniversaire 4D V13
    Bonjour,
    j'ai un fichier personne avec un champ date d'anniversaire.
    Comment écrire la méthode qui permettrait de trouver la date du prochain anniversaire à souhaiter?
    A noter que certaines dates ne sont pas renseignées.
    J'ai fait une recherche pour sélectionner ceux avec date renseignée, puis date anniversaire > date du jour, puis un tri
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CHERCHER([Personne];[Personne]DateNaissance#!00/00/00!;*)
    CHERCHER PAR FORMULE([Personne];[Personne]DateNaissance>Date du jour)
    TRIER([Personne];[Personne]DateNaissance;>)
    mais j'obtiens toujours 00/00/00. Où est l'erreur?
    Si vous pouvez m'aider, j’apprécierai beaucoup
    Merci
    Dominique

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 40
    Points : 66
    Points
    66
    Par défaut
    Bonjour

    Plusieurs soucis dans ton code :

    - tu ne peux pas enchaîner CHERCHER et CHERCHER PAR FORMULE dans la même requête

    - ton CHERCHER PAR FORMULE ne recherche aucune formule et se contente de chercher les personnes qui ne sont pas encore nées ce qui ne devrait pas te renvoyer grand monde

    - le principe de recherche par "supérieur à" la date de jour ne tient pas la route : le 31 décembre, la prochaine date anniversaire à souhaiter se situera en janvier.

    - tu ne recherches qu'une simple date, c'est dommage de manipuler tout le fichier à cause de ça.

    Je te propose la méthode suivante (il y en a sûrement d'autres) :

    Désolé mon code est en anglais mais tu le passeras facilement en français avec la doc de 4D

    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
    C_DATE($vd_Birthday)
    C_LONGINT($n;$vl_Current_Month;$vl_Current_Day)
    QUERY([Personne];[Personne]DateNaissance#!00-00-00!)
    If (Records in selection([Personne])>0)  //pour être sûr d obtenir un résultat et ne pas partir dans une boucle sans fin
      $vd_Birthday:=Current date  //Date de départ (qui ne sera pas utilisée)
      $n:=0
      SET QUERY DESTINATION(Into variable;$n)//pas la peine de récupérer une sélection, on veut juste savoir si des fiches Personne correspondent
      While ($n=0)//on fera au pire du pire 365 itérations ce qui n est rien pour 4D
        $vd_Birthday:=Add to date($vd_Birthday;0;0;1)  //la première recherche s effectuera à partir de demain, et ensuite on ajoute une journée, ce qui marchera aussi entre le 31 décembre et le 1er janvier
        $vl_Current_Month:=Month of($vd_Birthday)
        $vl_Current_Day:=Day of($vd_Birthday)
        QUERY BY FORMULA([Personne];(Month of([Personne]DateNaissance)=$vl_Current_Month)&(Day of([Personne]DateNaissance)=$vl_Current_Day))//On cherche les personnes qui ont leur date anniversaire ce jour précis
      end while
      SET QUERY DESTINATION(Into current selection)
      ALERT("Prochain anniversaire à souhaiter : "+String($vd_Birthday))//la dernière date cherchée est la bonne
    end if

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Merci
    Citation Envoyé par jmbiraghi Voir le message
    Bonjour

    Plusieurs soucis dans ton code : ....

    [/CODE]
    Merci beaucoup pour cette réponse précise et complète.
    Effectivement plusieurs erreurs y compris que ma logique est stupide!...
    Merci pour le code, je vais étudier... j'ai beaucoup à apprendre sur 4D...
    Dominique

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut re merci
    Citation Envoyé par dom1202 Voir le message
    Merci beaucoup pour cette réponse précise et complète.
    Effectivement plusieurs erreurs y compris que ma logique est stupide!...
    Merci pour le code, je vais étudier... j'ai beaucoup à apprendre sur 4D...
    Dominique
    J'ai traduit en français et adapté à ma méthode principale.
    evidemment maintenant cela fonctionne
    Encore Merci
    Dominique

Discussions similaires

  1. Prochaine date anniversaire à partir d'une date
    Par roman33 dans le forum Excel
    Réponses: 3
    Dernier message: 02/11/2015, 10h56
  2. [débutant] recherche sur dates en VBA
    Par tojiji dans le forum Access
    Réponses: 4
    Dernier message: 10/07/2006, 11h51
  3. [VBA-E]Recherche de date dans plusieurs feuilles
    Par atypik dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 05/04/2006, 20h36
  4. [VB6] Recherche de dates
    Par tim69000 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 22/03/2006, 15h40
  5. Moteur de recherche par date
    Par Prue dans le forum ASP
    Réponses: 17
    Dernier message: 27/08/2003, 16h07

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