SQL

wayne2017 57 Messages postés jeudi 23 février 2017Date d'inscription 10 mai 2017 Dernière intervention - 29 mars 2017 à 14:29 - Dernière réponse : cs_JMO 1816 Messages postés jeudi 23 mai 2002Date d'inscription 7 décembre 2017 Dernière intervention
- 30 mars 2017 à 19:26
Bonjour, a tous

Je voudrais calculer en heure et minute la somme total d'heures de chacun des employe de ma base de donnee j'ai utlise cette requette mais cette requete marche pas du tout.
je vous pries de me donner des idees , merci bien

SELECT COUNT temps_travail.table_employe WHERE temp_travail>debut_projet AND temp_travail<fin_projet
Afficher la suite 
57Messages postés jeudi 23 février 2017Date d'inscription 10 mai 2017 Dernière intervention

12 réponses

Répondre au sujet
cs_JMO 1816 Messages postés jeudi 23 mai 2002Date d'inscription 7 décembre 2017 Dernière intervention - 30 mars 2017 à 09:14
0
Utile
Bonjour wayne2017

Dans ta requête, je ne vois pas de "FROM [nom_table]".

Peux-tu nous préciser :
- le nom de ta table;
- les champs et type de données.


jean-marc
Commenter la réponse de cs_JMO
wayne2017 57 Messages postés jeudi 23 février 2017Date d'inscription 10 mai 2017 Dernière intervention - Modifié par wayne2017 le 30/03/2017 à 09:31
0
Utile
Bonjour a tous
Bonjour cs_JMO

Ma table se nomme :RequêteGENERALE

elle est constituee de sept(8) champs et tous les champs sont de type court, a part les champs Heures_Debut, et Heures_Fin, Date _de_demarrage_Projet et Date_de_Fin_Projet qui sont de type [DATE/HEURE]

en gros voici :
Code, Nom,Prenom,Heures_Debut, Heures_Fin, Date _de_demarrage_Projet et Date_de_Fin_Projet,Ref_projet

NB: Ma table est une requette
Commenter la réponse de wayne2017
cs_JMO 1816 Messages postés jeudi 23 mai 2002Date d'inscription 7 décembre 2017 Dernière intervention - 30 mars 2017 à 14:07
0
Utile
8
wayne2017, re-bonjour,

Pour info, tu aurais dû ouvrir cette discussion dans le forum VB.Net

Exemple sur le même principe de ta précédente discussion (Accès BDD).
Public Class Personnel
    Public Property Employe As String
    Public Property Code As String
    Public Property Ref_Projet As String
    Public Property Date_demarrage_Projet As Date
    Public Property Heures_debut As Date
    Public Property Date_fin_Projet As Date
    Public Property Heures_fin As Date
    Public Property Total_Heures As String
End Class
Option Strict On
Option Explicit On
Imports System.Data.OleDb

