IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Afficher le nombre d'enregistrements dans un filtre [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2003
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 21
    Points : 24
    Points
    24
    Par défaut Afficher le nombre d'enregistrements dans un filtre
    Bonjour à tous,

    je cherche comment faire pour afficher le nombre d'enregistrements qui sont trouvé après avoir filtré la totalité de ces enregistrement,
    voici le code que j'utilise dans mon formulaire afin de filtrer les enregistrements selon un ou plusieurs critères:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    Private Sub FiltreGeneral()
     
        'On initialise des variables utilisées dans la fonction FiltreGeneral
        filtre = ""
        FiltreDateInscriptionDebut = ""
        FiltreDateInscriptionFin = ""
        FiltreDateNaissanceDebut = ""
        FiltreDateNaissanceFin = ""
        FiltreDateDebutPart = ""
        FiltreDateFinPart = ""
     
        'On contrôle qu'il y aie des critères dans le champ pour en tenir compte dans la fonction de filtre...Ici, pour le champ de filtre sur le n° débiteur
        If EDIRechercheNumDebiteur.Value <> "" Then
            filtre = "OPF_R_Secteur.Debiteur_C_NumdebGIOP like '*" & EDIRechercheNumDebiteur & "*'"
        End If
     
        'Ensuite, on fait le même contrôle sur le champ de filtre Nom et Prénom...
        If EDIFiltreNomEtPrenom.Value <> "" Then
            If Len(filtre) = 0 Then
                filtre = "OPF_R_Secteur.NomEtPrenom like '*" & EDIFiltreNomEtPrenom & "*'"
            Else
                filtre = filtre & " AND OPF_R_Secteur.NomEtPrenom like '*" & EDIFiltreNomEtPrenom & "*'"
            End If
        End If
     
        'Ensuite, etc...
        If LIDSocieteNom.Value <> "*" Then
            If Len(filtre) = 0 Then
                filtre = "OPF_R_Secteur.SOCIETE like '" & LIDSocieteNom & "'"
            Else
                filtre = filtre & " AND OPF_R_Secteur.SOCIETE like '" & LIDSocieteNom & "'"
            End If
        End If
     
        If LIDRechercheInitiales.Value <> "*" Then
             If Len(filtre) = 0 Then
            filtre = "OPF_R_Secteur.Archivage_C_Initiales like '" & LIDRechercheInitiales & "'"
            Else
                filtre = filtre & " AND OPF_R_Secteur.Archivage_C_Initiales like '" & LIDRechercheInitiales & "'"
            End If
        End If
     
        If LIDActif.Value <> "*" Then
            If Len(filtre) = 0 Then
                filtre = "OPF_R_Secteur.TXTActif like '" & LIDActif & "'"
            Else
                filtre = filtre & " AND OPF_R_Secteur.TXTActif like '" & LIDActif & "'"
            End If
        End If
     
        If EDIFiltreEtatDossier.Value <> "" Then
            If Len(filtre) = 0 Then
                 filtre = "OPF_R_Secteur.Archivage_C_EtatDossier like '*" & EDIFiltreEtatDossier & "*'"
            Else
                filtre = filtre & " AND OPF_R_Secteur.Archivage_C_EtatDossier like '*" & EDIFiltreEtatDossier & "*'"
            End If
        End If
     
        If EDIFiltreRemarques.Value <> "" Then
            If Len(filtre) = 0 Then
                 filtre = "OPF_R_Secteur.Archivage_C_Remarque like '*" & EDIFiltreRemarques & "*'"
            Else
                filtre = filtre & " AND OPF_R_Secteur.Archivage_C_Remarque like '*" & EDIFiltreRemarques & "*'"
            End If
        End If
     
        'Filtre de recherche sur la date de dernière inscription dans la fiche du débiteur...
        If EDIRechDebDateDerniereInscription.Value <> "01.01.1900" Then
            FiltreDateInscriptionDebut = "#" & Month(EDIRechDebDateDerniereInscription) & "/" & Day(EDIRechDebDateDerniereInscription) & "/" & Year(EDIRechDebDateDerniereInscription) & "#"
        Else
            FiltreDateInscriptionDebut = ""
        End If
     
        If EDIRechFinDatePremiereInscription.Value <> "31.12.2999" Then
            FiltreDateInscriptionFin = "#" & Month(EDIRechFinDatePremiereInscription) & "/" & Day(EDIRechFinDatePremiereInscription) & "/" & Year(EDIRechFinDatePremiereInscription) & "#"
        Else
            FiltreDateInscriptionFin = ""
        End If
     
        TestDate = DateDiff("d", EDIRechDebDateDerniereInscription, EDIRechFinDatePremiereInscription)
     
        If TestDate < 0 Then
            MsgBox "La date de début de recherche ne peut pas être plus grande que la date de fin de recherche... modifiez vos critères de recherche Date..."
            Exit Sub
        Else
            If Len(FiltreDateInscriptionDebut) > 1 And Len(FiltreDateInscriptionFin) > 1 Then
                If Len(filtre) = 0 Then
                    filtre = "OPF_R_Secteur.Archivage_D_DateInscription Between " & FiltreDateInscriptionDebut & " And " & FiltreDateInscriptionFin
                Else
                    filtre = filtre & " AND OPF_R_Secteur.Archivage_D_DateInscription Between " & FiltreDateInscriptionDebut & " And " & FiltreDateInscriptionFin
                End If
            ElseIf Len(FiltreDateInscriptionDebut) > 1 And Len(FiltreDateInscriptionFin) <= 1 Then
                If Len(filtre) = 0 Then
                    filtre = "OPF_R_Secteur.Archivage_D_DateInscription >= " & FiltreDateInscriptionDebut
                Else
                    filtre = filtre & " AND OPF_R_Secteur.Archivage_D_DateInscription >= " & FiltreDateInscriptionDebut
                End If
            ElseIf Len(FiltreDateInscriptionDebut) <= 1 And Len(FiltreDateInscriptionFin) > 1 Then
                If Len(filtre) = 0 Then
                    filtre = "OPF_R_Secteur.Archivage_D_DateInscription <= " & FiltreDateInscriptionFin
                Else
                    filtre = filtre & " AND OPF_R_Secteur.Archivage_D_DateInscription <= " & FiltreDateInscriptionFin
                End If
            End If
        End If
     
        'Filtre de recherche sur la date de naissance...
        If EDIRechDebDateNaissance.Value <> "01.01.1900" Then
            FiltreDateNaissanceDebut = "#" & Month(EDIRechDebDateNaissance) & "/" & Day(EDIRechDebDateNaissance) & "/" & Year(EDIRechDebDateNaissance) & "#"
        Else
            FiltreDateNaissanceDebut = ""
        End If
     
        If EDIRechFinDateNaissance.Value <> "31.12.2999" Then
            FiltreDateNaissanceFin = "#" & Month(EDIRechFinDateNaissance) & "/" & Day(EDIRechFinDateNaissance) & "/" & Year(EDIRechFinDateNaissance) & "#"
        Else
            FiltreDateNaissanceFin = ""
        End If
     
        TestDateNaiss = DateDiff("d", EDIRechDebDateNaissance, EDIRechFinDateNaissance)
     
        If TestDateNaiss < 0 Then
            MsgBox "La date de début de recherche ne peut pas être plus grande que la date de fin de recherche... modifiez vos critères de recherche Date..."
            Exit Sub
        Else
            If Len(FiltreDateNaissanceDebut) > 1 And Len(FiltreDateNaissanceFin) > 1 Then
                If Len(filtre) = 0 Then
                    filtre = "OPF_R_Secteur.Debiteur_D_DateNaissance Between " & FiltreDateNaissanceDebut & " And " & FiltreDateNaissanceFin
                Else
                    filtre = filtre & " AND OPF_R_Secteur.Debiteur_D_DateNaissance Between " & FiltreDateNaissanceDebut & " And " & FiltreDateNaissanceFin
                End If
            ElseIf Len(FiltreDateNaissanceDebut) > 1 And Len(FiltreDateNaissanceFin) <= 1 Then
                If Len(filtre) = 0 Then
                    filtre = "OPF_R_Secteur.Debiteur_D_DateNaissance >= " & FiltreDateNaissanceDebut
                Else
                    filtre = filtre & " AND OPF_R_Secteur.Debiteur_D_DateNaissance >= " & FiltreDateNaissanceDebut
                End If
            ElseIf Len(FiltreDateNaissanceDebut) <= 1 And Len(FiltreDateNaissanceFin) > 1 Then
                If Len(filtre) = 0 Then
                    filtre = "OPF_R_Secteur.Debiteur_D_DateNaissance <= " & FiltreDateNaissanceFin
                Else
                    filtre = filtre & " AND OPF_R_Secteur.Debiteur_D_DateNaissance <= " & FiltreDateNaissanceFin
                End If
            End If
        End If
     
        'Filtre sur la date de participation...
        If EDIRechercheDebutDatePart.Value <> "01.01.1900" Then
            FiltreDateDebutPart = "#" & Month(EDIRechercheDebutDatePart) & "/" & Day(EDIRechercheDebutDatePart) & "/" & Year(EDIRechercheDebutDatePart) & "#"
        Else
            FiltreDateDebutPart = ""
        End If
     
        If EDIRechercheFinDatePart.Value <> "31.12.2999" Then
            FiltreDateFinPart = "#" & Month(EDIRechercheFinDatePart) & "/" & Day(EDIRechercheFinDatePart) & "/" & Year(EDIRechercheFinDatePart) & "#"
        Else
            FiltreDateFinPart = ""
        End If
     
        TestDatePart = DateDiff("d", EDIRechercheDebutDatePart, EDIRechercheFinDatePart)
     
        If TestDatePart < 0 Then
            MsgBox "La date de début de recherche ne peut pas être plus grande que la date de fin de recherche... modifiez vos critères de recherche Date..."
            Exit Sub
        Else
            If Len(FiltreDateDebutPart) > 1 And Len(FiltreDateFinPart) > 1 Then
                If Len(filtre) = 0 Then
                    filtre = "OPF_R_Secteur.Archivage_C_DelaisParticip Between " & FiltreDateDebutPart & " And " & FiltreDateFinPart
                Else
                    filtre = filtre & " AND OPF_R_Secteur.Archivage_C_DelaisParticip Between " & FiltreDateDebutPart & " And " & FiltreDateFinPart
                End If
            ElseIf Len(FiltreDateDebutPart) > 1 And Len(FiltreDateFinPart) <= 1 Then
                If Len(filtre) = 0 Then
                    filtre = "OPF_R_Secteur.Archivage_C_DelaisParticip >= " & FiltreDateDebutPart
                Else
                    filtre = filtre & " AND OPF_R_Secteur.Archivage_C_DelaisParticip >= " & FiltreDateDebutPart
                End If
            ElseIf Len(FiltreDateDebutPart) <= 1 And Len(FiltreDateFinPart) > 1 Then
                If Len(filtre) = 0 Then
                    filtre = "OPF_R_Secteur.Archivage_C_DelaisParticip <= " & FiltreDateFinPart
                Else
                    filtre = filtre & " AND OPF_R_Secteur.Archivage_C_DelaisParticip <= " & FiltreDateFinPart
                End If
            End If
        End If
     
            'enfin, on lance la fonction filtre sur le formulaire...
            If filtre = "" Then
                CMDToutVoir_Click
                Exit Sub
            Else
                ArchivageFiltre = filtre
                Me.Filter = filtre
                Me.FilterOn = True
            End If
     
    End Sub
    Je ne sais pas si je peux utiliser la fonction count pour calculer le Nbr d'enregistrements, mettre le résultat dans une variable, et l'afficer dans mon formulaire.
    Merci d'avance pour votre aide.
    Sylvain

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut
    Bonjour,

    Je pense que Me.recordset.recordcount renvoie le résultat cherché

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2003
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 21
    Points : 24
    Points
    24
    Par défaut
    Bonjour Nico84,

    c'est exactement ce qu'il me fallait. Merci pour ton aide précieuse.
    Au plaisir de se croiser à nouveau sur ce forum.
    A bientôt.
    Sylvain

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Smarty] Afficher le nombre d'enregistrement MySQL dans mon tpl
    Par a.brioit dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 10/01/2009, 21h39
  2. Réponses: 2
    Dernier message: 07/02/2006, 20h42
  3. Nombre d'enregistrement dans une table MySQL
    Par tom06440 dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 21/10/2005, 19h07
  4. [SQL][ACCESS]Compter le nombres d'enregistrement dans deux..
    Par pc152 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/06/2004, 12h30
  5. Réponses: 4
    Dernier message: 29/05/2004, 14h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo