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

Macros et VBA Excel Discussion :

Base de donnée requête SQL VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2005
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 238
    Points : 0
    Points
    0
    Par défaut Base de donnée requête SQL VBA
    Bonjour,

    J'ai une base de donnée avec NOM, PRENOM, FONCTION, ENGIN DATE_DEBUT et DATE_FIN (format jj/mm/aaaa hh:mm:ss)
    J'ai réalisé une connexion ADO avec une requête qui recherche la somme du volume d'heure en fonction des critères fonction et engin :
    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
    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("L8").Text
    Engin = Range("M8").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
    Dans le regroupement, je voudrais ajouté dans une dernière colonne la différence entre la date de fin et la date début ( résultat en heures), pour chaque nom et pour chaque date distinctes.
    Ainsi si j'ai 30 heures dans Total_H pour une fonction et un engin, je voudrais connaitre le nombre d'heure pour chaque date 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éhicule2 passager 27/02/2015 8:00 27/02/2015 20:00
    DUPOND Véhicule3 passager 27/02/2015 8:00 27/02/2015 20:00

    Si je recherche Véhicule1 et conducteur en critère j'obtiens 24 heures pour DUPOND
    Je souhaiterais une colonne qui m'indique que DUPOND à fait 24 h/36h de véhicule1 et conducteur.
    Merci pour votre aide

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour

    Citation Envoyé par jopont Voir le message
    Dans le regroupement, je voudrais ajouté dans une dernière colonne la différence entre la date de fin et la date début ( résultat en heures), pour chaque nom et pour chaque date distinctes
    ...
    Je souhaiterais une colonne qui m'indique que DUPOND à fait 24 h/36h de véhicule1 et conducteur.
    Je n'ai pas compris dans ton exemple d'où sortait les 36h.

    Si tu veux une info par date, tu dois :
    • choisir le champ date (puisque en BD tu en as 2 : début et fin)
    • mettre ce champ en regroupement.



    Cordialement,

    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Je ne comprends pas bien,tu parle du regroupement,ce qui sous entend requête!
    Et tu parle également 36h en heures et pas en dates dans Excel!

    Dans Excel le format "[h]:mm:ss" suffit pour afficher 36:23:30?????

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Avril 2005
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 238
    Points : 0
    Points
    0
    Par défaut
    Bonsoir,

    Le 36 heures sortent du fait que DUPOND est présent les 25, 26 et 27 janvier de 8 h à 20 h.
    Cela nous fait bien 36 heures.
    Parmi ces 36 heures, il a été 24 heures de Véhicule 1 et conducteur.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Oui mais le fait que Excel affiche une date c'est lié au format de cellules!

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Avril 2005
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 238
    Points : 0
    Points
    0
    Par défaut
    Bonjour,
    Oui c'est lié au format de cellule, car je peux avoir des enregistrements dans ma feuille Data comme ci-dessous :

    DURAND véhicule 3 conducteur 28/02/2015 8:00 au 01/03/2015 07:00.

    Faut-il faire un fenêtrage de la première requête ?

    Merci

Discussions similaires

  1. Base Oracle et requêtes SQL sous VBA
    Par Filippo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/03/2015, 09h54
  2. [XL-2010] Base Oracle et requêtes SQL sous VBA
    Par Crysta17 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 18/04/2014, 12h25
  3. Modifier propriété <source base> d'une requête par VBA ou SQL?
    Par 1010titi dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 26/11/2008, 21h16
  4. exo base de donnée avec SQL
    Par chti_juanito dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/11/2005, 16h02
  5. probleme avec une base de donnée postgres SQL
    Par Alexlesilex dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/06/2005, 22h09

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