Public Class FrmROUGRAPH
    Private pathbase As String = Application.StartupPath & "\V_Techno_DB_be.mdb"
    Private connStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & pathbase

    Private ListePersonnel As List(Of Personnel)

    Private da As OleDb.OleDbDataAdapter
    Private ds As DataSet = New DataSet
    Private dtPersonnel As DataTable = New DataTable("Personnel")


    Private Sub FrmROUGRAPH_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Initialize()
    End Sub


    Sub Initialize()
        Using conn As New OleDbConnection(connStr)
            conn.Open()
            Dim querypersonnel As String = " Select * From [requêteGENERALE] " & _
                                            "         Where [Date_demarrage_Projet] Is Not Null And " & _
                                            "               [Date_fin_Projet] Is Not Null "

            da = New OleDb.OleDbDataAdapter(querypersonnel, conn)
            da.Fill(ds, "Personnel")
        End Using

        dtPersonnel = ds.Tables("Personnel")

        ' Initialisation DataGridView1
        With Me.DataGridView1
            .ColumnCount = 6
            .Columns(0).Name = "Personnel"
            .Columns(1).Name = "Code"
            .Columns(2).Name = "Projet"
            .Columns(3).Name = "Début Projet"
            .Columns(4).Name = "Fin Projet"
            .Columns(5).Name = "Total Heures"
            .Columns(0).Width = 140
            .Columns(3).Width = 100
            .Columns(4).Width = 100
            .Columns(5).Width = 100
        End With

        ListePersonnel = (
            From row In dtPersonnel.AsEnumerable()
            Order By row.Field(Of String)("Nom"), row.Field(Of String)("Prenom"), row.Field(Of String)("Code") Ascending
            Select New Personnel With {
                .Employe = row.Field(Of String)("Nom") & New String(" "c, 1) & row.Field(Of String)("Prenom"),
                .Code = row.Field(Of String)("Code"),
                .Ref_Projet = row.Field(Of String)("Ref_Projet"),
                .Date_demarrage_Projet = row.Field(Of Date)("Date_demarrage_Projet"),
                .Heures_debut = row.Field(Of Date)("Heures_debut"),
                .Date_fin_Projet = row.Field(Of Date)("Date_fin_Projet"),
                .Heures_fin = row.Field(Of Date)("Heures_fin"),
                .Total_Heures = returnTotalHeures(row.Field(Of Date)("Date_demarrage_Projet") & New String(" "c, 1) & _
                                                  row.Field(Of Date)("Heures_debut"), _
                                                  row.Field(Of Date)("Date_fin_Projet") & New String(" "c, 1) & _
                                                  row.Field(Of Date)("Heures_fin"))
            }).ToList

        For Each item In ListePersonnel
            With Me.DataGridView1.Rows
                .Add(item.Employe, _
                     item.Code, _
                     item.Ref_Projet, _
                     item.Date_demarrage_Projet.ToString("yyyy/MM/dd") & New String(" "c, 1) & item.Heures_debut.ToString("HH:mm"), _
                     item.Date_fin_Projet.ToString("yyyy/MM/dd") & New String(" "c, 1) & item.Heures_fin.ToString("HH:mm"), _
                     item.Total_Heures)
            End With
        Next
    End Sub

    Function returnTotalHeures(ByVal debut As String, ByVal fin As String) As String
        Dim days As Long = DateDiff(DateInterval.Minute, CDate(debut), CDate(fin))
        Dim iSpan As TimeSpan = TimeSpan.FromMinutes(days)
        Dim iHour As String = CStr(((iSpan.Days * 24) + iSpan.Hours)).PadLeft(2, "0"c) & " h " & _
            iSpan.Minutes.ToString.PadLeft(2, "0"c)
        Return iHour
    End Function
End Class



jean-marc
wayne2017 57 Messages postés jeudi 23 février 2017Date d'inscription 10 mai 2017 Dernière intervention > cs_JMO 1816 Messages postés jeudi 23 mai 2002Date d'inscription 7 décembre 2017 Dernière intervention - 30 mars 2017 à 15:54
Stp cs_JMO

a ce niveau :


da = New OleDb.OleDbDataAdapter(querypersonnel, conn)
da.Fill(ds, "Personnel")


il me souligne " da " et lorsque le systeme me propose si j'accepte qu'il genere un stub de propriete et apres que j'appuie sur "demarrer" il me renvoit ceci coe sms :

Aucune valeur donnée pour un ou plusieurs des paramètres requis


a quoi est du ceci ?
cs_JMO 1816 Messages postés jeudi 23 mai 2002Date d'inscription 7 décembre 2017 Dernière intervention > wayne2017 57 Messages postés jeudi 23 février 2017Date d'inscription 10 mai 2017 Dernière intervention - 30 mars 2017 à 15:57
voir ligne 11 : Private da As OleDb.OleDbDataAdapter
Effectivement, dans mon script de test, j'ai renommé certaines variables.
jordane45 19201 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 10 décembre 2017 Dernière intervention > cs_JMO 1816 Messages postés jeudi 23 mai 2002Date d'inscription 7 décembre 2017 Dernière intervention - 30 mars 2017 à 16:58
de rien ^^
(je passai par là )
cs_JMO 1816 Messages postés jeudi 23 mai 2002Date d'inscription 7 décembre 2017 Dernière intervention > jordane45 19201 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 10 décembre 2017 Dernière intervention - 30 mars 2017 à 19:26
Bonjour Jordane,
Merci pour ton action.
Je suis, en MP, avec notre ami Wayne pour lui expliquer mes propositions et ainsi ne pas "polluer" le forum !!!
wayne2017 57 Messages postés jeudi 23 février 2017Date d'inscription 10 mai 2017 Dernière intervention - 30 mars 2017 à 15:57
Voici mon programme en gros



Option Strict On
Option Explicit On
Imports System.Data
Imports System.Data.OleDb
Imports System.Data.SqlClient

Public Class FrmROUGRAPH
Private pathbase As String = Application.StartupPath & "\V_Techno_DB_be.mdb"
Private connStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & pathbase

Private dts As New DataSet
Private dtt As DataTable



