OVH Cloud OVH Cloud

RecordCount et BOF

8 réponses
Avatar
Jeff
Bonjour à tous

Désolé si la question a déjà été abordé sur le forum mais je cherche à
savoir
s'il vaut mieux utiliser la fonction RecordCount pour déterminer si un
Recordset
contient des enregistrements ou "plutôt" utiliser .BOF ?

En terme de performance, quelle est la fonction la plus "rapide" ?

Merci pour votre aide

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/

8 réponses

Avatar
Raymond [mvp]
Bonjour.

BOF renvoie une valeur indiquant si l'enregistrement actuel est situé
avant le premier enregistrement d'un objet Recordset. La propriété BOF
renvoie la valeur True si l'enregistrement actuel est situé avant le premier
enregistrement, et la valeur False s'il est placé au niveau du premier
enregistrement ou après. Les propriétés BOF permet de déterminer
si un objet Recordset contient des enregistrements ou si tu as dépassé les
limites d'un objet Recordset en te déplaçant d'enregistrement en
enregistrement.Si tu ouvres un objet Recordset ne contenant pas
d'enregistrements, les propriétés BOF et EOF prennent la valeur True.
en conclusion, BOF n'indique pas toujours qu'il n'y a pas d'enregistrement
mais que l'enregistrement actuel n'existe pas et que le pointeur est situé
avant le 1er enregistrement. il n'y a qu'à l'ouverture que BOF a la bonne
valeur. Selon l'endroit tu peux l'utiliser ou non.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Jeff" a écrit dans le message de
news:
Bonjour à tous

Désolé si la question a déjà été abordé sur le forum mais je cherche à
savoir
s'il vaut mieux utiliser la fonction RecordCount pour déterminer si un
Recordset
contient des enregistrements ou "plutôt" utiliser .BOF ?

En terme de performance, quelle est la fonction la plus "rapide" ?

Merci pour votre aide

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/




Avatar
Jeff
Cher Raymond,

Merci pour ta réponse.

Il semble alors plus approprié d'utiliser RecordCount pour savoir
si le Recordset contient des enregistrements ?

Ceci dit, est-ce RecordCount est plus "gourmand" en exécution que .BOF ... ?
L'optimisation semblerait être négligeable dans ce cas...

Merci encore

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/

"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

BOF renvoie une valeur indiquant si l'enregistrement actuel est situé
avant le premier enregistrement d'un objet Recordset. La propriété BOF
renvoie la valeur True si l'enregistrement actuel est situé avant le
premier

enregistrement, et la valeur False s'il est placé au niveau du premier
enregistrement ou après. Les propriétés BOF permet de déterminer
si un objet Recordset contient des enregistrements ou si tu as dépassé les
limites d'un objet Recordset en te déplaçant d'enregistrement en
enregistrement.Si tu ouvres un objet Recordset ne contenant pas
d'enregistrements, les propriétés BOF et EOF prennent la valeur True.
en conclusion, BOF n'indique pas toujours qu'il n'y a pas d'enregistrement
mais que l'enregistrement actuel n'existe pas et que le pointeur est situé
avant le 1er enregistrement. il n'y a qu'à l'ouverture que BOF a la bonne
valeur. Selon l'endroit tu peux l'utiliser ou non.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Jeff" a écrit dans le message de
news:
Bonjour à tous

Désolé si la question a déjà été abordé sur le forum mais je cherche à
savoir
s'il vaut mieux utiliser la fonction RecordCount pour déterminer si un
Recordset
contient des enregistrements ou "plutôt" utiliser .BOF ?

En terme de performance, quelle est la fonction la plus "rapide" ?

Merci pour votre aide

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/









Avatar
Raymond [mvp]
Utilises plutôt Me.RecordsetClone.RecordCount pour un formulaire et
Rs.RecordCount pour un recordset.
Bof est plus rapide car la valeur oui/non est immédiate mais aut pas
t'arrêter la dessus.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Jeff" a écrit dans le message de
news:
Cher Raymond,

Merci pour ta réponse.

Il semble alors plus approprié d'utiliser RecordCount pour savoir
si le Recordset contient des enregistrements ?

Ceci dit, est-ce RecordCount est plus "gourmand" en exécution que .BOF ...
?

L'optimisation semblerait être négligeable dans ce cas...



Avatar
Crevecoeur Jérôme
Bonjour,

Moi je teste EOF à l'ouverture du recordset.

