Je suis devant un petit probl=E8me dont je n'arrive pas =E0 trouver la
solution.
J'explique le contexte.
J'ai une table qui doit servir =E0 g=E9rer les =E9quipes de travail
comprenant :
N=B0enr ; NomChefEquip ; N=B01_Empl ; N=B02_Empl ; ... ; N=B08_Empl ;
DateDeb ; DateFin
Dans le but de pouvoir calculer le temps pass=E9 par chantiers
effectu=E9s pendant la p=E9riode de composition de l'=E9quipe il me serait
n=E9cessaire de compter la composition de l'=E9quipe durant la p=E9riode.
D'autre part, je connais quel chantier a =E9t=E9 effectu=E9 par quel Chef
d'=E9quipe enregistr=E9 dans une autre table.
Mon soucis est comment puis-je compter les champs N=B01_Empl =E0
N=B08_Empl non vide ce qui me donnerait le nombre d'=E9quipiers pour la
p=E9riode donn=E9e.
La fonction compte() calcule sur la colonne d'un champ. Pour moi il
s'agit d'obtenir un champ calcul=E9 par enregistrement me donnant le
nbre d'=E9quipiers. L=E0, je s=E8che lamentablement ;+)
Je suis s=FBr que les pro que vous =EAtes, pourrez me trouver la
solution.
Merci encore pour tout ce que vous faites pour nous autres les bleus.
Dans la requete, tu dois mettre: nombre:nbemp([ChefEquipesNom]) où ChefEquipesNom est le nom du champ contenant le nom du chef d'équipe. Regardes l'exemple que je t'ai mis en lien sur l'autre post.
Re
j'ai joint mon interprètation, ici
http://cjoint.com/?iylmXnQN2w
ça ne donne pas la même chose. Sur quoi je dec... ??
Merci encore pour ta patience
A+
Jean
Bonjour,
Dans la requete, tu dois mettre:
nombre:nbemp([ChefEquipesNom]) où ChefEquipesNom est le nom du champ
contenant le nom du chef d'équipe.
Regardes l'exemple que je t'ai mis en lien sur l'autre post.
Re
j'ai joint mon interprètation, ici
http://cjoint.com/?iylmXnQN2w
ça ne donne pas la même chose. Sur quoi je dec... ??
Dans la requete, tu dois mettre: nombre:nbemp([ChefEquipesNom]) où ChefEquipesNom est le nom du champ contenant le nom du chef d'équipe. Regardes l'exemple que je t'ai mis en lien sur l'autre post.
Re
j'ai joint mon interprètation, ici
http://cjoint.com/?iylmXnQN2w
ça ne donne pas la même chose. Sur quoi je dec... ??
Merci encore pour ta patience
A+
Jean
levallo
Re
Soucis tout de même si les enregistrements progressent et que l'on utilise le même Nom de chef d'équipe le nombre reprend le précédent total.
voir http://cjoint.com/?iylW2uaPSE
a+
Jean
Re
Soucis tout de même si les enregistrements progressent et que l'on
utilise le même Nom
de chef d'équipe le nombre reprend le précédent total.
Soucis tout de même si les enregistrements progressent et que l'on utilise le même Nom de chef d'équipe le nombre reprend le précédent total.
voir http://cjoint.com/?iylW2uaPSE
a+
Jean
Eric
re,
Dans ta table les noms des chef d'équipe reviennent plusieurs fois. La méthode FindFirst appliquée sur le champ ChefEquipesNom du recordset créé sur cette table recherche la 1ere occurence dans la table (qui n'a jamais d'ordre) qui correspond au contenu de ChefEquipesNom. C'est pourquoi, tu as toujours les même valeurs en retour pour chacun des chefs d'équipe.
Il faut que tu fasses une recherche non pas sur le champ ChefEquipesNom mais sur un champ discriminant comme NbrEnr qui est la clé primaire de la table. NbrEnr étant un champ NumAuto, il n'a pas de signification ; aussi il faudrait alors utiliser comme critère de recherche : le nom du chef d'équipe et les dates de début et fin de chantier. Je te retourne ta bd avec la fonction nbemp2 qui a pour argument la clé primaire NbrEnr et la fonction nbemp3 avec le nom du chef, la date de début et celle de fin. Voir la requete2. A toi de voir ce qui te convient le mieux.
http://cjoint.com/?iymd5BXPbO
Bonjour,
Dans la requete, tu dois mettre: nombre:nbemp([ChefEquipesNom]) où ChefEquipesNom est le nom du champ contenant le nom du chef d'équipe. Regardes l'exemple que je t'ai mis en lien sur l'autre post.
Re
j'ai joint mon interprètation, ici
http://cjoint.com/?iylmXnQN2w
ça ne donne pas la même chose. Sur quoi je dec... ??
Merci encore pour ta patience
A+
Jean
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
re,
Dans ta table les noms des chef d'équipe reviennent plusieurs fois.
La méthode FindFirst appliquée sur le champ ChefEquipesNom du recordset
créé sur cette table recherche la 1ere occurence dans la table (qui n'a
jamais d'ordre) qui correspond au contenu de ChefEquipesNom. C'est
pourquoi, tu as toujours les même valeurs en retour pour chacun des
chefs d'équipe.
Il faut que tu fasses une recherche non pas sur le champ ChefEquipesNom
mais sur un champ discriminant comme NbrEnr qui est la clé primaire de
la table. NbrEnr étant un champ NumAuto, il n'a pas de signification ;
aussi il faudrait alors utiliser comme critère de recherche : le nom du
chef d'équipe et les dates de début et fin de chantier. Je te retourne
ta bd avec la fonction nbemp2 qui a pour argument la clé primaire NbrEnr
et la fonction nbemp3 avec le nom du chef, la date de début et celle de
fin. Voir la requete2. A toi de voir ce qui te convient le mieux.
http://cjoint.com/?iymd5BXPbO
Bonjour,
Dans la requete, tu dois mettre:
nombre:nbemp([ChefEquipesNom]) où ChefEquipesNom est le nom du champ
contenant le nom du chef d'équipe.
Regardes l'exemple que je t'ai mis en lien sur l'autre post.
Re
j'ai joint mon interprètation, ici
http://cjoint.com/?iylmXnQN2w
ça ne donne pas la même chose. Sur quoi je dec... ??
Merci encore pour ta patience
A+
Jean
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Dans ta table les noms des chef d'équipe reviennent plusieurs fois. La méthode FindFirst appliquée sur le champ ChefEquipesNom du recordset créé sur cette table recherche la 1ere occurence dans la table (qui n'a jamais d'ordre) qui correspond au contenu de ChefEquipesNom. C'est pourquoi, tu as toujours les même valeurs en retour pour chacun des chefs d'équipe.
Il faut que tu fasses une recherche non pas sur le champ ChefEquipesNom mais sur un champ discriminant comme NbrEnr qui est la clé primaire de la table. NbrEnr étant un champ NumAuto, il n'a pas de signification ; aussi il faudrait alors utiliser comme critère de recherche : le nom du chef d'équipe et les dates de début et fin de chantier. Je te retourne ta bd avec la fonction nbemp2 qui a pour argument la clé primaire NbrEnr et la fonction nbemp3 avec le nom du chef, la date de début et celle de fin. Voir la requete2. A toi de voir ce qui te convient le mieux.
http://cjoint.com/?iymd5BXPbO
Bonjour,
Dans la requete, tu dois mettre: nombre:nbemp([ChefEquipesNom]) où ChefEquipesNom est le nom du champ contenant le nom du chef d'équipe. Regardes l'exemple que je t'ai mis en lien sur l'autre post.
Re
j'ai joint mon interprètation, ici
http://cjoint.com/?iylmXnQN2w
ça ne donne pas la même chose. Sur quoi je dec... ??
Merci encore pour ta patience
A+
Jean
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
levallo
Eric
Merci pour toute cette brillante démo. Elle fonctionne parfaitement dans ma db complète.
Je suis loin d'avoir tout assimilé mais je dois dire que sur cette question que j'ai posé j'ai fait de grand pas vers une meilleure connaissance du VBA.
Je vais très certainement adopter le deuxième version. Je la recopie pour ceux qui seraient intéressés.
Function nbEmp3(chef, DateDebut, DateFin) If IsNull(chef) Or IsNull(DateDebut) Or IsNull(DateFin) Then Exit Function Dim rst As DAO.Recordset, n As Byte, nb As Byte, strCritere As String Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané strCritere = "ChefEquipesNom='" & chef & "' and DateDébutEquipe=" & _ Format(DateDebut, "#mm/dd/yyyy#") & _ " and DateFinEquipe=" & Format(DateFin, "#mm/dd/yyyy#") rst.FindFirst strCritere For n = 1 To 8 If Not IsNull(rst("No_" & n & "_Employé")) Then nb = nb + 1 End If Next nbEmp3 = nb Set rst = Nothing End Function
Avec le champ dans la requète : Nb de personnes2: nbEmp3([ChefEquipesNom];[DateDébutEquipe];[DateFinEquipe])
Encore un grand merci à Eric et vous tous qui avez participé par vos suggestions à me faire avancer sur la voie de la connaissance.
Amicalement
Jean
Eric
Merci pour toute cette brillante démo. Elle fonctionne parfaitement
dans ma db complète.
Je suis loin d'avoir tout assimilé mais je dois dire que sur cette
question que j'ai posé j'ai fait de grand pas vers une meilleure
connaissance du VBA.
Je vais très certainement adopter le deuxième version. Je la recopie
pour ceux qui seraient intéressés.
Function nbEmp3(chef, DateDebut, DateFin)
If IsNull(chef) Or IsNull(DateDebut) Or IsNull(DateFin) Then Exit
Function
Dim rst As DAO.Recordset, n As Byte, nb As Byte, strCritere As String
Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu
instantané
strCritere = "ChefEquipesNom='" & chef & "' and DateDébutEquipe=" & _
Format(DateDebut, "#mm/dd/yyyy#") & _
" and DateFinEquipe=" & Format(DateFin,
"#mm/dd/yyyy#")
rst.FindFirst strCritere
For n = 1 To 8
If Not IsNull(rst("No_" & n & "_Employé")) Then
nb = nb + 1
End If
Next
nbEmp3 = nb
Set rst = Nothing
End Function
Avec le champ dans la requète : Nb de personnes2:
nbEmp3([ChefEquipesNom];[DateDébutEquipe];[DateFinEquipe])
Encore un grand merci à Eric et vous tous qui avez participé par vos
suggestions à me faire avancer sur la voie de la connaissance.
Merci pour toute cette brillante démo. Elle fonctionne parfaitement dans ma db complète.
Je suis loin d'avoir tout assimilé mais je dois dire que sur cette question que j'ai posé j'ai fait de grand pas vers une meilleure connaissance du VBA.
Je vais très certainement adopter le deuxième version. Je la recopie pour ceux qui seraient intéressés.
Function nbEmp3(chef, DateDebut, DateFin) If IsNull(chef) Or IsNull(DateDebut) Or IsNull(DateFin) Then Exit Function Dim rst As DAO.Recordset, n As Byte, nb As Byte, strCritere As String Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané strCritere = "ChefEquipesNom='" & chef & "' and DateDébutEquipe=" & _ Format(DateDebut, "#mm/dd/yyyy#") & _ " and DateFinEquipe=" & Format(DateFin, "#mm/dd/yyyy#") rst.FindFirst strCritere For n = 1 To 8 If Not IsNull(rst("No_" & n & "_Employé")) Then nb = nb + 1 End If Next nbEmp3 = nb Set rst = Nothing End Function
Avec le champ dans la requète : Nb de personnes2: nbEmp3([ChefEquipesNom];[DateDébutEquipe];[DateFinEquipe])
Encore un grand merci à Eric et vous tous qui avez participé par vos suggestions à me faire avancer sur la voie de la connaissance.