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

Langage SQL Discussion :

[Access2003/VBA]Evolution de requète SQL


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut [Access2003/VBA]Evolution de requète SQL
    Bonjour,

    Je me permets de reposer la question ici, l'ayant déjà posée sans succès sur le forum Access.

    Mon problème est le suivant : je reprends une application Access2003/VBA écrite par une autre personne, qu'il me faut fairte évoluer.

    Mon expèrience en développement Access est encore très limitée et j'avoue que je ne suis pas un grand crack du SQL.

    Dans le modèle de données il y a ceci (liens entre les tables) :
    Chaines métier -> Fonctions -> Applications -> Interruptions
    Chaines métier -> Fonctions -> lien fonction interruption -> Interruptions

    Je cherche à faire évoluer une requète afin de regrouper mes résultats par rapport aux applications, au lieu de les faire par fonctions.


    Code :


    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
     
     
     
    SELECT 
       I.Int_ID, 
       PM.ProcM_Dir_id, 
       I.Int_DateHeureDebut, 
       IIf(I.Int_DateHeureFin Is Null,Format(pDateFin,"dd/mm/yyyy"" 23"":""59"":""59"""),
       I.Int_DateHeureFin) AS Int_DateHeureFinX, 
       A.App_ID, 
       A.App_Libelle, 
       F.Fct_ID, 
       F.Fct_Libelle, 
       PM.ProcM_ID, 
       PM.ProcM_Code, 
       PM.ProcM_Libelle, 
       I.Int_Description, 
       I.Int_Inc_Cause, 
       I.Int_Inc_Action, 
       DateDiff("n",I.Int_DateHeureDebut,I.Int_DateHeureFin) AS DureeTotaleMinutes, 
       DateDiff("s",I.Int_DateHeureDebut,I.Int_DateHeureFin) AS DureeTotaleSecondes, 
       Int(DureeTotaleSecondes/(24*60*60)) AS DureeJ, 
       Int((DureeTotaleSecondes-(DureeJ*24*60*60))/(60*60)) AS DureeH, 
       Int((DureeTotaleSecondes-(DureeJ*24*60*60)-(DureeH*60*60))/60) AS DureeM, 
       Int(DureeTotaleSecondes-(DureeJ*24*60*60)-(DureeH*60*60)-(DureeM*60)) AS DureeS
    FROM 
       ProcessusMetier AS PM 
          RIGHT JOIN Fonction AS F 
             ON PM.ProcM_ID = F.Fct_ProcM_id, 
       Application AS A 
          RIGHT JOIN (lk_InterruptionFonction AS IntF 
          RIGHT JOIN vw_Int_Periode AS I ON IntF.IF_Int_id = I.Int_ID) 
             ON A.App_ID = I.Int_App_id
    WHERE 
       (((PM.ProcM_Dir_id)=[pDirID]))
    GROUP BY 
       A.App_Libelle
    ORDER BY 
       A.App_Libelle, F.Fct_Id, I.Int_DateHeureDebut;
    Quand je lexécute, j'ai "expression de jointure non supportée".

    Est ce que quelqu'un pourraît me donner un petit coups de main s'il vous plait ?

    Par avance merci.

    Marco.

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Visiblement, le bloc des jointures n'est pas correct :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    FROM 
       ProcessusMetier AS PM 
          RIGHT JOIN Fonction AS F 
             ON PM.ProcM_ID = F.Fct_ProcM_id, 
       Application AS A 
          RIGHT JOIN (lk_InterruptionFonction AS IntF 
          RIGHT JOIN vw_Int_Periode AS I ON IntF.IF_Int_id = I.Int_ID) 
             ON A.App_ID = I.Int_App_id
    Quelle jointure entre
    ProcessusMetier et Application ?

    Ce thread devrait t'éclaircir car Access et les jointures, c'est un peu compliqué à mon goût, il faut apparement les imbriquer : [Access 2000] LEFT JOIN un peu complexe
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

Discussions similaires

  1. [XL-2010] VBA Excel 2010 - Requête SQL Noms de champs + données
    Par ChipsAlaMenthe dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/05/2015, 19h04
  2. Réponses: 2
    Dernier message: 20/02/2008, 12h30
  3. Réponses: 8
    Dernier message: 19/07/2007, 11h44
  4. [Access2003/VBA]Evolution de requète SQL
    Par cotmar dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 18/08/2006, 00h00
  5. Conversion d'une requête SQL en VBA
    Par Keraccess dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 26/10/2004, 17h33

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