Recordcount sera plus gourmand que EOF ou BOF(bouteille à moitié vide ou à
moitié pleine).
En plus Recordcount selon le mode d'ouverture(Local ou serveur) ne contient
pas toujours le nombre d'enregistrements(-1).


Cordialement


--
----------------------------------------------------------------------------
--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
----------------------------------------------------------------------------
---------------------
"Jeff" a écrit dans le message de
news:
Cher Raymond,

Merci pour ta réponse.

Il semble alors plus approprié d'utiliser RecordCount pour savoir
si le Recordset contient des enregistrements ?

Ceci dit, est-ce RecordCount est plus "gourmand" en exécution que .BOF ...
?

L'optimisation semblerait être négligeable dans ce cas...

Merci encore

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/

"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

BOF renvoie une valeur indiquant si l'enregistrement actuel est situé
avant le premier enregistrement d'un objet Recordset. La propriété BOF
renvoie la valeur True si l'enregistrement actuel est situé avant le
premier

enregistrement, et la valeur False s'il est placé au niveau du premier
enregistrement ou après. Les propriétés BOF permet de déterminer
si un objet Recordset contient des enregistrements ou si tu as dépassé
les


limites d'un objet Recordset en te déplaçant d'enregistrement en
enregistrement.Si tu ouvres un objet Recordset ne contenant pas
d'enregistrements, les propriétés BOF et EOF prennent la valeur True.
en conclusion, BOF n'indique pas toujours qu'il n'y a pas
d'enregistrement


mais que l'enregistrement actuel n'existe pas et que le pointeur est
situé


avant le 1er enregistrement. il n'y a qu'à l'ouverture que BOF a la
bonne


valeur. Selon l'endroit tu peux l'utiliser ou non.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Jeff" a écrit dans le message de
news:
Bonjour à tous

Désolé si la question a déjà été abordé sur le forum mais je cherche à
savoir
s'il vaut mieux utiliser la fonction RecordCount pour déterminer si un
Recordset
contient des enregistrements ou "plutôt" utiliser .BOF ?

En terme de performance, quelle est la fonction la plus "rapide" ?

Merci pour votre aide

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/













Avatar
Jeff
Bonjour Jérôme,

Est-ce possible que RecordCount renvoie -1 comme valeur ?

0 ou 1 c'est parfait, -1 ça n'est pas pareil...

Je vais faire quelques essais tout de même...

Merci

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/

"Crevecoeur Jérôme" a écrit dans le message de
news:
Bonjour,

Moi je teste EOF à l'ouverture du recordset.

Recordcount sera plus gourmand que EOF ou BOF(bouteille à moitié vide ou à
moitié pleine).
En plus Recordcount selon le mode d'ouverture(Local ou serveur) ne
contient

pas toujours le nombre d'enregistrements(-1).


Cordialement


--
--------------------------------------------------------------------------
--

--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
--------------------------------------------------------------------------
--

---------------------
"Jeff" a écrit dans le message de
news:
Cher Raymond,

Merci pour ta réponse.

Il semble alors plus approprié d'utiliser RecordCount pour savoir
si le Recordset contient des enregistrements ?

Ceci dit, est-ce RecordCount est plus "gourmand" en exécution que .BOF
...


?
L'optimisation semblerait être négligeable dans ce cas...

Merci encore

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/

"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

BOF renvoie une valeur indiquant si l'enregistrement actuel est situé
avant le premier enregistrement d'un objet Recordset. La propriété BOF
renvoie la valeur True si l'enregistrement actuel est situé avant le
premier

enregistrement, et la valeur False s'il est placé au niveau du premier
enregistrement ou après. Les propriétés BOF permet de déterminer
si un objet Recordset contient des enregistrements ou si tu as dépassé
les


limites d'un objet Recordset en te déplaçant d'enregistrement en
enregistrement.Si tu ouvres un objet Recordset ne contenant pas
d'enregistrements, les propriétés BOF et EOF prennent la valeur True.
en conclusion, BOF n'indique pas toujours qu'il n'y a pas
d'enregistrement


mais que l'enregistrement actuel n'existe pas et que le pointeur est
situé


avant le 1er enregistrement. il n'y a qu'à l'ouverture que BOF a la
bonne


valeur. Selon l'endroit tu peux l'utiliser ou non.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Jeff" a écrit dans le message de
news:
Bonjour à tous

Désolé si la question a déjà été abordé sur le forum mais je cherche
à




savoir
s'il vaut mieux utiliser la fonction RecordCount pour déterminer si
un




