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 :

[A-03] Calculer jours ouvrables à partir d'1 date


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 111
    Points : 56
    Points
    56
    Par défaut [A-03] Calculer jours ouvrables à partir d'1 date
    Bonsoir le Forum,

    Voici l'énoncé de ma question :

    Dans une requête, je souhaiterai créer un champ [A TRAITER POUR LE], dans lequel serait calculé à partir d'une date donnée [DATE DOC], 14 jours ouvrables.

    J'ai essayé ceci :
    A TRAITER POUR LE: fAddOpenDay([DATE DOC];14)
    mais ça ne fonctionne pas est-ce que quelqu'un pourrait m'aider, svp.

    Cordialement
    Mary

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    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 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Cette fonction ne fait pas partie des fonctions Date d'Access:

    Si tu souhaite oter les jours feriés, tu peux utiliser la fonction estferié de la faq:
    http://access.developpez.com/faq/?pa...nip#NbJourOuvr

    (copie le code de la faq dans un module.

    et après tu ajoutes la fonction "AjoutJoursTrav" dans un module:

    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
    17
    18
    19
    20
    Function AjoutJoursTrav(DateDebut As Date, NbreJoursTrav As Integer) As Date
    Dim joursTrav As Integer
    Dim dt As Date
     
    dt = DateDebut
    joursTrav = 0
     
    While (joursTrav < NbreJoursTrav)
     
    dt = dt + 1
     
       If DatePart("w", dt, vbMonday) < 6 and Not (EstFerie(dt)) Then
          joursTrav = joursTrav + 1
       End If
     
    Wend
     
    AjoutJoursTrav = dt
     
    End Function
    Dans mon cas je ne compte pas le premier jour (la date de début)

    et après dans le champ calculé de ta requête:
    [A TRAITER POUR LE]: AjoutJoursTrav([DATE DOC];14)

    A+
    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

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 111
    Points : 56
    Points
    56
    Par défaut
    Bonjour le Forum,
    Bonjour User,

    Merci pour votre aide User, je viens d'appliquer tes conseils à ma base de données mais le résultat souhaité ne semble pas correcte.

    Je vous annexe un échantillon de ma base de données - V2003,
    dans laquelle je souhaiterai obtenir le résultat suivant,
    dans le champ calculé [EN COMPTA POUR LE] de la requête1 :

    [EN COMPTA POUR LE] = [DISTRIBUEES LE] + 14 jours ouvrables

    (En faisant une simulation en utilisant Excel le résultat devrait plutôt ressembler à : [EN COMPTA POUR LE] = [A TRAITER POUR LE])

    Dans l'attente de vous lire...

    Cordialement
    Mary

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    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 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    dans ta requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [EN COMPTA POUR LE]: AjoutJoursTrav([DISTRIBUEE(S) LE];+14)

    utilise cette fonction que j'ai modifiée:

    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
    17
    18
    19
    20
    Function AjoutJoursTrav(DateDebut As Date, NbreJoursTrav As Integer) As Date
    Dim joursTrav As Integer
    Dim dt As Date
     
    dt = DateDebut
    joursTrav = 0
     
    While (joursTrav < NbreJoursTrav)
     
    dt = dt + 1
     
       If DatePart("w", dt, vbMonday) < 6 and Not (EstFerie(dt)) Then
          joursTrav = joursTrav + 1
       End If
     
    Wend
     
    AjoutJoursTrav = dt
     
    End Function

    A+
    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

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 111
    Points : 56
    Points
    56
    Par défaut
    Bonsoir,

    Merci beaucoup User, ça fonctionne impec.

    Comment devrais-je procéder si je souhaite maintenant créer des champs calculés dans ma requête pour pouvoir calculer l'échéance de paiement des factures à partir d'une date donnée et de son échéance?

    Ex.: [DATE DOC] + 30 jours fin de mois
    [DATE DOC] + 60 jours fin de mois
    ... en fonction de l'échéance du fournisseur concerné ???

    Cordialement

    Mary

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    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 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Resalut,

    S'agit-il de jours ouvrés, ou de jours absolus ?

    A+
    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

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 111
    Points : 56
    Points
    56
    Par défaut
    Bonsoir User,

    Merci pour ton aide...

    Il s'agirait bien de calculer des jours absolus.
    Je vais préparer au plus tard pour demain, une nouvelle base de données et présenter au mieux ma demande avec tous les éléments concernés.

    Effectivement, je pense que la solution que tu proposes serait parfaite
    mais j'ai juste du mal à comprendre comment on peut effectuer un calcul avec comme élément "30 jfm" ou autre...

    BàT
    Mary

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 111
    Points : 56
    Points
    56
    Par défaut Echéances Fournisseurs
    Bonsoir User,

    Voici un nouvel échantillon de ma base V2003.

    J'ai un petit problème, dans la requête "Rqt_DistributionFactures2009",
    je n'arrive pas à faire le lien entre la "Table_DistributionFactures2009" et la "Table_Fournisseurs",
    pour insérer le champ "Echeance" à la requête. Comment puis-je faire ?
    (Le champ contenant les données du fournisseur étant le champ "DOCUMENT(S)").

    Ensuite, insérer le champ "Echeance" de la "Table_Fournisseurs" à la requête pour pouvoir créer un champ calculé en fonction du fournisseur concerné :
    ECHUE LE: [DATE DOC]+[ECHEANCE].

    BàT
    Mary

  9. #9
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    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 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Salut,

    A quoi correspond ton champs [CA] dans ta table "Table_DistributionFactures2009"

    Apparement il manque l'identifiant du fournisseur dans cette table,
    Le champs "Document(s)" n'est apparemment pas suffisant...

    Merci
    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

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

Discussions similaires

  1. Calcul jours ouvrables en un mois
    Par smiles dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 23/07/2010, 11h15
  2. calcul jours ouvrables
    Par Nadgaste dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 14/01/2009, 14h04
  3. calcul jours ouvrables access
    Par laurent.G dans le forum Access
    Réponses: 3
    Dernier message: 21/07/2006, 16h14
  4. Calcul jours ouvrables (Samedi compris)
    Par priest69 dans le forum Access
    Réponses: 9
    Dernier message: 29/10/2005, 00h35
  5. Calcul Jours Ouvrables
    Par beurnoir dans le forum Access
    Réponses: 8
    Dernier message: 26/10/2005, 15h53

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