Compter le nombre enregistrement recordset
Résolu
artis31
Messages postés
42
Date d'inscription
Statut
Membre
Dernière intervention
-
blux Messages postés 27121 Date d'inscription Statut Modérateur Dernière intervention -
blux Messages postés 27121 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à la communauté,
Je cherche à connaitre le nombre d'enregistrements retournés dans un recordset par une requête sql.
Voici les deux codes essayés :
Rsql = "SELECT TOP 10 * FROM " & TableBDD & ";"
(Dans ma requête j'ai volontairement limité le nombre d'enregistrements à 10 pour le test.)
Méthode 1:
NbRecord = Rst.RecordCount
MsgBox ("Nbre d'enregistrements = " & NbRecord)
Méthode 2:
NbreLignes = 0
Do While Not Rst.EOF
NbreLignes = NbreLignes + 1
Rst.MoveNext
Loop
MsgBox ("Nbre d'enregistrements = " & NbreLignes)
Rst.MoveFirst
La méthode 1 me renvoie la valeur -1
La méthode 2 me renvoie bien la valeur 10, mais est très longue... quelques secondes avec 10 enregistrements j'ose pas imaginer avec 50.000...
Quelle solution pour compter rapidement ce nombre d'enregistrement ?
Je cherche à connaitre le nombre d'enregistrements retournés dans un recordset par une requête sql.
Voici les deux codes essayés :
Rsql = "SELECT TOP 10 * FROM " & TableBDD & ";"
(Dans ma requête j'ai volontairement limité le nombre d'enregistrements à 10 pour le test.)
Méthode 1:
NbRecord = Rst.RecordCount
MsgBox ("Nbre d'enregistrements = " & NbRecord)
Méthode 2:
NbreLignes = 0
Do While Not Rst.EOF
NbreLignes = NbreLignes + 1
Rst.MoveNext
Loop
MsgBox ("Nbre d'enregistrements = " & NbreLignes)
Rst.MoveFirst
La méthode 1 me renvoie la valeur -1
La méthode 2 me renvoie bien la valeur 10, mais est très longue... quelques secondes avec 10 enregistrements j'ose pas imaginer avec 50.000...
Quelle solution pour compter rapidement ce nombre d'enregistrement ?
A voir également:
- Compter le nombre enregistrement recordset
- Enregistrement mp3 gratuit - Télécharger - Streaming audio
- Nombre de jours entre deux dates excel - Guide
- Nombre facile - Télécharger - Outils professionnels
- Telecharger studio d'enregistrement rap - Télécharger - Édition & Montage
- Enregistrement - Guide
3 réponses
Salut,
il faut utiliser la méthode 1, mais avec une astuce, faire un .movelast avant de demander le .recordcount.
il faut utiliser la méthode 1, mais avec une astuce, faire un .movelast avant de demander le .recordcount.
Bonjour et merci pour ta réponse, j'ai testé mais toujours le même résultat : .RecordCount = -1
Voici le bout de code modifié pour la méthode 1 :
If Not Rst.EOF Then
Rst.MoveLast
NbRecord = Rst.RecordCount
MsgBox ("Nbre d'enregistrements = " & NbRecord)
Rst.MoveFirst
Else
MsgBox ("Aucun enregistrement trouvé.")
End If
Nota : J'ai bien 10 enregistrements qui s'affichent lorsque je fais ".CopyFromRecordset Rst" ce n'est donc pas un problème de requête ou de données.
Voici le bout de code modifié pour la méthode 1 :
If Not Rst.EOF Then
Rst.MoveLast
NbRecord = Rst.RecordCount
MsgBox ("Nbre d'enregistrements = " & NbRecord)
Rst.MoveFirst
Else
MsgBox ("Aucun enregistrement trouvé.")
End If
Nota : J'ai bien 10 enregistrements qui s'affichent lorsque je fais ".CopyFromRecordset Rst" ce n'est donc pas un problème de requête ou de données.
Bonsoir,
J'ai fais exactement ce que tu m'as demandé. Tester la présence ou non d'enregistrements ne change rien à l'affaire, juste à rassurer qu'il y a bien des enregistrements. Et ajouter rst.movefirst ne fonctionne pas.
J'ai trouvé la solution, il faut ajouter dans mon code la ligne Rst.CursorLocation = adUseClient
Merci pour ton aide qui m'a mis sur la voie de la solution :o)
Thierry
J'ai fais exactement ce que tu m'as demandé. Tester la présence ou non d'enregistrements ne change rien à l'affaire, juste à rassurer qu'il y a bien des enregistrements. Et ajouter rst.movefirst ne fonctionne pas.
J'ai trouvé la solution, il faut ajouter dans mon code la ligne Rst.CursorLocation = adUseClient
Merci pour ton aide qui m'a mis sur la voie de la solution :o)
Thierry
Et ajouter rst.movefirst ne fonctionne pas.
Je pourrais voir ce que tu as mis, comme code, car je suis surpris qu'un movefirst ne marche pas.
Et le cursorlocation demande à access de gérer un curseur sql côté client plutôt que côté serveur...
Tes données sont où : sur un serveur, sur ton poste, tables liées, odbc ?
Je pourrais voir ce que tu as mis, comme code, car je suis surpris qu'un movefirst ne marche pas.
Et le cursorlocation demande à access de gérer un curseur sql côté client plutôt que côté serveur...
Tes données sont où : sur un serveur, sur ton poste, tables liées, odbc ?