SQL

wayne2017 Messages postés 57 Date d'inscription jeudi 23 février 2017 Statut Membre Dernière intervention 10 mai 2017 - Modifié le 29 mars 2017 à 14:30
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 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

4 réponses

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
30 mars 2017 à 09:14
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
0
wayne2017 Messages postés 57 Date d'inscription jeudi 23 février 2017 Statut Membre Dernière intervention 10 mai 2017
Modifié le 30 mars 2017 à 09:31
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
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
30 mars 2017 à 14:07
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
0
wayne2017 Messages postés 57 Date d'inscription jeudi 23 février 2017 Statut Membre Dernière intervention 10 mai 2017
30 mars 2017 à 14:49
D'accord c'est compris merci , je déplace maintenant cette suite
après quoi je complète le programme et je te dis quoi tantôt
merci beaucoup
0
wayne2017 Messages postés 57 Date d'inscription jeudi 23 février 2017 Statut Membre Dernière intervention 10 mai 2017
30 mars 2017 à 14:56
merci d'avoir deplace a l'avance
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27 > wayne2017 Messages postés 57 Date d'inscription jeudi 23 février 2017 Statut Membre Dernière intervention 10 mai 2017
30 mars 2017 à 14:59
c'est pas moi !!! Je ne suis qu'un lambda bénévole.
Donc merci au modérateur qui a déplacé cette discussion dans le bon forum.
0
wayne2017 Messages postés 57 Date d'inscription jeudi 23 février 2017 Statut Membre Dernière intervention 10 mai 2017 > cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018
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 ?
0
wayne2017 Messages postés 57 Date d'inscription jeudi 23 février 2017 Statut Membre Dernière intervention 10 mai 2017
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








0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
30 mars 2017 à 16:01
Fait une pause !!!
Je vais reprendre ton script pour l'optimiser.

jean-marc
0
Rejoignez-nous