Recordset
contient des enregistrements ou "plutôt" utiliser .BOF ?

En terme de performance, quelle est la fonction la plus "rapide" ?

Merci pour votre aide

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/

















Avatar
Crevecoeur Jérôme
Oui, Recordcount renvoie -1 s'il ne connait pas tous les enregistrements.

Il faut faire un
rs.MoveLast
rs.Movefirst

pour que Recordcount ait la bonne valeur.

Cela dépend aussi du mode de connection si tu es en ADO. coté client ou
serveur




--
----------------------------------------------------------------------------
--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
----------------------------------------------------------------------------
---------------------
"Jeff" a écrit dans le message de
news:
Bonjour Jérôme,

Est-ce possible que RecordCount renvoie -1 comme valeur ?

0 ou 1 c'est parfait, -1 ça n'est pas pareil...

Je vais faire quelques essais tout de même...

Merci

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/

"Crevecoeur Jérôme" a écrit dans le message
de

news:
Bonjour,

Moi je teste EOF à l'ouverture du recordset.

Recordcount sera plus gourmand que EOF ou BOF(bouteille à moitié vide ou
à


moitié pleine).
En plus Recordcount selon le mode d'ouverture(Local ou serveur) ne
contient

pas toujours le nombre d'enregistrements(-1).


Cordialement


--


--------------------------------------------------------------------------
--
--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48


--------------------------------------------------------------------------
--
---------------------
"Jeff" a écrit dans le message de
news:
Cher Raymond,

Merci pour ta réponse.

Il semble alors plus approprié d'utiliser RecordCount pour savoir
si le Recordset contient des enregistrements ?

Ceci dit, est-ce RecordCount est plus "gourmand" en exécution que .BOF
...


?
L'optimisation semblerait être négligeable dans ce cas...

Merci encore

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/

"Raymond [mvp]" a écrit dans le message
de



news:
Bonjour.

BOF renvoie une valeur indiquant si l'enregistrement actuel est
situé




avant le premier enregistrement d'un objet Recordset. La propriété
BOF




renvoie la valeur True si l'enregistrement actuel est situé avant le
premier

enregistrement, et la valeur False s'il est placé au niveau du
premier




enregistrement ou après. Les propriétés BOF permet de déterminer
si un objet Recordset contient des enregistrements ou si tu as
dépassé




les
limites d'un objet Recordset en te déplaçant d'enregistrement en
enregistrement.Si tu ouvres un objet Recordset ne contenant pas
d'enregistrements, les propriétés BOF et EOF prennent la valeur
True.




en conclusion, BOF n'indique pas toujours qu'il n'y a pas
d'enregistrement


mais que l'enregistrement actuel n'existe pas et que le pointeur est
situé


avant le 1er enregistrement. il n'y a qu'à l'ouverture que BOF a la
bonne


valeur. Selon l'endroit tu peux l'utiliser ou non.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Jeff" a écrit dans le message de
news:
Bonjour à tous

Désolé si la question a déjà été abordé sur le forum mais je
cherche





à
savoir
s'il vaut mieux utiliser la fonction RecordCount pour déterminer
si





un
Recordset
contient des enregistrements ou "plutôt" utiliser .BOF ?

En terme de performance, quelle est la fonction la plus "rapide" ?

Merci pour votre aide

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/





















Avatar
J-Pierre
Bonsoir,

Tu utilises .EOF quand tu parcours un RecordSet, le reste du temps, utilise RecordCount

J-Pierre

"Jeff" a écrit dans le message de news:
Cher Raymond,

Merci pour ta réponse.

Il semble alors plus approprié d'utiliser RecordCount pour savoir
si le Recordset contient des enregistrements ?

Ceci dit, est-ce RecordCount est plus "gourmand" en exécution que .BOF ... ?
L'optimisation semblerait être négligeable dans ce cas...

Merci encore

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/

"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

BOF renvoie une valeur indiquant si l'enregistrement actuel est situé
avant le premier enregistrement d'un objet Recordset. La propriété BOF
renvoie la valeur True si l'enregistrement actuel est situé avant le
premier

