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 :

Requete SQL FONCTION FORMAT DATE/HEURE SUPERIEUR A 24H


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant decisionnel
    Inscrit en
    Janvier 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant decisionnel

    Informations forums :
    Inscription : Janvier 2016
    Messages : 16
    Points : 15
    Points
    15
    Par défaut Requete SQL FONCTION FORMAT DATE/HEURE SUPERIEUR A 24H
    Bonjour. Voilà j'ai un devoir maison sur une base de données du tour de France, je dois écrire plusieurs requêtes SQL en fonction des questions et je rencontre un problème pour l'une d'entre elle.


    Pour commencer, je sais pas si vous en avez besoin mais je vous mets le schéma relationnel de ma bdd en image.


    Nom : schemabdd.png
Affichages : 1731
Taille : 28,6 Ko

    La question qu'on me demande est la suivante:

    --Q19) Quel est le classement général des coureurs (nom, code équipe, code pays et temps des coureurs) à l'issue des 13 premières étapes sachant que les bonifications ont été intégrées dans les temps réalisés à chaque étape ?


    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT COUREUR.NomCoureur, Coureur.CodeEquipe, Coureur.CodePays,  TOTAL 
    FROM (SELECT PARTICIPER.NumCoureur AS NumCou, FORMAT(SUM(PARTICIPER.TempsRéalisé), 'hh:mm:ss') AS TOTAL FROM PARTICIPER WHERE PARTICIPER.NumEtape <= 13 and PARTICIPER.NumCoureur IN (SELECT NumCoureur FROM PARTICIPER WHERE NumEtape =13) GROUP BY NumCoureur), COUREUR  
    WHERE NumCou = Coureur.NumCoureur ORDER BY 4;

    Donc je pense que ma requête répond à la question je n'ai pas uniquement mis la condition PARTICIPER.NumEtape <=13 car il y a des coureurs qui n'ont couru que 4 étapes donc forcément ils allaient être dans les premiers. Pour éviter ça j'ai rajouter en condition pour vérifier si les coureurs ont été présent lors de l'étape 13. ( IN traduisant un inter si je me trompe pas en algèbre ensembliste).

    Mais lorque je lance cette requete j'ai un problème avec le TempsRéalisé, en effet, si je ne mets pas la fonction FORMAT, la somme des TempsRéalisés est renvoyé en type en float. Mon prof m'a donc conseillé d'utiliser FORMAT sauf que je viens de remarquer que si la somme dépasse 24h ça recommence à 0h00m00s et ignore le 02/01/1900 car je n'ai indiquer que 'hh:mm:ss'. Donc ma question est la suivante comment faire pour afficher une période plus longue que 24h.


    Merci d'avance

  2. #2
    Rédacteur/Modérateur

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

    Regarde ce lien dans la faq.

    Cdlt,
    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 à l'essai
    Homme Profil pro
    Consultant decisionnel
    Inscrit en
    Janvier 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant decisionnel

    Informations forums :
    Inscription : Janvier 2016
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Donc je dois faire une fonction avec du VBA ? mais je peux l'utiliser dans ma requete SQL après ?

    J'ai repris la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Public Function HeureSup24(dtm As Date) As String
    'Calcul le nombre d'Heure
    HeureSup24 = DateDiff("h", 0, dtm)
    'On ajoute les minutes et les secondes
    HeureSup24 = HeureSup24 & Format(dtm, ":nn:ss")
    End Function
    Mais quand je veux lancer une requete avec par exemple:

    SELECT COUREUR.NumCoureur, HeureSup24("01/10/1994") FROM COUREUR


    Je prends une erreur en me disant que la fonction n'est pas définie dans l'expression après plusieurs recherches sur le net, j'ai essayé de désactiver les références et les réactiver mais ça m'envoie toujours la même erreur. On vient juste de commencer le VBA , donc on va dire que je nage totalement en eaux troubles pour le moment ^^

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 261
    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 261
    Points : 19 424
    Points
    19 424
    Billets dans le blog
    63
    Par défaut
    Oui, bien sûr, regardes cette discussion.

    Cdlt,
    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 à l'essai
    Homme Profil pro
    Consultant decisionnel
    Inscrit en
    Janvier 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant decisionnel

    Informations forums :
    Inscription : Janvier 2016
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Je comprends pas trop pourquoi vous m'avez envoyé le lien:

    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
    Option Compare Database
     
    Public Sub Essai()
     
    MsgBox (HeureSup24("01/10/1994"))
     
     
    End Sub
     
     
    Function HeureSup24(dtm As Date) As String
        ' Calcule le nombre d'heures
        HeureSup24 = DateDiff("h", 0, dtm)
        ' On ajoute les minutes et les secondes
        HeureSup24 = HeureSup24 & Format(dtm, ":nn:ss")
    End Function
    Ce code là marche bien quand j'exécute mon programme dans vba mais quand je veux l'utiliser dans access j'ai toujurs cette heure Fonction non définie dans l'expression. EDIT: Bon ba j'ai réussi à le faire marcher en recréant mon module avec nom différent de celui de la fonction, au moins ça me fait une première approche de vba sur access c'est vraiment intéressant. Merci pour l'aide en tout cas.

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 261
    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 261
    Points : 19 424
    Points
    19 424
    Billets dans le blog
    63
    Par défaut
    Il faut copier la fonction dans un module indépendant.
    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
    Rédacteur/Modérateur

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

    Peux-tu clore la discussion ?

    Cdlt,
    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

  8. #8
    Membre à l'essai
    Homme Profil pro
    Consultant decisionnel
    Inscrit en
    Janvier 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant decisionnel

    Informations forums :
    Inscription : Janvier 2016
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Pas de soucis je fais ça de suite bonne soirée

  9. #9
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 261
    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 261
    Points : 19 424
    Points
    19 424
    Billets dans le blog
    63
    Par défaut
    Merci pour ta réactivité
    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. format date heure export SQL vers Excel
    Par Pedrito95 dans le forum VBScript
    Réponses: 2
    Dernier message: 23/07/2011, 17h29
  2. [SQL] Fonction de date et heure
    Par dudezerff dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 20/07/2007, 09h47
  3. [VB6]Requete sql access:max (date and time)
    Par enibris dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 05/06/2006, 09h42
  4. format date/heure et concaténation
    Par Waluigi dans le forum Access
    Réponses: 3
    Dernier message: 02/06/2006, 11h25
  5. requete en fonction de l'heure
    Par matberry dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/06/2003, 22h53

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