Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/10/2011, 14h09   #1
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 19
Points : 3
Points : 3
Par défaut strfiltre date dans un filtre

Bonjour,

Dans un formulaire, j'ai crée deux champs date me permettant de faire un filtre.
1er champ intitulé txtdatedebut et un autre txtdatefin.
Mon sous formulaire contient tous les champs dont celui intitulé date d'enregistement

voici mon code:
Code :
1
2
3
4
5
6
7
8
9
10
11
If Not IsNull(Me.txtdatedebut) Then
If strfiltre <> "" Then strfiltre = strfiltre & " AND "
 strfiltre = strfiltre & "[Date d'enregistrement]=#" & Format(Me.txtdatedebut, "dd/mm/yyyy") & "#"
 
 
End If
If Not IsNull(Me.txtdatefin) Then
 
 
If strfiltre <> "" Then strfiltre = strfiltre & " And"
 strfiltre = strfiltre & "[Date d'enregistrement]=#" & Format(Me.txtdatefin, "dd/mm/yyyy") & "#"
Bien sûr, le filtre ne fonctionne pas, je n'ai pas de résultat alors que dans ma table, j'ai tout ce qu'il faut pour me donner les résultats.

Je vous remercie pour votre aide
dav787 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 16h16   #2
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 657
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 657
Points : 6 222
Points : 6 222
Envoyer un message via MSN à argyronet
Bonjour,

Utilise Me.FilterOn pour connaître le fitre en cours...
Ensuite il est préférable de définir un intervalle de dates plutôt qu'une égalité car si Début est > Fin, chose que tu ne vérifies pas, tu n'auras aucun résultat...
Voici un exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dim strFiltre                                          As String
Dim strDateDebut                                       As String
Dim strDateFin                                         As String
Dim strIntervalle                                      As String
    strDateDebut = Nz(Me.txtdatedebut, "")
    strDateFin = Nz(Me.txtdatefin, "")
    If IsDate(strDateDebut) And IsDate(strDateFin) Then
        strDateDebut = Format(Me.txtdatedebut, "mm/dd/yyyy")
        strDateFin = Format(Me.txtdatefin, "mm/dd/yyyy")
        If CDate(strDateDebut) > CDate(strDateFin) Then
            MsgBox "Problème sur les dates !", vbExclamation
            Exit Sub
        End If
        strIntervalle = "[Date d'enregistrement]>=#" & strDateDebut & "# AND [Date d'enregistrement]<#" & strDateFin & "#"
        If Me.FilterOn Then
            strFiltre = "WHERE " & Me.Filter & " AND " & strIntervalle
        Else
            strFiltre = strIntervalle
        End If
    End If
    MsgBox strFiltre
Argy
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 16h55   #3
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 19
Points : 3
Points : 3
Bonjour et merci pour la répons super rapide.

l'approche est effectivement meilleure.

Merci
dav787 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h20.


 
 
 
 
Partenaires

Hébergement Web