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

Access Discussion :

Obtenir le numéro d'une semaine à partir d'une date


Sujet :

Access

  1. #1
    jaq
    jaq est déconnecté
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut Obtenir le numéro d'une semaine à partir d'une date
    Bonjour,

    Je souhaiterais obtenir le numéro d'une semaine à partir de trois champs jour-mois-annee qui forme une date. je voudrais que le numéro de semaine vient remplir automatique un champs "NO_SEMAINE".

    J'ai trouvé la fonction qui reconstitue une date à partir de trois champs

    dateserial([champannée],[champmois],[champjour])

    Jai trouvé la fonction qui renvoie le numero de semaine :

    NO.SEMAINE(numéro_de_série;méthode)

    numéro_de_série
    est une date de la semaine sous forme de nombre représentant la date ou du texte au format date, par exemple "1-4-1999" ou "31-Oct-2000".

    méthode
    est un chiffre : si la semaine commence un dimanche, utilisez 1 ou ne spécifiez rien ; si la semaine commence un lundi, utilisez 2.

    Mais je ne sais pas quoi en faire. Si quelqu'un peu m"aider.

    Merci

  2. #2
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut
    Bonjour,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(#DateAEvaluer#, "ww")
    ...

    SE

  3. #3
    jaq
    jaq est déconnecté
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut J'ai trouver un début de réponse
    J'ai trouver un début de réponse qui me satisfait qu'a moitié

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PartDate("ee";
    SérieDate([TACHE]![CLE_ANNEE_EXT];[TACHE]![CLE_MOIS_EXT];[TACHE]![CLE_JOUR_EXT]))
    jutilise la fonction "partdate" avec comme argumenyt "ee" qui permet de récupérer le no de la semaine. Cependant la semaine commence le dimanche... D'autre part jutilise une requête de mise à jour et je préféreait que le champs s'actualise automatiquement lorsque l'utilisateur remplie le formulaire plitot que d'activer une requête "mise à jour".

    Pour le 1 pb, apparemment la fonction NO.SEMAINE peut faire commencer la semaine le lundi. Cependant cette fonction ne passe pas dans ma requête de mise à jour. Access m'indique que l'expression entrée comporte un pointnon valide....

    A votre bone ame.
    Merci de votre aide

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 214
    Points : 169
    Points
    169
    Par défaut
    peux nous montrer comment tu t'y est prit et mettant ton code perso.

  5. #5
    jaq
    jaq est déconnecté
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut Comme ça
    J'ai mis le code suivant dans la partie "Mise à jour" de la requête de type "Mise à jour"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NO.SEMAINE(SérieDate([TACHE]![CLE_ANNEE_EXT];[TACHE]![CLE_MOIS_EXT];[TACHE]![CLE_JOUR_EXT]);2)

  6. #6
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    slt,

    Cependant la semaine commence le dimanche...
    Ben utilise le troisième argument de DatePart pour préciser le premier jour de la semaine....

    D'autre part jutilise une requête de mise à jour et je préféreait que le champs s'actualise automatiquement lorsque l'utilisateur remplie le formulaire plitot que d'activer une requête "mise à jour".
    Pourquoi stocker la semaine dans la table?
    Tu as déjà stocké la date complète, la semaine ne soit pas être stockée sinon l'information est doublée inutilement
    (et ça complique les choses, à chaque changement de la date il faut remettre à jour la semaine)

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 214
    Points : 169
    Points
    169
    Par défaut
    pour le pb de la requette mise à jour, tu mets sur l'evènement after_update de chaque chmps date, car l'utilisateur peux remplire le formulaire en commanceant par l'année, ensuit le mois et le jour, ou les mettre dans le désordre donc voilà, donc dans le after_update, tu fait un appel de procédure, d'un eprocédure que tu aura écrite et qui comprte tout les élément dont tu as besoin pour faire se que tu veux, et quand tu à ton numéro de semaine, tu le met dans une variable. et tu mets ta variable dans le champs, ou directement la fonction dans le champs c'est comme tu préfert.
    concernant l'autre pb là je sé pas

  8. #8
    jaq
    jaq est déconnecté
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut Merci
    En fait je fais ce champs semaine car je souhaite réaliser une requête qui regroupe les information sur 1 semaine d'ou le numéro de semaine te l'année.

    Autrement quelle est la syntaxe pour le troisième argument de datepart

    Merci

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    en france une norme iso impose la semaine débutant le lundi
    et la première semaine de l'année celle contenant le premier jeudi

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 214
    Points : 169
    Points
    169
    Par défaut
    merci pour l'info, je me coucherais moins bête ce soir
    et la première semaine de l'année celle contenant le premier jeudi
    car sa je savais pas.

  11. #11
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    En fait je fais ce champs semaine car je souhaite réaliser une requête qui regroupe les information sur 1 semaine d'ou le numéro de semaine te l'année.
    alors calcule la semaine dans la requête...

  12. #12
    jaq
    jaq est déconnecté
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut La syntaxe
    J'ai trouvé un site qui détail bien la syntaxe.http://officesystem.access.free.fr/vba/datepart.htm
    Dont voici la nouvelle syntaxe que j'ai adopté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PartDate("ww";
    SérieDate([TACHE]![CLE_ANNEE_EXT];[TACHE]![CLE_MOIS_EXT];[TACHE]![CLE_JOUR_EXT]);
    2)
    Cependant rien ne change, exemple.
    Exemple le 2/07/2006, c'est un dimanche. ACCESS me le mets en semaine 27 alors que mon calendrier de la poste le mets en semaine 26.

    Autrement pour l'idée de faire calculé dans la requête super!!!!

    Je précise, j'ai ACCESS 20000, win pro sp2

  13. #13
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2006
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 214
    Points : 169
    Points
    169
    Par défaut
    Cependant rien ne change, exemple.
    Exemple le 2/07/2006, c'est un dimanche. ACCESS me le mets en semaine 27 alors que mon calendrier de la poste le mets en semaine 26.
    Alors cherche du coté de l'angleterre, le premier jour de la semaine, c'est le dimanche, alors peut-être que c'est aussi le cas pour la première semaine de l'année celle contenant le premier "Sunday" et donc le dimache 2/07/2006 est bien en semaine 27...
    sa pourais expliquer ton problème test avec le 1/07/2006 et le 3/07/2006 pour voir si sa change, car normalement, si c'est programme qui sert à une entreprise, le dimanche on travail pas, normalement...

  14. #14
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    y a un quatrième argument à PartDate...

    vbFirstFourDays = 2 : Commencer par la première semaine comportant au moins quatre jours dans l'année nouvelle.
    ce qui revient à ce que disait random au sujet de la semaine qui contient le premier jeudi.

  15. #15
    jaq
    jaq est déconnecté
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 71
    Points : 45
    Points
    45
    Par défaut J'ai trouvé
    En fait, le quatrième paramètre de la fonction permet de définir quand est ce que dermarrage la semaine 1.

    Par defaut, la semaine 1 commence au 1er janvier. En 2006 le 1er janvier est un dimanche comme la fort bien préciser random, une norme dit que la 1ere semaine est celle qui contient le jeudi. D'ou le décalage avec mon bon calendrier du facteur. La solution utilisé le 4 ème arguement et mettre 2. Cela permet de Commencer par la semaine comportant au moins quatre jours dans l'année nouvelle.

    Je vous conseillerais vivement la page web indiquée au dessus elle decrit vraiment bien les arguments des fonctions. En français en plus...

    Merci pour tous

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

Discussions similaires

  1. Déduire le numéro de la semaine à partir d'une date
    Par Julien1504 dans le forum Développement de jobs
    Réponses: 7
    Dernier message: 14/08/2013, 14h00
  2. Retrouver le numéro de la semaine à partir d'une date
    Par ravaid dans le forum Développement
    Réponses: 12
    Dernier message: 14/03/2009, 12h00
  3. retrouver le numéro de la semaine à partir d'une date
    Par christophe_halgand dans le forum MATLAB
    Réponses: 3
    Dernier message: 18/01/2008, 11h38
  4. [XI] Calculer le numéro d'une semaine à partir d'une date
    Par leloup84 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 23/04/2007, 14h49
  5. le numéro d'une semaine à partir d'une date
    Par crazydede8 dans le forum C++
    Réponses: 5
    Dernier message: 22/09/2006, 20h27

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