Private ListePersonnel As List(Of Personnel)
Private ds As DataSet = New DataSet
Private dtPersonnel As DataTable = New DataTable("Personnel")










Private Sub FrmProjets_Load(sender As Object, e As EventArgs) Handles MyBase.Load

ComboPrenom.Items.Clear()
ComboNom.Items.Clear()
remplirComboNom()
remplirComboNomProjet()
remplirComboPrenom()

End Sub


'---Remplissage comboBoxCode avec les codes

Sub remplirComboNom()
Try
Dim cn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\V_Techno_DB_be.mdb")

Dim cmd As New OleDbCommand("select DISTINCT Nom from Requête_SommeTotal_Jours ", cn)
cn.Open()
Dim dr As OleDbDataReader = cmd.ExecuteReader
Do While dr.Read
ComboNom.Items.Add(dr.GetValue(0))
Loop
dr.Close()
cn.Close()
Catch ex As Exception
'MsgBox(ex.Message)
End Try
End Sub



Sub remplirComboPrenom()
Try
Dim cn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\V_Techno_DB_be.mdb")

Dim cmd As New OleDbCommand("select DISTINCT Prenom from Requête_SommeTotal_Jours ", cn)
cn.Open()
Dim dr As OleDbDataReader = cmd.ExecuteReader
Do While dr.Read
ComboPrenom.Items.Add(dr.GetValue(0))
Loop
dr.Close()
cn.Close()
Catch ex As Exception
'MsgBox(ex.Message)
End Try
End Sub




'Traitement en fonction de la colonne où se situe la cellule en cours d'édition



Sub remplirComboNomProjet()
Try
Dim cn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\V_Techno_DB_be.mdb")

Dim cmd As New OleDbCommand("select DISTINCT Nom_Projet from Requête_SommeTotal_Jours ", cn)
cn.Open()
Dim dr As OleDbDataReader = cmd.ExecuteReader
Do While dr.Read
ComboNomProjet.Items.Add(dr.GetValue(0))
Loop
dr.Close()
cn.Close()
Catch ex As Exception
'MsgBox(ex.Message)
End Try
End Sub





' Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
'Try
'Dim cn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\wayne\Documents\Visual Studio 2012\Projects\VERSCHUERE\VESCHUERE_TECHNO_Apps\VESCHUERE_TECHNO_Apps\bin\Debug\V_Techno_DB_be.mdb")

' Dim cmd As New OleDbCommand("select * from Requête_SommeTotal_Jours where Nom ='" & ComboNom.Text & "'and Nom_Projet ='" & ComboNomProjet.Text & "'and Prenom ='" & ComboPrenom.Text & "'", cn)

' cn.Open()
' Dim da As New OleDbDataAdapter(cmd)
' Dim ds As New DataSet
' da.Fill(ds, "Requête_SommeTotal_Jours")
' da.Update(ds, "Requête_SommeTotal_Jours")
' DataGridView1.DataSource = ds
' DataGridView1.DataMember = "Requête_SommeTotal_Jours"
' cn.Close()
'Catch ex As Exception

'End Try

' End Sub

'Sub blabla()
Private Sub FrmROUGRAPH_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Initialize()
End Sub

Sub Initialize()
Using conn As New OleDbConnection(connStr)
conn.Open()
Dim querypersonnel As String = " Select * From [requêteGENERALE] " & _
" Where [Date_demarrage_Projet] Is Not Null And " & _
" [Date_fin_Projet] Is Not Null "

da = New OleDb.OleDbDataAdapter(querypersonnel, conn)
da.Fill(ds, "Personnel")
End Using

dtPersonnel = ds.Tables("Personnel")

' Initialisation DataGridView1
With Me.DataGridView1
.ColumnCount = 10
.Columns(0).Name = "Personnel"
.Columns(1).Name = "Code"
.Columns(2).Name = "Nom_Projet"
.Columns(3).Name = "Heures_Depart"
.Columns(4).Name = "Heures_FIN"
.Columns(5).Name = "Date_de_demarrage_Projet"
.Columns(6).Name = "Date_de_Fin_Projet"
.Columns(7).Name = "Total_jours"
.Columns(8).Name = "Total_Heures"
.Columns(9).Name = "Designation_Tache"
.Columns(5).Width = 100
.Columns(6).Width = 100
.Columns(4).Width = 140
.Columns(7).Width = 100
End With

