Manipuler les elements d'une base de donnees

Eagle888 Messages postés 9 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 8 août 2006 - 20 juil. 2006 à 03:49
Eagle888 Messages postés 9 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 8 août 2006 - 20 juil. 2006 à 05:00
Bonjour a tous

voila mon probleme je dispose de la base de donnée suivante
<meta http-equiv= "Content-Type" content="text/html;charset=UTF-8" /><title>ServicePause</title><caption> ServicePause </caption>----
EmployeeID |WindowID |StartPauseTime |EndPauseTime |----
1, 12, 01/07/2006 10:36:36, 01/07/2006 10:38:36, ----
1, 12, 01/07/2006 14:36:36, 01/07/2006 14:39:36, ----
1, 12, 01/07/2006 16:36:36, 01/07/2006 16:41:36, ----
2, 14, 01/07/2006 10:36:36, 01/07/2006 10:38:36, ----
2, 14, 01/07/2006 14:36:36, 01/07/2006 14:39:36, ----
2, 14, 01/07/2006 16:36:36, 01/07/2006 16:41:36, ----
3, 13, 01/07/2006 10:41:36, 01/07/2006 10:45:36, ----
3, 13, 01/07/2006 14:35:36, 01/07/2006 14:41:36, ----
3, 13, 01/07/2006 16:31:36, 01/07/2006 16:41:36, ----
4, 18, 01/07/2006 10:36:36, 01/07/2006 10:44:36, <tfoot></tfoot>

Et je souhaiterais manipuler les informations afin d'afficher le temps total de pause  en seconde en fonction de l'identifiant

Voila le code que j'utilise mais il ne me permet de calculer que pour un seul identifiant

Private cnn1 As ADODB.Connection, MonRs As ADODB.Recordset, MonRs2 As ADODB.Recordset

Private Sub Form_Load()

'Connexion a une table de la base de donnees
Set cnn1 = New ADODB.Connection

cnn1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " & App.Path & "\yt.mdb ;User Id=Admin; Password="
cnn1.Properties("Jet OLEDB:Page Timeout") = 10000
Set MonRs = New ADODB.Recordset

'Choix des element de la table a utiliser
MonRs.Open "SELECT EmployeeID,StartPauseTime,EndPauseTime FROM ServicePause  Where EmployeeID=1
", cnn1, adOpenKeyset, adLockOptimistic

'affichage des elements selectionnés
Set MSHFlexGrid1.DataSource = MonRs

'Calcule du temps de pause et du nomber d'iteration

Dim nest, qw, qwe As Date
Dim qq As Integer
Dim i As Integer

qq = MonRs.RecordCount

For i = 1 To qq

qw = MonRs.Fields("StartPauseTime").Value
qwe = MonRs.Fields("EndPauseTime").Value

nest = nest + DateDiff("s", [qw], [qwe])

MonRs.MoveNext

Next i

'Affichage du temps de pause et du nomber d'iteration

Text1.Text = nest
Text2.Text = qq

End Sub

Merci d'avance

4 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
20 juil. 2006 à 04:09
Salut, je ne te garanti rien mais essai cette petite correction :

<small> Coloration syntaxique automatique </small>

Private Sub Form_Load() 

'Connexion a une table de la base de donnees
Set cnn1 =  New ADODB.Connection 

cnn1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " & App.Path & "\yt.mdb ;User Id=Admin; Password=" 
cnn1.Properties("Jet OLEDB:Page Timeout") = 10000 
Set MonRs = New ADODB.Recordset 

'Choix des element de la table a utiliser
MonRs.Open "SELECT EmployeeID,StartPauseTime,EndPauseTime FROM ServicePause  Where EmployeeID=1", cnn1, adOpenKeyset, adLockOptimistic 

'Calcule du temps de pause et du nomber d'iteration

Dim nest  As As Date 
Dim qw  As Date 
Dim qwe  As Date 
Dim qq  As Integer 
Dim i  As Integer 

qq = MonRs.RecordCount 
i = 0 

Do While MonRs.EOF = False 
   i = i + 1 
   qw = MonRs.Fields("StartPauseTime").Value 
   qwe = MonRs.Fields("EndPauseTime").Value 
   nest =  DateDiff ("s", [qw], [qwe]) 
   With MSHFlexGrid1 
      .AddItem (MonRs.Fields!EmployeeID) 
      .Col  = i 
      .Text = nest 
   End With
   MonRs.MoveNext 
Loop 

'Affichage du temps de pause et du nomber d'iteration

Text1.Text = nest 
Text2.Text = qq 
Set cnn1 = Nothing 
Set MonRs = Nothing 

End Sub 

<small> Coloration syntaxique automatique </small>

@++

  Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"

Merci de prendre le temps de répondre à ce
sondage


Merci de prendre le temps de lire
le Règlement CS


    http://www.smileycentral.com/?partner=ZSzeb008_ZNxdm414YYFR
0
Eagle888 Messages postés 9 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 8 août 2006
20 juil. 2006 à 04:19
Je te remercie mais avec cette modification je ne calcule le temps que pour la derniere  ligne
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
20 juil. 2006 à 04:25
Si la variable qui stocke le calcul est "nest", le résultat est censé ajouter un Item dans
MSFlexGrid avec l'ID et le temps (et pour chaque ligne)

A moins que ton MSFlexGrid serve à autre chose ?

@++

  Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"

Merci de prendre le temps de répondre à ce
sondage


Merci de prendre le temps de lire
le Règlement CS


    http://www.smileycentral.com/?partner=ZSzeb008_ZNxdm414YYFR
0
Eagle888 Messages postés 9 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 8 août 2006
20 juil. 2006 à 05:00
J 'ai pu resoudre en partie mon probleme en utilisant une boucle et modifiant l'ouverture de la base de donnees

dim j as interger

for j =1 to 4

MonRs.Open "SELECT EmployeeID,StartPauseTime,EndPauseTime FROM ServicePause  Where EmployeeID=
"& _
j & "
",cnn1, adOpenKeyset, adLockOptimisticj
.
.
.
MonRs.Close
Next j

Mais le probleme se pose quand les identifiants ne se suivent pas

@
[auteurdetail.aspx?ID=647037 mortalino]je souhaite concatene les resultat par employer ,non tous les affichers
0
Rejoignez-nous