enregistrement, et la valeur False s'il est placé au niveau du premier
enregistrement ou après. Les propriétés BOF permet de déterminer
si un objet Recordset contient des enregistrements ou si tu as dépassé les
limites d'un objet Recordset en te déplaçant d'enregistrement en
enregistrement.Si tu ouvres un objet Recordset ne contenant pas
d'enregistrements, les propriétés BOF et EOF prennent la valeur True.
en conclusion, BOF n'indique pas toujours qu'il n'y a pas d'enregistrement
mais que l'enregistrement actuel n'existe pas et que le pointeur est situé
avant le 1er enregistrement. il n'y a qu'à l'ouverture que BOF a la bonne
valeur. Selon l'endroit tu peux l'utiliser ou non.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Jeff" a écrit dans le message de
news:
Bonjour à tous

Désolé si la question a déjà été abordé sur le forum mais je cherche à
savoir
s'il vaut mieux utiliser la fonction RecordCount pour déterminer si un
Recordset
contient des enregistrements ou "plutôt" utiliser .BOF ?

En terme de performance, quelle est la fonction la plus "rapide" ?

Merci pour votre aide

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/













Avatar
Jeff
Bonjour

Si le retour de RecordCount est -1 cela veux donc dire que le Recordset
n'est pas
vide mais qu'on ne peut pas connaître immédiatement le nombre
d'enregistrements qu'il
contient ?

Donc pour savoir si un Recordset contient des enregistrements, il faudrait
faire :

If rst.RecordCount <> 0 Then

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/

"Crevecoeur Jérôme" a écrit dans le message de
news:%
Oui, Recordcount renvoie -1 s'il ne connait pas tous les enregistrements.

Il faut faire un
rs.MoveLast
rs.Movefirst

pour que Recordcount ait la bonne valeur.

Cela dépend aussi du mode de connection si tu es en ADO. coté client ou
serveur




--
--------------------------------------------------------------------------
--

--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
--------------------------------------------------------------------------
--

---------------------
"Jeff" a écrit dans le message de
news:
Bonjour Jérôme,

Est-ce possible que RecordCount renvoie -1 comme valeur ?

0 ou 1 c'est parfait, -1 ça n'est pas pareil...

Je vais faire quelques essais tout de même...

Merci

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/

"Crevecoeur Jérôme" a écrit dans le message
de

news:
Bonjour,

Moi je teste EOF à l'ouverture du recordset.

Recordcount sera plus gourmand que EOF ou BOF(bouteille à moitié vide
ou



à
moitié pleine).
En plus Recordcount selon le mode d'ouverture(Local ou serveur) ne
contient

pas toujours le nombre d'enregistrements(-1).


Cordialement


--




--------------------------------------------------------------------------
--
--------------------
Crévecoeur Jérôme

ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48




--------------------------------------------------------------------------
--
---------------------
"Jeff" a écrit dans le message de
news:
Cher Raymond,

Merci pour ta réponse.

Il semble alors plus approprié d'utiliser RecordCount pour savoir
si le Recordset contient des enregistrements ?

Ceci dit, est-ce RecordCount est plus "gourmand" en exécution que
.BOF




...
?
L'optimisation semblerait être négligeable dans ce cas...

Merci encore

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/

"Raymond [mvp]" a écrit dans le message
de



news:
Bonjour.

BOF renvoie une valeur indiquant si l'enregistrement actuel est
situé




avant le premier enregistrement d'un objet Recordset. La propriété
BOF




renvoie la valeur True si l'enregistrement actuel est situé avant
le





premier
enregistrement, et la valeur False s'il est placé au niveau du
premier




enregistrement ou après. Les propriétés BOF permet de déterminer
si un objet Recordset contient des enregistrements ou si tu as
dépassé




les
limites d'un objet Recordset en te déplaçant d'enregistrement en
enregistrement.Si tu ouvres un objet Recordset ne contenant pas
d'enregistrements, les propriétés BOF et EOF prennent la valeur
True.




en conclusion, BOF n'indique pas toujours qu'il n'y a pas
d'enregistrement


mais que l'enregistrement actuel n'existe pas et que le pointeur
est





situé
avant le 1er enregistrement. il n'y a qu'à l'ouverture que BOF a
la





bonne
valeur. Selon l'endroit tu peux l'utiliser ou non.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA


"Jeff" a écrit dans le message de
news:
Bonjour à tous

Désolé si la question a déjà été abordé sur le forum mais je
cherche





à
savoir
s'il vaut mieux utiliser la fonction RecordCount pour déterminer
si





un
Recordset
contient des enregistrements ou "plutôt" utiliser .BOF ?

En terme de performance, quelle est la fonction la plus "rapide"
?







Merci pour votre aide

--
Cordialement

Jeff

Charte du forum : http://users.skynet.be/mpfa/