OVH Cloud OVH Cloud

Nombre d'enregistrement d'un recordset

3 réponses
Avatar
Michel
Bonjour,

Je souhaite compter le nombre d'enregistrements du=20
recordset suivant. Pour les valeurs du contr=F4le de mon=20
formulaire o=F9 le recordset est vide, je re=E7ois bien 0.=20
Par contre, pour les valeurs o=F9 mon recordset contient=20
des enregistrements, je ne re=E7ois que la valeur 1, comme=20
si la recherche s'arr=EAtait au 1er enregistrement trouv=E9.=20
Quelqu'un voit-il d'o=F9 =E7a peut venir ??

Dim strRecordset As String
Dim rcdRecord As DAO.Recordset

strRecordset =3D "SELECT MACHINE.Responsable " _
& "FROM Machine " _
& "WHERE (MACHINE.Responsable =3D '" &=20
([Forms]![RECORDSET TEST]![Responsable]) & "');"

Set rcdRecord =3D CurrentDb.OpenRecordset(strRecordset)
[Texte0] =3D rcdRecord.RecordCount

3 réponses

Avatar
Gilbert
Bonjour Michel


Set rcdRecord = CurrentDb.OpenRecordset(strRecordset)

Ajoute ici :
rcdRecord .MoveLast

[Texte0] = rcdRecord.RecordCount

Cordialement
Gilbert
Avatar
Jean
-----Message d'origine-----
Bonjour,

Je souhaite compter le nombre d'enregistrements du
recordset suivant. Pour les valeurs du contrôle de mon
formulaire où le recordset est vide, je reçois bien 0.
Par contre, pour les valeurs où mon recordset contient
des enregistrements, je ne reçois que la valeur 1, comme
si la recherche s'arrêtait au 1er enregistrement trouvé.
Quelqu'un voit-il d'où ça peut venir ??

Dim strRecordset As String
Dim rcdRecord As DAO.Recordset

strRecordset = "SELECT MACHINE.Responsable " _
& "FROM Machine " _
& "WHERE (MACHINE.Responsable = '" &
([Forms]![RECORDSET TEST]![Responsable]) & "');"

Set rcdRecord = CurrentDb.OpenRecordset(strRecordset)
[Texte0] = rcdRecord.RecordCount
.



Michel,

Pour pouvoir compter les enregistrements, il faut aller
chercher le dernier enregistrement et remonter au premier.

On pose une condition pour vérifier s'il existe un
enregistrement, sinon on prend une erreur.

Set rcdRecord = CurrentDb.OpenRecordset(strRecordset)

if rcdRecord.RecordCount >0 then
rcdRecord.Movelast '=> dernier enregistrement
rcdRecord.MoveFirst '=> premier enregistrement
end if

[Texte0] = rcdRecord.RecordCount

Avatar
3stone
Salut,

"Jean" a écrit:

Michel,

Pour pouvoir compter les enregistrements, il faut aller
chercher le dernier enregistrement et remonter au premier.


Pas vraiment...
Pour pouvoir compter les enregistrements, il faut "traverser" au moins une fois le recordset.

donc, faire un recordset.MoveLast


On pose une condition pour vérifier s'il existe un
enregistrement, sinon on prend une erreur.

Set rcdRecord = CurrentDb.OpenRecordset(strRecordset)

if rcdRecord.RecordCount >0 then
rcdRecord.Movelast '=> dernier enregistrement
rcdRecord.MoveFirst '=> premier enregistrement
end if

[Texte0] = rcdRecord.RecordCount



Heu... cela fonctionne mais...


Set rst = CurrentDb.OpenRecordset(...)
If Not rst.EOF Then
rst.MoveLast
End if

NombreRecord = rst.RecordCount


J'ajouterais, que si "Michel" serait resté dans le fil
dans lequel il s'annonce comme "Raymond" ???
et s'il avait lu la réponse faite à ce moment là,
il n'aurait pas eu besoin de revenir pour reposer la même...



--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------