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 :

Filtre formulaire avec critère


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Points : 32
    Points
    32
    Par défaut Filtre formulaire avec critère
    Bonjour à tous,

    Données de départ:

    - Un formulaire en mode continu
    - 1 zone liste qui sert de critère de filtrage (Liste240)
    - Un champ [dateAlerte] qui sert de trie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub Liste240_Click()
    Dim strFiltre2 As String
    strFiltre2 = ""
     
    If (Me![Liste240]) = "7 jours" Then
    strFiltre2 = "[datealerte] LIKE '*" & (Date - 7) & "*'"
    End If
     
    Me.Form.Filter = strFiltre2
    Me.Form.FilterOn = True
    Le filtre fonctionne correctement quand le champ date = date -7 mais ce que je souhaite c'est voir tous les enregistrement supérieur à cette date et là le signe ">" n'est pas pris en charge


    Quelqu'un peut m'aider ?


  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonsoir,

    Comme mentionné maintes fois sur ce forum, cela me semble être un problème de format date dans une expression SQL...

    En supposant que ton champ DateAlerte est bien un champ de type date,essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strFiltre2 = "[datealerte] >#" & Format$(Date - 7,"mm/dd/YYYY") & "#'"

    Si ta syntaxe fonctionne (pour le cas de l'égalité), c'est grâce à la souplesse du moteur à qui tu imposes implicitement une transformation de ta date en texte...
    mais ce n'est pas conseillé! d'autant que le Like et les * sont inutiles ici...


    Bon dev
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Points : 32
    Points
    32
    Par défaut
    Bonjour mout1234,

    Ok, pour le format (dd,mm,YYYY) et le champ (date/texte) mais le problème c'est que cette synthAxe au final

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Datealerte] > #05/07/2007#
    Ne fonctionne pas !!, meme avec un champ numérique 0/100



    Help

  4. #4
    Membre actif Avatar de lucienkany
    Profil pro
    Développeur
    Inscrit en
    Janvier 2004
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2004
    Messages : 257
    Points : 220
    Points
    220
    Par défaut
    Bonjour,
    J'ai eu un problème simmilaire;

    D'abord, pour être sur que mon code fonctionnera même si la date system et au format US, j'ai un module qui se charge de la conversion.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ' ---
    ' CONVERSION D'UNE DATE FRANCAISE EN DATE US
    ' ---
    Function DateUS(ByVal DateFR As Date) As String
    DateUS = "#" & Month(DateFR) & "/" & Day(DateFR) & "/" & Year(DateFR) & "#"
    End Function
    et le code, si tu veux prendre des dates supérieures ou inférieures, tu devras mettre

    voici un exemple


    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
     
    'Filtre sur deux dates pour parametrer un période
    ' je met ici la partie qui t'intêresse bien entendu
    ' supérieure ou égale
    ' j'ai ajouté le -7 mais pas tésté stp
     
    If Not IsNull(Me.txtTaDateDebut) Then
        If strFiltre2 <> "" Then strFiltre2 = strFiltre2 & " AND "
        strFiltre2 = strFiltre2 & "([LaDate]>=" & DateUS(Me.txtTaDateDebut-7) & ")"
    End If
    'et inférieure ou égale
    If Not IsNull(Me.txtTaDateFin) Then
        If strFiltre2 <> "" Then strFiltre2 = strFiltre2 & " AND "
        strFiltre2 = strFiltre2 & "([LaDate]<=" & DateUS(Me.txtTaDateFin-7) & ")"
    End If
    Bien à toi

  5. #5
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Citation Envoyé par lucienkany
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ' ---
    ' CONVERSION D'UNE DATE FRANCAISE EN DATE US
    ' ---
    Function DateUS(ByVal DateFR As Date) As String
    DateUS = "#" & Month(DateFR) & "/" & Day(DateFR) & "/" & Year(DateFR) & "#"
    End Function
    Bonjour lucienkany
    L'utilisation d'une fonction est une bonne idée. La tienne doit fonctionner mais je présume qu'il serait plus efficace d'uitiliser la fonction format ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function DateUS(ByVal DateFR As Variant) As String
    On error resume next
             DateUS ="#01/01/1900#"
             DateUS = "#" & Format$(DateFR,"mm/dd/yyyy") & "#"
     
    End Function
    Pour simplifier, j'ajouterais un On error resume next, pour ignorer les erreurs si la source n'est pas fiable....
    Dans la même idée, je mettrais un type Variant au paramètre d'entrée afin de ne pas planter avec une valeur nulle...
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  6. #6
    Membre actif Avatar de lucienkany
    Profil pro
    Développeur
    Inscrit en
    Janvier 2004
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2004
    Messages : 257
    Points : 220
    Points
    220
    Par défaut
    Merci mout1234

    c'est noté

  7. #7
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Points : 32
    Points
    32
    Par défaut
    Hello,

    Ben c'est une affaire qui marche

    Merci à vous 2 pour le coup de main

    @ bientôt

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

Discussions similaires

  1. [AC-2007] ouverture formulaire avec critère date
    Par maximilien59 dans le forum IHM
    Réponses: 5
    Dernier message: 19/10/2012, 16h00
  2. Réponses: 3
    Dernier message: 02/01/2012, 17h59
  3. Filtre élaboré avec critère d'inégalité
    Par ninikosim dans le forum Excel
    Réponses: 6
    Dernier message: 07/07/2011, 21h55
  4. [AC-2007] Filtre Formulaire avec 3 listes déroulantes
    Par fabian_945 dans le forum IHM
    Réponses: 16
    Dernier message: 28/01/2010, 16h45
  5. [AC-2003] Dlookup sur sous-formulaire avec critère sur formulaire principal
    Par Soulq dans le forum VBA Access
    Réponses: 13
    Dernier message: 16/07/2009, 09h43

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