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

Requêtes et SQL. Discussion :

Requete de selection recherche par date


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Novembre 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Novembre 2015
    Messages : 22
    Points : 12
    Points
    12
    Par défaut Requete de selection recherche par date
    Bonjour,

    Je suis entrain de faire une requête de recherche multicritères. J'ai un critère Nom, Service, Date d'embauche et Fin de contrat.
    Par Nom, Service et Date d'embache pas de soucis. Par contre pour date de Fin de contrat comme j'ai pas toujours de date. Je réussis pas à filtrer car Access exclut automatiquement les enregistrements qui n'ont pas de date de fin de contrat. J'utilise la formule (qui marche trés bien avec Date d'embauche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >=VraiFaux(EstNull([Formulaires]![00_Accueil]![Date_DébutFin_CM]);#01/01/1900#;[Formulaires]![00_Accueil]![Date_DébutFin_CM]) Et <=VraiFaux(EstNull([Formulaires]![00_Accueil]![Date_FinFin_CM]);#01/01/2100#;[Formulaires]![00_Accueil]![Date_FinFin_CM])))
    Ou [Date_DébutFin_CM] est mon champs pour filtrer à partir de cette date les fin de contrats
    et [Date_FinFin_CM] est mon champs pour filtrer jusqu'a cette date les fin de contrats.

    J'ai essayé de bidouillé un VraiFaux en cascade pour dire que si DébutFin ou FinFin EstNull il doit rien faire mais ça marche pas Je dois me planter dans la synthaxe. Je suis novice...

    Merci,

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 182
    Points : 5 514
    Points
    5 514
    Par défaut
    Bonjour,

    Essayer en utilisant la fonction Nz() disponible dans Access:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >=Nz([Formulaires]![00_Accueil]![Date_DébutFin_CM]);#01/01/1990#)  Et <=Nz([Formulaires]![00_Accueil]![Date_FinFin_CM];#01/01/2100#)
    Bonne continuation.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Novembre 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Novembre 2015
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Bonjour EricDgn,

    Merci pour ta réponse, j'ai essayé la fonction Nz mais ça exclut toujours mes enregistrements ou je n'ai pas de date de fin de contrat.

    J'ai mon formulaire de recherche multicritère et quand je n'ai rien dans les critères de recherche fin de contrat (a partir de #;[Formulaires]![00_Accueil]![Date_DébutFin_CM] et jusqu'à #;[Formulaires]![00_Accueil]![Date_FinFin_CM]). Je souhaiterai avoir tous mes enregistrements notamment ceux ou je n'ai pas de fin de contrat et quand je mets une date que ça me filtre sur les contrats qui ont une date de fin.

    J'image un code un peu comme ça mais je connais pas encore bien les formules...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if ([Formulaires]![00_Accueil]![Date_DébutFin_CM] =Null et [Formulaires]![00_Accueil]![Date_FinFin_CM]=Null;'pas de filtre'; >=VraiFaux(EstNull([Formulaires]![00_Accueil]![Date_DébutFin_CM]);#01/01/1900#;[Formulaires]![00_Accueil]![Date_DébutFin_CM]) Et <=VraiFaux(EstNull([Formulaires]![00_Accueil]![Date_FinFin_CM]);#01/01/2100#;[Formulaires]![00_Accueil]![Date_FinFin_CM])))

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 182
    Points : 5 514
    Points
    5 514
    Par défaut
    Bonjour,

    Personnellement je préfère traiter les filtres en passant par du code. Pour moi c'est plus "lisible" et donc plus facile à mettre au point.

    Un exemple en attaché avec ce code dans un formulaire à filtrer sur 2 dates:
    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
    Option Compare Database
    Option Explicit
     
    Private Sub Dat1_AfterUpdate()
        Filtrer
    End Sub
     
    Private Sub Dat2_AfterUpdate()
        Filtrer
    End Sub
     
    Private Sub Filtrer()
        Dim sWh As String
        sWh = ""
        If Nz(Me.Dat1, "") <> "" Then
            sWh = sWh & " AND CnDat1>=#" & Format(Me.Dat1, "yyyy-mm-dd") & "#"
            '--- note: élimine aussi les enregistrements où [CnDat1] est vide
        End If
        If Nz(Me.Dat2, "") <> "" Then
            sWh = sWh & " AND CnDat2<=#" & Format(Me.Dat2, "yyyy-mm-dd") & "#"
            '--- note: élimine aussi les enregistrements où [CnDat2] est vide
        End If
        If sWh <> "" Then
            sWh = Mid(sWh, 6)
        End If
        Debug.Print "sWh: "; sWh
        Me.Filter = sWh
        Me.FilterOn = True
    End Sub
    A adapter à votre cas.
    Bonne continuation.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Faire une recherche par date
    Par ghnawfal dans le forum JSF
    Réponses: 13
    Dernier message: 11/04/2008, 07h35
  2. Requete : Problème de filtrage par date
    Par flamby6969 dans le forum Access
    Réponses: 1
    Dernier message: 20/12/2007, 13h29
  3. recherche par date vba excel
    Par fred014 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/03/2007, 13h35
  4. Réponses: 7
    Dernier message: 09/05/2006, 11h30
  5. Moteur de recherche par date
    Par Prue dans le forum ASP
    Réponses: 17
    Dernier message: 27/08/2003, 16h07

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