J'ai une table qui mémorise les activités des salariés :
dans un mois, j'ai
salarié jour_1 jour_2 jour_3 jour_4 jour_5 ...
jour_11 ....... jour_31
Martin présent malade malade présent congé congé
Je dois extraire :
Martin :
malade : jour_2 à jour_3
en congé : jour_5 à jour_11
etc.
est-ce qu'il y a une méthode simple pour extraire ces info. ?
Merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
3stone
Salut,
"TF"
J'ai une table qui mémorise les activités des salariés : dans un mois, j'ai salarié jour_1 jour_2 jour_3 jour_4 jour_5 ... jour_11 ....... jour_31 Martin présent malade malade présent congé congé
Je dois extraire : Martin : malade : jour_2 à jour_3 en congé : jour_5 à jour_11 etc.
L'organisation des données en "horizontal" ammène toujours ce genre de problèmes...
Pour contourner, tu peux te créer une fonction "maison" dans laquelle tu boucle sur les champs
Un début... que tu appele dans la fenêtre d'exécution immédiate par
? fnActivite("Martin")
Function fnActivite(sSalarie) Dim db As DAO.database Dim rs As DAO.Recordset Dim i As Integer
Set db = CurrentDb Set rs = db.OpenRecordset("tblSalaries", dbOpenDynaset)
If Not rs.EOF Then rs.FindFirst "[Salarie]=""" & sSalarie & """" If Not rs.NoMatch Then For i = 1 To 31 Debug.Print rs.Fields("Jour_" & i) ' ' ici, il faudra *regrouper* les données... ' Next i End If End If
rs.Close Set rs = Nothing Set db = Nothing End Function
PS: Le nom du salarié est également une mauvaise clé primaire...
-- A+ Pierre (3stone) Access MVP ----------------------------- http://users.skynet.be/mpfa -----------------------------
Salut,
"TF"
J'ai une table qui mémorise les activités des salariés :
dans un mois, j'ai
salarié jour_1 jour_2 jour_3 jour_4 jour_5 ...
jour_11 ....... jour_31
Martin présent malade malade présent congé congé
Je dois extraire :
Martin :
malade : jour_2 à jour_3
en congé : jour_5 à jour_11
etc.
L'organisation des données en "horizontal" ammène toujours ce genre de problèmes...
Pour contourner, tu peux te créer une fonction "maison"
dans laquelle tu boucle sur les champs
Un début...
que tu appele dans la fenêtre d'exécution immédiate par
? fnActivite("Martin")
Function fnActivite(sSalarie)
Dim db As DAO.database
Dim rs As DAO.Recordset
Dim i As Integer
Set db = CurrentDb
Set rs = db.OpenRecordset("tblSalaries", dbOpenDynaset)
If Not rs.EOF Then
rs.FindFirst "[Salarie]=""" & sSalarie & """"
If Not rs.NoMatch Then
For i = 1 To 31
Debug.Print rs.Fields("Jour_" & i)
'
' ici, il faudra *regrouper* les données...
'
Next i
End If
End If
rs.Close
Set rs = Nothing
Set db = Nothing
End Function
PS: Le nom du salarié est également une mauvaise clé primaire...
--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------
J'ai une table qui mémorise les activités des salariés : dans un mois, j'ai salarié jour_1 jour_2 jour_3 jour_4 jour_5 ... jour_11 ....... jour_31 Martin présent malade malade présent congé congé
Je dois extraire : Martin : malade : jour_2 à jour_3 en congé : jour_5 à jour_11 etc.
L'organisation des données en "horizontal" ammène toujours ce genre de problèmes...
Pour contourner, tu peux te créer une fonction "maison" dans laquelle tu boucle sur les champs
Un début... que tu appele dans la fenêtre d'exécution immédiate par
? fnActivite("Martin")
Function fnActivite(sSalarie) Dim db As DAO.database Dim rs As DAO.Recordset Dim i As Integer
Set db = CurrentDb Set rs = db.OpenRecordset("tblSalaries", dbOpenDynaset)
If Not rs.EOF Then rs.FindFirst "[Salarie]=""" & sSalarie & """" If Not rs.NoMatch Then For i = 1 To 31 Debug.Print rs.Fields("Jour_" & i) ' ' ici, il faudra *regrouper* les données... ' Next i End If End If
rs.Close Set rs = Nothing Set db = Nothing End Function
PS: Le nom du salarié est également une mauvaise clé primaire...
-- A+ Pierre (3stone) Access MVP ----------------------------- http://users.skynet.be/mpfa -----------------------------