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.
Si je ne me trompe pas, tu ne peux pas invoquer de méthode Find (FindFirst, FindNext,...) sur un jeu d'enregistrements de type Table, ce qui est ton cas d'après ta déclaration d'ouverture du Recordset. Pour contourner le problème, déclares comme suit: set rst=currentdb.openrecordset("tbEquipes", dbOpenDynaset) ' jeu dynamique ou set rst=currentdb.openrecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané
Merci Eric, mais je plante toujours au même endroit. J'ai essayé les Trois solutions. Voici la function telle qu'elle est actuellement
Function nbEmp(chef) Dim rst As Recordset ' Set rst = CurrentDb.OpenRecordset("tbEquipes") ' Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenDynaset) ' jeu dynamique Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané rst.FindFirst "ChefEquipesNom='" & chef & "'" For N = 1 To 8 If Not IsNull(rst("n°" & N & "_empl")) Then nb = nb + 1 End If Next nbEmp = nb Set rst = Nothing End Function
Pour répondre à Michel, j'ai vérifié que j'avais bien coché Microsoft DAO 3.6 Library. Il était coché. Ensuite j'ai décoché microsoft activeX data objet 2.8
Le message d'erreur était et reste Membre de méthode ou de données introuvables.
Cela n'a rien changé.
La table comporte le champ ChefEquipesNom format texte
A+
Jean Bonjour Peux tu preciser le message d erreur A+
Je n avais pas bien lu
Il me semble que le probleme vient plutot de la ligne
If Not IsNull(rst("n°" & N & "_empl")) Then Il faut il me semble les enumerer un par un et non dans une boucle avec
une variable
Apres verif j ai dit une anerie Desole
"jt" <jt@nospam.fr> a écrit dans le message de news:
e2uDAjtxGHA.3604@TK2MSFTNGP04.phx.gbl...
"jt" <jt@nospam.fr> a écrit dans le message de news:
ughWLgtxGHA.4204@TK2MSFTNGP04.phx.gbl...
<levallo@free.fr> a écrit dans le message de news:
1156352625.094348.305660@p79g2000cwp.googlegroups.com...
Bonjour,
Si je ne me trompe pas, tu ne peux pas invoquer de méthode Find
(FindFirst, FindNext,...) sur un jeu d'enregistrements de type Table, ce
qui est ton cas d'après ta déclaration d'ouverture du Recordset. Pour
contourner le problème, déclares comme suit:
set rst=currentdb.openrecordset("tbEquipes", dbOpenDynaset) ' jeu
dynamique
ou
set rst=currentdb.openrecordset("tbEquipes", dbOpenSnapshot) ' jeu
instantané
Merci Eric,
mais je plante toujours au même endroit.
J'ai essayé les Trois solutions. Voici la function telle qu'elle est
actuellement
Function nbEmp(chef)
Dim rst As Recordset
' Set rst = CurrentDb.OpenRecordset("tbEquipes")
' Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenDynaset) ' jeu
dynamique
Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu
instantané
rst.FindFirst "ChefEquipesNom='" & chef & "'"
For N = 1 To 8
If Not IsNull(rst("n°" & N & "_empl")) Then
nb = nb + 1
End If
Next
nbEmp = nb
Set rst = Nothing
End Function
Pour répondre à Michel, j'ai vérifié que j'avais bien coché
Microsoft DAO 3.6 Library. Il était coché.
Ensuite j'ai décoché microsoft activeX data objet 2.8
Le message d'erreur était et reste Membre de méthode ou de données
introuvables.
Cela n'a rien changé.
La table comporte le champ ChefEquipesNom format texte
A+
Jean
Bonjour
Peux tu preciser le message d erreur
A+
Je n avais pas bien lu
Il me semble que le probleme vient plutot de la ligne
If Not IsNull(rst("n°" & N & "_empl")) Then
Il faut il me semble les enumerer un par un et non dans une boucle avec
Si je ne me trompe pas, tu ne peux pas invoquer de méthode Find (FindFirst, FindNext,...) sur un jeu d'enregistrements de type Table, ce qui est ton cas d'après ta déclaration d'ouverture du Recordset. Pour contourner le problème, déclares comme suit: set rst=currentdb.openrecordset("tbEquipes", dbOpenDynaset) ' jeu dynamique ou set rst=currentdb.openrecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané
Merci Eric, mais je plante toujours au même endroit. J'ai essayé les Trois solutions. Voici la function telle qu'elle est actuellement
Function nbEmp(chef) Dim rst As Recordset ' Set rst = CurrentDb.OpenRecordset("tbEquipes") ' Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenDynaset) ' jeu dynamique Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané rst.FindFirst "ChefEquipesNom='" & chef & "'" For N = 1 To 8 If Not IsNull(rst("n°" & N & "_empl")) Then nb = nb + 1 End If Next nbEmp = nb Set rst = Nothing End Function
Pour répondre à Michel, j'ai vérifié que j'avais bien coché Microsoft DAO 3.6 Library. Il était coché. Ensuite j'ai décoché microsoft activeX data objet 2.8
Le message d'erreur était et reste Membre de méthode ou de données introuvables.
Cela n'a rien changé.
La table comporte le champ ChefEquipesNom format texte
A+
Jean Bonjour Peux tu preciser le message d erreur A+
Je n avais pas bien lu
Il me semble que le probleme vient plutot de la ligne
If Not IsNull(rst("n°" & N & "_empl")) Then Il faut il me semble les enumerer un par un et non dans une boucle avec
une variable
Apres verif j ai dit une anerie Desole
Eric
re,
Préfixes le recordset dans sa déclaration: Dim rst As Recordset devient: Dim rst As DAO.Recordset car tu dois encore avoir une référence à ADO.
Je viens de tester avec les 2 référence DAO et ADO et en préfixant je n'ai plus le message d'erreur.
Bonjour,
Si je ne me trompe pas, tu ne peux pas invoquer de méthode Find (FindFirst, FindNext,...) sur un jeu d'enregistrements de type Table, ce qui est ton cas d'après ta déclaration d'ouverture du Recordset. Pour contourner le problème, déclares comme suit: set rst=currentdb.openrecordset("tbEquipes", dbOpenDynaset) ' jeu dynamique ou set rst=currentdb.openrecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané
Merci Eric, mais je plante toujours au même endroit. J'ai essayé les Trois solutions. Voici la function telle qu'elle est actuellement
Function nbEmp(chef) Dim rst As Recordset ' Set rst = CurrentDb.OpenRecordset("tbEquipes") ' Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenDynaset) ' jeu dynamique Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané rst.FindFirst "ChefEquipesNom='" & chef & "'" For N = 1 To 8 If Not IsNull(rst("n°" & N & "_empl")) Then nb = nb + 1 End If Next nbEmp = nb Set rst = Nothing End Function
Pour répondre à Michel, j'ai vérifié que j'avais bien coché Microsoft DAO 3.6 Library. Il était coché. Ensuite j'ai décoché microsoft activeX data objet 2.8
Le message d'erreur était et reste Membre de méthode ou de données introuvables.
Cela n'a rien changé.
La table comporte le champ ChefEquipesNom format texte
A+
Jean
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
re,
Préfixes le recordset dans sa déclaration:
Dim rst As Recordset devient:
Dim rst As DAO.Recordset
car tu dois encore avoir une référence à ADO.
Je viens de tester avec les 2 référence DAO et ADO et en préfixant je
n'ai plus le message d'erreur.
Bonjour,
Si je ne me trompe pas, tu ne peux pas invoquer de méthode Find
(FindFirst, FindNext,...) sur un jeu d'enregistrements de type Table, ce
qui est ton cas d'après ta déclaration d'ouverture du Recordset. Pour
contourner le problème, déclares comme suit:
set rst=currentdb.openrecordset("tbEquipes", dbOpenDynaset) ' jeu dynamique
ou
set rst=currentdb.openrecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané
Merci Eric,
mais je plante toujours au même endroit.
J'ai essayé les Trois solutions. Voici la function telle qu'elle est
actuellement
Function nbEmp(chef)
Dim rst As Recordset
' Set rst = CurrentDb.OpenRecordset("tbEquipes")
' Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenDynaset) ' jeu
dynamique
Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu
instantané
rst.FindFirst "ChefEquipesNom='" & chef & "'"
For N = 1 To 8
If Not IsNull(rst("n°" & N & "_empl")) Then
nb = nb + 1
End If
Next
nbEmp = nb
Set rst = Nothing
End Function
Pour répondre à Michel, j'ai vérifié que j'avais bien coché
Microsoft DAO 3.6 Library. Il était coché.
Ensuite j'ai décoché microsoft activeX data objet 2.8
Le message d'erreur était et reste Membre de méthode ou de données
introuvables.
Cela n'a rien changé.
La table comporte le champ ChefEquipesNom format texte
A+
Jean
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Préfixes le recordset dans sa déclaration: Dim rst As Recordset devient: Dim rst As DAO.Recordset car tu dois encore avoir une référence à ADO.
Je viens de tester avec les 2 référence DAO et ADO et en préfixant je n'ai plus le message d'erreur.
Bonjour,
Si je ne me trompe pas, tu ne peux pas invoquer de méthode Find (FindFirst, FindNext,...) sur un jeu d'enregistrements de type Table, ce qui est ton cas d'après ta déclaration d'ouverture du Recordset. Pour contourner le problème, déclares comme suit: set rst=currentdb.openrecordset("tbEquipes", dbOpenDynaset) ' jeu dynamique ou set rst=currentdb.openrecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané
Merci Eric, mais je plante toujours au même endroit. J'ai essayé les Trois solutions. Voici la function telle qu'elle est actuellement
Function nbEmp(chef) Dim rst As Recordset ' Set rst = CurrentDb.OpenRecordset("tbEquipes") ' Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenDynaset) ' jeu dynamique Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané rst.FindFirst "ChefEquipesNom='" & chef & "'" For N = 1 To 8 If Not IsNull(rst("n°" & N & "_empl")) Then nb = nb + 1 End If Next nbEmp = nb Set rst = Nothing End Function
Pour répondre à Michel, j'ai vérifié que j'avais bien coché Microsoft DAO 3.6 Library. Il était coché. Ensuite j'ai décoché microsoft activeX data objet 2.8
Le message d'erreur était et reste Membre de méthode ou de données introuvables.
Cela n'a rien changé.
La table comporte le champ ChefEquipesNom format texte
A+
Jean
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
jt
a écrit dans le message de news:
Bonjour,
Si je ne me trompe pas, tu ne peux pas invoquer de méthode Find (FindFirst, FindNext,...) sur un jeu d'enregistrements de type Table, ce qui est ton cas d'après ta déclaration d'ouverture du Recordset. Pour contourner le problème, déclares comme suit: set rst=currentdb.openrecordset("tbEquipes", dbOpenDynaset) ' jeu dynamique ou set rst=currentdb.openrecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané
Merci Eric, mais je plante toujours au même endroit. J'ai essayé les Trois solutions. Voici la function telle qu'elle est actuellement
Function nbEmp(chef) Dim rst As Recordset ' Set rst = CurrentDb.OpenRecordset("tbEquipes") ' Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenDynaset) ' jeu dynamique Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané rst.FindFirst "ChefEquipesNom='" & chef & "'" For N = 1 To 8 If Not IsNull(rst("n°" & N & "_empl")) Then nb = nb + 1 End If Next nbEmp = nb Set rst = Nothing End Function
Pour répondre à Michel, j'ai vérifié que j'avais bien coché Microsoft DAO 3.6 Library. Il était coché. Ensuite j'ai décoché microsoft activeX data objet 2.8
Le message d'erreur était et reste Membre de méthode ou de données introuvables.
Cela n'a rien changé.
La table comporte le champ ChefEquipesNom format texte
A+
Jean
reBonjour Tu peux remplacer ' Set rst = CurrentDb.OpenRecordset("tbEquipes") ' Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenDynaset) ' jeu dynamique Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané rst.FindFirst "ChefEquipesNom='" & chef & "'" par set rst=currentdb.openrecordset("select * from tbEquipes where ChefEquipesNom='" & chef & "'")
<levallo@free.fr> a écrit dans le message de news:
1156352625.094348.305660@p79g2000cwp.googlegroups.com...
Bonjour,
Si je ne me trompe pas, tu ne peux pas invoquer de méthode Find
(FindFirst, FindNext,...) sur un jeu d'enregistrements de type Table, ce
qui est ton cas d'après ta déclaration d'ouverture du Recordset. Pour
contourner le problème, déclares comme suit:
set rst=currentdb.openrecordset("tbEquipes", dbOpenDynaset) ' jeu
dynamique
ou
set rst=currentdb.openrecordset("tbEquipes", dbOpenSnapshot) ' jeu
instantané
Merci Eric,
mais je plante toujours au même endroit.
J'ai essayé les Trois solutions. Voici la function telle qu'elle est
actuellement
Function nbEmp(chef)
Dim rst As Recordset
' Set rst = CurrentDb.OpenRecordset("tbEquipes")
' Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenDynaset) ' jeu
dynamique
Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu
instantané
rst.FindFirst "ChefEquipesNom='" & chef & "'"
For N = 1 To 8
If Not IsNull(rst("n°" & N & "_empl")) Then
nb = nb + 1
End If
Next
nbEmp = nb
Set rst = Nothing
End Function
Pour répondre à Michel, j'ai vérifié que j'avais bien coché
Microsoft DAO 3.6 Library. Il était coché.
Ensuite j'ai décoché microsoft activeX data objet 2.8
Le message d'erreur était et reste Membre de méthode ou de données
introuvables.
Cela n'a rien changé.
La table comporte le champ ChefEquipesNom format texte
A+
Jean
reBonjour
Tu peux remplacer
' Set rst = CurrentDb.OpenRecordset("tbEquipes")
' Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenDynaset) ' jeu
dynamique
Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu
instantané
rst.FindFirst "ChefEquipesNom='" & chef & "'"
par
set rst=currentdb.openrecordset("select * from tbEquipes where
ChefEquipesNom='" & chef & "'")
Si je ne me trompe pas, tu ne peux pas invoquer de méthode Find (FindFirst, FindNext,...) sur un jeu d'enregistrements de type Table, ce qui est ton cas d'après ta déclaration d'ouverture du Recordset. Pour contourner le problème, déclares comme suit: set rst=currentdb.openrecordset("tbEquipes", dbOpenDynaset) ' jeu dynamique ou set rst=currentdb.openrecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané
Merci Eric, mais je plante toujours au même endroit. J'ai essayé les Trois solutions. Voici la function telle qu'elle est actuellement
Function nbEmp(chef) Dim rst As Recordset ' Set rst = CurrentDb.OpenRecordset("tbEquipes") ' Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenDynaset) ' jeu dynamique Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané rst.FindFirst "ChefEquipesNom='" & chef & "'" For N = 1 To 8 If Not IsNull(rst("n°" & N & "_empl")) Then nb = nb + 1 End If Next nbEmp = nb Set rst = Nothing End Function
Pour répondre à Michel, j'ai vérifié que j'avais bien coché Microsoft DAO 3.6 Library. Il était coché. Ensuite j'ai décoché microsoft activeX data objet 2.8
Le message d'erreur était et reste Membre de méthode ou de données introuvables.
Cela n'a rien changé.
La table comporte le champ ChefEquipesNom format texte
A+
Jean
reBonjour Tu peux remplacer ' Set rst = CurrentDb.OpenRecordset("tbEquipes") ' Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenDynaset) ' jeu dynamique Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané rst.FindFirst "ChefEquipesNom='" & chef & "'" par set rst=currentdb.openrecordset("select * from tbEquipes where ChefEquipesNom='" & chef & "'")
levallo
re,
Préfixes le recordset dans sa déclaration: Dim rst As Recordset devient: Dim rst As DAO.Recordset car tu dois encore avoir une référence à ADO.
Je viens de tester avec les 2 référence DAO et ADO et en préfixant je n'ai plus le message d'erreur.
Re Eric
En remplaçant Dim rst As Recordset par: Dim rst As DAO.Recordset le message d'erreur change il devient : Errur d'exécution '3265' avec : "Eléments non trouvé dans cette collection "et je bloque sur : If Not IsNull(rst("n°" & N & "_empl")) Then
Dans les références : Microsoft DAO 3.6 Object Library est bien coché.
A+
Jean
re,
Préfixes le recordset dans sa déclaration:
Dim rst As Recordset devient:
Dim rst As DAO.Recordset
car tu dois encore avoir une référence à ADO.
Je viens de tester avec les 2 référence DAO et ADO et en préfixant je
n'ai plus le message d'erreur.
Re Eric
En remplaçant
Dim rst As Recordset par:
Dim rst As DAO.Recordset
le message d'erreur change il devient : Errur d'exécution '3265' avec
:
"Eléments non trouvé dans cette collection "et je bloque sur :
If Not IsNull(rst("n°" & N & "_empl")) Then
Dans les références : Microsoft DAO 3.6 Object Library est bien
coché.
Préfixes le recordset dans sa déclaration: Dim rst As Recordset devient: Dim rst As DAO.Recordset car tu dois encore avoir une référence à ADO.
Je viens de tester avec les 2 référence DAO et ADO et en préfixant je n'ai plus le message d'erreur.
Re Eric
En remplaçant Dim rst As Recordset par: Dim rst As DAO.Recordset le message d'erreur change il devient : Errur d'exécution '3265' avec : "Eléments non trouvé dans cette collection "et je bloque sur : If Not IsNull(rst("n°" & N & "_empl")) Then
Dans les références : Microsoft DAO 3.6 Object Library est bien coché.
A+
Jean
levallo
Hi,
Autant pour moi, cela venait des noms de champ auquel que j'avais nommé No_1er_Employé ; etc..
Correction faite il n'y a plus d'erreur, mais par contre le résultat du champ nombre est toujours de 1 sur toutes les lignes de la requète.
A+
Jean
Hi,
Autant pour moi, cela venait des noms de champ auquel que j'avais
nommé
No_1er_Employé ; etc..
Correction faite il n'y a plus d'erreur, mais par contre le résultat
du champ nombre est toujours de 1 sur toutes les lignes de la
requète.
Autant pour moi, cela venait des noms de champ auquel que j'avais nommé No_1er_Employé ; etc..
Correction faite il n'y a plus d'erreur, mais par contre le résultat du champ nombre est toujours de 1 sur toutes les lignes de la requète.
A+
Jean
Eric
re,
Es-tu sur des noms de tes champs. Ils s'appellent bien n°1_empl, n°2_empl , ... ?
car cette erreur t'indique que le champ n°x_empl n'existe pas où x représente une valeur allant de 1 à 8.
En remplaçant Dim rst As Recordset par: Dim rst As DAO.Recordset le message d'erreur change il devient : Errur d'exécution '3265' avec : "Eléments non trouvé dans cette collection "et je bloque sur : If Not IsNull(rst("n°" & N & "_empl")) Then
Dans les références : Microsoft DAO 3.6 Object Library est bien coché.
A+
Jean
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
re,
Es-tu sur des noms de tes champs.
Ils s'appellent bien n°1_empl, n°2_empl , ... ?
car cette erreur t'indique que le champ n°x_empl n'existe pas où x
représente une valeur allant de 1 à 8.
En remplaçant
Dim rst As Recordset par:
Dim rst As DAO.Recordset
le message d'erreur change il devient : Errur d'exécution '3265' avec
:
"Eléments non trouvé dans cette collection "et je bloque sur :
If Not IsNull(rst("n°" & N & "_empl")) Then
Dans les références : Microsoft DAO 3.6 Object Library est bien
coché.
A+
Jean
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Es-tu sur des noms de tes champs. Ils s'appellent bien n°1_empl, n°2_empl , ... ?
car cette erreur t'indique que le champ n°x_empl n'existe pas où x représente une valeur allant de 1 à 8.
En remplaçant Dim rst As Recordset par: Dim rst As DAO.Recordset le message d'erreur change il devient : Errur d'exécution '3265' avec : "Eléments non trouvé dans cette collection "et je bloque sur : If Not IsNull(rst("n°" & N & "_empl")) Then
Dans les références : Microsoft DAO 3.6 Object Library est bien coché.
A+
Jean
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
re,
Un exemple là : http://cjoint.com/?ixveZqDeOC qui fait ce que tu veux et donne le résultat attendu.
Hi,
Autant pour moi, cela venait des noms de champ auquel que j'avais nommé No_1er_Employé ; etc..
Correction faite il n'y a plus d'erreur, mais par contre le résultat du champ nombre est toujours de 1 sur toutes les lignes de la requète.
A+
Jean
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
re,
Un exemple là : http://cjoint.com/?ixveZqDeOC
qui fait ce que tu veux et donne le résultat attendu.
Hi,
Autant pour moi, cela venait des noms de champ auquel que j'avais
nommé
No_1er_Employé ; etc..
Correction faite il n'y a plus d'erreur, mais par contre le résultat
du champ nombre est toujours de 1 sur toutes les lignes de la
requète.
A+
Jean
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Un exemple là : http://cjoint.com/?ixveZqDeOC qui fait ce que tu veux et donne le résultat attendu.
Hi,
Autant pour moi, cela venait des noms de champ auquel que j'avais nommé No_1er_Employé ; etc..
Correction faite il n'y a plus d'erreur, mais par contre le résultat du champ nombre est toujours de 1 sur toutes les lignes de la requète.
A+
Jean
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
levallo
Salut Eric, J'ai re-vérifié les les noms des champs et les ai corrigé. Ils s'appellent maintenant pour éviter toute abiguité. ChefEquipesNom ; No_1_Employé ; No_2_Employé ; etc ... ; No_8_Employé J'ai donc corrigé la ligne : If Not IsNull(rst("No_" & N & "_Employé")) Then
En testant pas à pas la function celle-ci indique bien une progression de N de 1 à 9 par contre nb s'arrête à 1
Si on reprend la function actuelle :
Function nbEmp(chef) ' Dim rst As Recordset Dim rst As DAO.Recordset ' Dim nb As Integer ' Set rst = CurrentDb.OpenRecordset("tbEquipes") ' Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenDynaset) ' jeu dynamique Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané rst.FindFirst "ChefEquipesNom='" & chef & "'" For N = 1 To 8 If Not IsNull(rst("No_" & N & "_Employé")) Then nb = nb + 1 End If Next nbEmp = nb Set rst = Nothing End Function
Toutes les options en commentaires ont été essayées sans succès.
Pour cette ligne en regardant les variables pas à pas dans rst je vois que chef ne donne que la valeur "chef"
rst.FindFirst "ChefEquipesNom='" & chef & "'"
Ce champ dans ma requète nombre:nbemp("NomDuchef") ne devrait-il pas être identifié ainsi : nombre:nbEmp("chef")
Autre question il ne semble pas que la function progresse au delà de la première ligne enregistrée.
Salut Eric,
J'ai re-vérifié les les noms des champs et les ai corrigé.
Ils s'appellent maintenant pour éviter toute abiguité.
ChefEquipesNom ; No_1_Employé ; No_2_Employé ; etc ... ;
No_8_Employé
J'ai donc corrigé la ligne :
If Not IsNull(rst("No_" & N & "_Employé")) Then
En testant pas à pas la function celle-ci indique bien une progression
de N de 1 à 9
par contre nb s'arrête à 1
Si on reprend la function actuelle :
Function nbEmp(chef)
' Dim rst As Recordset
Dim rst As DAO.Recordset
' Dim nb As Integer
' Set rst = CurrentDb.OpenRecordset("tbEquipes")
' Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenDynaset) ' jeu
dynamique
Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu
instantané
rst.FindFirst "ChefEquipesNom='" & chef & "'"
For N = 1 To 8
If Not IsNull(rst("No_" & N & "_Employé")) Then
nb = nb + 1
End If
Next
nbEmp = nb
Set rst = Nothing
End Function
Toutes les options en commentaires ont été essayées sans succès.
Pour cette ligne en regardant les variables pas à pas dans rst je vois
que chef ne donne que la valeur "chef"
rst.FindFirst "ChefEquipesNom='" & chef & "'"
Ce champ dans ma requète
nombre:nbemp("NomDuchef")
ne devrait-il pas être identifié ainsi :
nombre:nbEmp("chef")
Autre question il ne semble pas que la function progresse au delà de
la première ligne enregistrée.
Salut Eric, J'ai re-vérifié les les noms des champs et les ai corrigé. Ils s'appellent maintenant pour éviter toute abiguité. ChefEquipesNom ; No_1_Employé ; No_2_Employé ; etc ... ; No_8_Employé J'ai donc corrigé la ligne : If Not IsNull(rst("No_" & N & "_Employé")) Then
En testant pas à pas la function celle-ci indique bien une progression de N de 1 à 9 par contre nb s'arrête à 1
Si on reprend la function actuelle :
Function nbEmp(chef) ' Dim rst As Recordset Dim rst As DAO.Recordset ' Dim nb As Integer ' Set rst = CurrentDb.OpenRecordset("tbEquipes") ' Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenDynaset) ' jeu dynamique Set rst = CurrentDb.OpenRecordset("tbEquipes", dbOpenSnapshot) ' jeu instantané rst.FindFirst "ChefEquipesNom='" & chef & "'" For N = 1 To 8 If Not IsNull(rst("No_" & N & "_Employé")) Then nb = nb + 1 End If Next nbEmp = nb Set rst = Nothing End Function
Toutes les options en commentaires ont été essayées sans succès.
Pour cette ligne en regardant les variables pas à pas dans rst je vois que chef ne donne que la valeur "chef"
rst.FindFirst "ChefEquipesNom='" & chef & "'"
Ce champ dans ma requète nombre:nbemp("NomDuchef") ne devrait-il pas être identifié ainsi : nombre:nbEmp("chef")
Autre question il ne semble pas que la function progresse au delà de la première ligne enregistrée.
Eric
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.
... Pour cette ligne en regardant les variables pas à pas dans rst je vois que chef ne donne que la valeur "chef"
rst.FindFirst "ChefEquipesNom='" & chef & "'"
Ce champ dans ma requète nombre:nbemp("NomDuchef") ne devrait-il pas être identifié ainsi : nombre:nbEmp("chef")
Autre question il ne semble pas que la function progresse au delà de la première ligne enregistrée.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
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.
...
Pour cette ligne en regardant les variables pas à pas dans rst je vois
que chef ne donne que la valeur "chef"
rst.FindFirst "ChefEquipesNom='" & chef & "'"
Ce champ dans ma requète
nombre:nbemp("NomDuchef")
ne devrait-il pas être identifié ainsi :
nombre:nbEmp("chef")
Autre question il ne semble pas que la function progresse au delà de
la première ligne enregistrée.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
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.
... Pour cette ligne en regardant les variables pas à pas dans rst je vois que chef ne donne que la valeur "chef"
rst.FindFirst "ChefEquipesNom='" & chef & "'"
Ce champ dans ma requète nombre:nbemp("NomDuchef") ne devrait-il pas être identifié ainsi : nombre:nbEmp("chef")
Autre question il ne semble pas que la function progresse au delà de la première ligne enregistrée.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
levallo
re,
Un exemple là : http://cjoint.com/?ixveZqDeOC qui fait ce que tu veux et donne le résultat attendu.
Effectivement, cela fonctionne très bien.
J'ai essayé de le transposer sur sur ma base mais mes résultats sont erronés
Je ne comprend pas ce qu'il y a dans ma base qui ne joue des tours.
A+
Jean
re,
Un exemple là : http://cjoint.com/?ixveZqDeOC
qui fait ce que tu veux et donne le résultat attendu.
Effectivement, cela fonctionne très bien.
J'ai essayé de le transposer sur sur ma base mais mes résultats sont
erronés
Je ne comprend pas ce qu'il y a dans ma base qui ne joue des tours.