Afficher le nombre d'enregistrements sur une recherche

Résolu/Fermé
yfchauer Messages postés 78 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 18 janvier 2014 - 25 mars 2013 à 14:25
yfchauer Messages postés 78 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 18 janvier 2014 - 25 mars 2013 à 23:27
Bonjour,

Dans un formulaire de recherche à multicritères
Je souhaite afficher le nombre d'enregistrements trouvés dans table sur le nombre total.
Dans un des tuto, j'ai trouvé ceci :


Me.LblStats.Caption = DCount("*", "T_Medias", SQLWhere) & "/" & DCount("*", "T_Medias")


Cela fonctionne pour une requête faite sur une seule table.

Mais dès qu'il s'agit d'une requête sur plusieurs tables, j'ai un message d'erreur
voici la requête


SQL = "SELECT MediaID, TitreMedia, Rangement, LibelleGenre, LibelleSupportMedia, NomAuteur, NomEditeur " _
& "FROM T_Medias, T_Genres, T_SupportMedia, T_Auteurs, T_Editeurs " _
& "WHERE T_Medias!CodeGenre = T_Genres!GenreID AND T_Medias!CodeSupport = T_SupportMedia!SupportID " _
& "AND T_Medias!CodeAuteur = T_Auteurs!AuteurID And T_Medias!CodeEditeur = T_Editeurs!NumEditeur " _
& "AND T_Medias!MediaID <> 0 "

If Not Me.ChkAuteur Then
SQL = SQL & "AND T_Auteurs!NomAuteur LIKE '*" & Me.TxtAuteur & "*'"
End If

If Not Me.ChkEditeur Then
SQL = SQL & "AND T_Editeurs!NomEditeur LIKE '*" & Me.TxtEditeur & "*'"
End If

If Not Me.ChkGenre Then
SQL = SQL & "AND T_Genres!LibelleGenre = '" & Me.CboGenre & "'"
End If

If Not Me.ChkSupport Then
SQL = SQL & "AND T_SupportMedia!LibelleSupportMedia = '" & Me.CboSupport & "'"
End If

If Not Me.ChkTitre Then
SQL = SQL & "AND T_Medias!TitreMedia LIKE '*" & Me.TxtTitre & "*'"
End If


SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))

SQL = SQL & ";"

Me.LblStats.Caption = DCount("*", "T_Medias", SQLWhere) & "/" & DCount("*", "T_Medias")

Je souhaite savoir comment modifier cette requête pour voir s'afficher le résultat dans le label "LblStats"
Merci d'avance


6 réponses

blux Messages postés 26536 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 décembre 2024 3 317
25 mars 2013 à 14:58
Salut,

garde ta requête, fais-en un recordset. Tu pourras ensuite exécuter un .movelast, qui remplira la propriété .recordcount, que tu pourras afficher.
0
yfchauer Messages postés 78 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 18 janvier 2014 2
25 mars 2013 à 15:33
Salut Blux
Comment le faire ?

Merci d'avance
0
blux Messages postés 26536 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 décembre 2024 3 317
Modifié par blux le 25/03/2013 à 20:41
De mémoire :

Dim Rs as Recordset
'création du SQL
...
...
...
Set Rs=currentdb.openrecordset(SQL)
Rs.movefirst
Rs.movelast
msgbox Rs.recordcount

A+ blux
 "Les cons, ça ose tout. 
C'est même à ça qu'on les reconnait"
0
yfchauer Messages postés 78 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 18 janvier 2014 2
25 mars 2013 à 15:53
Merci Blux
Je crois comprendre le principe
Je le teste ce soir

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yfchauer Messages postés 78 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 18 janvier 2014 2
25 mars 2013 à 20:02
Bonsoir,

J'ai essayé le code,
il m'affiche 0 s'il n'y a aucune occurrence
et 1 si le requête renvoie un résultat supérieur à 0.
Je ne sais pas si j'ai loupé un truc
Merci
0
blux Messages postés 26536 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 décembre 2024 3 317
25 mars 2013 à 21:26
Bizarre, tu peux coller le code que je jette un oeil ?
0
yfchauer Messages postés 78 Date d'inscription mardi 11 décembre 2007 Statut Membre Dernière intervention 18 janvier 2014 2
25 mars 2013 à 23:27
BONSOIR,

J'ai trouvé la solution en cherchant dans des tutos

Set rst = CurrentDb.OpenRecordset(SQL)
If rst.EOF Then
Nb_Enreg = 0
Else
rst.MoveLast
Nb_Enreg = rst.RecordCount
End If
rst.Close


Me.LblStats.Caption = CStr(Nb_Enreg) & "/" & DCount("*", "T_Medias")

Merci de m'avoir orienté
0