|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 304 ![]() |
Bonjour à tous je souhaite compter le nombre d'enregistrement que me renvoi une requete.
La requete me renvoi trois enregistrement pourtant le recordcount me renvoi 1... je viens de m'en rendre compte et j'utlise tres souvent le recordcount dans le code,du coup je me demande si cette méthode est bien fiable. j'ai lu le tuto suivant http://warin.developpez.com/access/d...artie_5#L5.4.5 J'ai donc tester le movelast mais quand la requete ne renvoi pas d'enregistrement ca plante sur : en disant no current record... Quelqu'un a déja rencontrer le probleme ? J'espere que quelqu'un pourra m'aider car j'utilise souvent cette méthode dans le code. Merci |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Chef d'entreprise Inscription : mai 2011 Messages : 57 ![]() |
Bonsoir,
Il faut que tu vérifies avant si des enregistrements sont présents avec la propriété NoMatch. |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 304 ![]() |
Bonsoir et merci pour ta réponse mais
renvoi false si j'ai des enregistrement et false si j'en ai pas. |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 304 ![]() |
petite précision je travaille avec DAO
|
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Chef d'entreprise Inscription : mai 2011 Messages : 57 ![]() |
Autant pour moi, le NoMatch ne fonctionne qu'avec les méthode find et seek.
Dans ton cas, paradoxalement, il faut tester l'existence d'enregistrements avec... recordCount. En effet, si il existe des enregistrements, le premier sera actif, donc recordCount vaudra 1, sinon, cette propriété vaudra 0. |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 304 ![]() |
en fait je me suis mal exprimé, ce que je cherche a savoir c'est si ma requete renvoi au moins un enregistrement. Le nombre exact m'importe peu en fait. Pour avoir le nombre exact j'aurai pu faire tout simplement une requete avec un count.
Donc pour tester s'il y a des enregistrements ou s'il n'y en a pas soit je fait : c'est bon ça ?estce que par pur hasard ca peut arriver d'ouvrir un recorset et qu'il se place directement sur eof ? et la ... ou bien j'ai lu quelque part ce code : Code :
IF rs.BOF = true AND rs.EOF = TRUE then ... END IF ou bien le recordcount mais j'avoue avoir quelques doutes sur cette propriété. un avis ? |
|
|
00
|
|
|
#7 | ||
|
Membre du Club
![]() Chef d'entreprise Inscription : mai 2011 Messages : 57 ![]() |
Et bien ce ce que je te disais dans mon message précédent, tu peux tester l'existence d'enregistrement avec recordCount. Lors de l'ouverture d'un recordset, l'enregistrement actif est toujours le premier, la propriété recordCount est donc à 1 - sauf dans le cas où il n'y a pas d'enregistrement, là recordCount vaut 0 d'où :
Code :
|
||
|
|
00
|
|
|
#8 | ||
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 304 ![]() |
j'ai lu quelque part que le recordcount pouvait être a -1, ça se produit quand ?
Je veux pas trop utiliser le recordcount vu tous les messages problématiques qu'il y a dessus en fonction du type de curseur choisi, ou de s'il y a des jointures ... Est-ce que tu sais si mes deux autres solutions sont bonnes ? Merci je poste mon code quand meme : Code :
|
||
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Chef d'entreprise Inscription : mai 2011 Messages : 57 ![]() |
Lors de l'ouverture d'un recordset, deux cas peuvent se produire :
- Il n'y a pas d'enregistrement : --> EOF et BOF ont la valeur True --> RecordCount a la valeur 0 - Il y a un ou plusieurs enregistrements, le premier enregistrement est alors actif : --> EOF et BOF ont la valeur False --> RecordCount a la valeur 1 Pour ce que tu souhaites faire, écrire "If not rst.EOF" ou "If not rst.BOF" ou "If rs.RecordCount = 1" produira les mêmes effets. La deuxième solution est une surcharge inutile puique à l'ouverture d'un recordset EOF et BOF ont toujours la même valeur. Edit : N'oublie pas de fermer tes recordset avec close, sinon tu verras la taille de base de données augmenter régulièrement et tu devras passer par des compactages régulièrement. |
|
|
00
|
|
|
#10 | ||
|
Membre chevronné
![]() Alexandre SahliComptable Inscription : mars 2005 Messages : 507 ![]() |
Bonjour,
je ne sais pas si çà peux t'aider personnellement j'utilise une fonction pour compter le nombre d'enregistrement d'une requête en Sql. Ce serait possible de l'adapter avec une requête enregistrée. Code :
Il faut aussi savoir que s'il n'y a pas d'enregistrement dans un recordset la fonction est toujours = 0 bonne chance |
||
|
|
00
|
|
|
#11 |
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 304 ![]() |
bonjour et merci pour vos réponses.
Savez-vous quand le recordcount peut retourner -1 ? Merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com