problème de requête sql adodb

jopont

XLDnaute Impliqué
Bonjour, j'ai une macro en VBA avec adodb. Cette macro récupère un nombre d'heure par nom en fonction de deux critères.

J'aimerais ajouter une colonne qui me restitue le nombre total, sans critères, sur les toutes les dates distinctes.
Exemple :
Ligne sur la feuille Data :
DUPOND Véhicule1 conducteur 25/01/2015 8:00 25/01/2015 20:00
DUPOND véhicule1 conducteur 26/01/2015 8:00 26/01/2015 20:00
DUPOND véhicule3 conducteur 27/02/2015 8:00 27/02/2015 20:00
DUPOND Véhicule3 passager 27/02/2015 8:00 27/02/2015 20:00
DURAND véhicule 3 conducteur 28/02/2015 8:00 au 01/03/2015 07:00.
DURAND véhicule 4 passager 28/02/2015 8:00 au 01/03/2015 07:00.
DURAND véhicule 5 passager 28/02/2015 8:00 au 28/02/2015 20:00.
DURAND véhicule 4 conducteur 02/03/2015 8:00 au 03/03/2015 07:00.

Si je sélectionne les critères véhicule1 et conducteur, mon recordset va afficher DUPOND 24 heures. DURAND ne s'affichera pas.
Je voudrais une colonne qui me donne DUPOND 24 heures de véhicule1 conducteur sur 36 heures.
36 heures car il est présent les 25, 26 et 27 sur une période de 12 heures.

Si je sélectionne les critères véhicule3 conducteur, mon recordset affichera :
DUPOND 12 heures
DURAND 24 heures
Je voudrais une colonne qui m'affiche :
DUPOND 12 heures sur 36 heures
DURAND 24 heures sur 48 heures
car DURAND est présent 24heures le 28 et 24 heures le 02 mars

La requête initiale :
Code:
'Add reference for Microsoft Activex Data Objects Library

Sub sbADO() 'Requêtes avec critères fonction et engins
Dim sSQLQry As String
Dim ReturnArray

Dim Conn As New ADODB.Connection
Dim mrs As New ADODB.Recordset

Dim DBPath As String, sconnect As String
Dim fct As String, Engin As String
fct = Range("O8").Text
Engin = Range("P8").Text

efface
DBPath = ThisWorkbook.FullName


sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes';"

Conn.Open sconnect
   sSQLSting = "SELECT GRADE,NOM,PRENOM,SUM(DATE_FIN-DATE_DEBUT) AS Total_H From [Data$] WHERE FONCTION = '" & fct & "' AND ENGIN = '" & Engin & "' GROUP BY GRADE,NOM,PRENOM  ORDER BY GRADE,NOM,PRENOM "
    
    mrs.Open sSQLSting, Conn

        ActiveSheet.Range("B10").CopyFromRecordset mrs

    mrs.Close


Conn.Close

Call classement.classement
End Sub
 

Discussions similaires

Réponses
2
Affichages
511

Statistiques des forums

Discussions
312 103
Messages
2 085 324
Membres
102 862
dernier inscrit
Emma35400