ListePersonnel = (
From row In dtPersonnel.AsEnumerable()
Order By row.Field(Of String)("Nom"), row.Field(Of String)("Prenom"), row.Field(Of String)("Code") Ascending
Select New Personnel With {
.Employers = row.Field(Of String)("Nom") & New String(" "c, 1) & row.Field(Of String)("Prenom"),
.Code = row.Field(Of String)("Code"),
.Nom_Projet = row.Field(Of String)("Nom_Projet"),
.Date_de_demarrage_Projet = row.Field(Of Date)("Date_de_demarrage_Projet"),
.Heures_Depart = row.Field(Of Date)("Heures_Depart"),
.Date_de_Fin_Projet = row.Field(Of Date)("Date_de_Fin_Projet"),
.Designation_Tache = row.Field(Of String)("Designation_Tache"),
.Heures_FIN = row.Field(Of Date)("Heures_FIN"),
.Total_jours = row.Field(Of Integer)("Total_jours"),
.Total_Heures = returnTotalHeures(row.Field(Of Date)("Date_de_demarrage_Projet") & New String(" "c, 1) & _
row.Field(Of Date)("Heures_Depart"), _
row.Field(Of Date)("Date_de_Fin_Projet") & New String(" "c, 1) & _
row.Field(Of Date)("Heures_FIN"))
}).ToList

For Each item In ListePersonnel
With Me.DataGridView1.Rows
.Add(item.Employers, _
item.Code, _
item.Nom_Projet, _
item.Date_de_demarrage_Projet.ToString("yyyy/MM/dd") & New String(" "c, 1) & item.Heures_Depart.ToString("HH:mm"), _
item.Date_de_Fin_Projet.ToString("yyyy/MM/dd") & New String(" "c, 1) & item.Heures_FIN.ToString("HH:mm"), _
item.Total_Heures)
End With
Next
End Sub

Function returnTotalHeures(ByVal debut As String, ByVal fin As String) As String
Dim days As Long = DateDiff(DateInterval.Minute, CDate(debut), CDate(fin))
Dim iSpan As TimeSpan = TimeSpan.FromMinutes(days)
Dim iHour As String = CStr(((iSpan.Days * 24) + iSpan.Hours)).PadLeft(2, "0"c) & " h " & _
iSpan.Minutes.ToString.PadLeft(2, "0"c)
Return iHour
End Function

Private Sub BtnSupprimer_Click(sender As Object, e As EventArgs) Handles BtnSupprimer.Click

Try
Dim cn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\V_Techno_DB_be.mdb")

Dim cmd As New OleDbCommand("select * from Requête_SommeTotal_Jours where Nom='" & ComboNom.Text & "'", cn)
cn.Open()
Dim dr As OleDbDataReader = cmd.ExecuteReader
dr.Read()
dr.Close()
Dim da As New OleDbDataAdapter(cmd)
Dim ds As New DataSet
da.Fill(ds, "V_Techno_DB_be")
ds.Tables("V_Techno_DB_be").Rows(0).Delete()
Dim cb As New OleDbCommandBuilder(da)
da.Update(ds, "V_Techno_DB_be")




cn.Close()
MsgBox("Données supprimées !")

ComboPrenom.Items.Clear()
ComboNom.Items.Clear()
remplirComboNom()
remplirComboNomProjet()
remplirComboPrenom()


Catch ex As Exception
'MsgBox(ex.Message)
End Try
End Sub

Private Sub BtnActualisation_Click(sender As Object, e As EventArgs) Handles BtnActualisation.Click
ComboPrenom.Items.Clear()
ComboNom.Items.Clear()
remplirComboNom()
remplirComboNomProjet()
remplirComboPrenom()
End Sub

Private Sub BtnFermer_Click(sender As Object, e As EventArgs) Handles BtnFermer.Click
Me.Hide()
End Sub
End Class


'Code pour la 1ere Grid

Public Class Personnel
Public Property Employers As String
Public Property Code As String
Public Property Nom_Projet As String
Public Property Heures_Depart As Date
Public Property Heures_FIN As Date
Public Property Date_de_demarrage_Projet As Date
Public Property Date_de_Fin_Projet As Date
Public Property Total_jours As Integer
Public Property Designation_Tache As String
Public Property Total_Heures As String
End Class








Commenter la réponse de cs_JMO
cs_JMO 1816 Messages postés jeudi 23 mai 2002Date d'inscription 7 décembre 2017 Dernière intervention - 30 mars 2017 à 16:01
0
Utile
Fait une pause !!!
Je vais reprendre ton script pour l'optimiser.

jean-marc
Commenter la réponse de cs_JMO

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.