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

IHM Discussion :

Filtrage dynamique d'un formulaire : Date et Derniers enregistrements.


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Amateur
    Inscrit en
    Août 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Août 2007
    Messages : 50
    Points : 24
    Points
    24
    Par défaut Filtrage dynamique d'un formulaire : Date et Derniers enregistrements.
    Bonsoir à tous.

    Voilà, j'ai deux problèmes à vous soumettre.

    Pour le premier, j'applique sur mon formulaire un filtrage dynamique à l'aide de VBA pour obtenir les enregistrements entre deux dates distinctes renseignées par mes soins.

    Le problème est que je rentre sur mon formulaire de recherche les dates au format français "jj mm aa" mais que VBA les interprète sous le format "mm jj aa" et me renvoi donc un filtrage erroné.

    Bien sûr je veux continuer à rentrer les données sur mon formulaire dans le format français. Quelle est donc la solution pour que VBA comprenne que je lui soumets une date au format français "jj mm aa" et non au format américain "mm jj aa" ?


    Mon deuxième problème est que je voudrais un champ de recherche, toujours sur le même formulaire de filtrage dynamique, qui me permettrait d'extraire les derniers enregistrements, triés en fonction de la date et de l'heure.

    Ce que serait formidable, c'est d'avoir une liste déroulante comprenant les chiffres de 1 à 10 et en sélectionnant par exemple le 5, que mon formulaire me donne les cinq derniers enregistrements en fonction de leur date et de leur heure.

    J'ai entendu parler de la fonction TOP mais j'ai peur de faire fausse route.


    J'espère avoir été clair et je vous remercie par avance de vos lumières.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Pourrait-on avoir le code qui te filtre ton formulaire.

    Starec

  3. #3
    Membre à l'essai
    Homme Profil pro
    Amateur
    Inscrit en
    Août 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Août 2007
    Messages : 50
    Points : 24
    Points
    24
    Par défaut
    Bonsoir,

    Voici le code, après avoir je crois résolu le problème :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ' Filtre sur le type de Date
    If Not IsNull(Me.cmbDate1) Then
        If strFiltre <> "" Then strFiltre = strFiltre & " AND "
        strFiltre = strFiltre & "([Date] Between Format('" & Me.cmbDate1 & "', 'dd mmmm yy') and Format('" & Me.cmbDate2 & "', 'dd mmmm yy'))"
    End If

    Dans ma première version les ' était remplacés par des # ou par des " ce qui me renvoyait un mauvais résultat :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ' Filtre sur le type de Date
    If Not IsNull(Me.cmbDate1) Then
        If strFiltre <> "" Then strFiltre = strFiltre & " AND "
        strFiltre = strFiltre & "([Date] Between Format(#" & Me.cmbDate1 & " # , "dd mmmm yy") and Format( # " & Me.cmbDate2 & " # , "dd mmmm yy"))"
    End If


    Par contre pour le tri par rapport aux "x" derniers enregistrements, je n'ai pas de code à vous présenter car j'avoue ne pas savoir par quel bout prendre ce problème. Avez-vous une idée ?

    Merci de votre attention.

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    au lieu de faire le formatage des dates a posteriori, il est plus conventionnel de le faire en vba à la création.

    Il suffit de créer une fonction public dans un module pour formater les dates :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Function DateToSQL(dDate As Date) As String
       DateToSQL = Format$(dDate, "\#m-d-yyyy\#")
    End Function
    et ta ligne devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    strFiltre = strFiltre & "([Date] Between " & DateToSQL(Me.cmbDate1) & " and " & DateToSQL(Me.cmbDate2) & ")"
    Pour récupérer les 5 derniers enregistrement, on peut utiliser une requete comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TOP 5 ... Order By [Date] DESC;
    cordialement,

    Philippe

  5. #5
    Membre à l'essai
    Homme Profil pro
    Amateur
    Inscrit en
    Août 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Août 2007
    Messages : 50
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par philben Voir le message
    Pour récupérer les 5 derniers enregistrement, on peut utiliser une requete comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TOP 5 ... Order By [Date] DESC;
    Merci pour votre réponse mais est-ce une formule que je peux intégrer directement dans VBA pour mon filtre dynamique ou est-ce réservé uniquement à une requête SQL ?

    Cordialement, Fabrice.

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    c'est une requête qui peut être la source d'un formulaire.

    Philippe

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/03/2015, 15h43
  2. Réponses: 6
    Dernier message: 23/09/2010, 12h59
  3. Date du dernier acces à mon formulaire
    Par yatmen dans le forum IHM
    Réponses: 4
    Dernier message: 25/02/2009, 16h08
  4. Ouvrir formulaire sur le dernier enregistrement
    Par bobosh dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/09/2008, 13h32
  5. Pb filtrage dynamique formulaire
    Par STANDBOY dans le forum Access
    Réponses: 1
    Dernier message: 06/03/2006, 22h28

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