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

Access Discussion :

filtre sous-état dans un formulaire navigation


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2020
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2020
    Messages : 37
    Points : 20
    Points
    20
    Par défaut filtre sous-état dans un formulaire navigation
    Bonjour,

    Voici mon problème :

    J'ai réalisé un formulaire de navigation intitulé FN, dans lequel j'ai mis un sous-formulaire de navigation intitulé "SFN".
    Dans ce dernier, j'y ai posé 3 listes déroulantes multicritères et un groupe d'options permettant de choisir mes critères pour filtrer un sous-état intitulé "cours2"

    Or, lorsque je sélectionne mes filtres et que je passe cela via une procédure VBA (présentée ci-dessous) la mise à jour ne se fait pas dans les menus déroulants et elle se fait avec un clique de retard pour le groupe d'option.

    Ce qui est troublant c'est que si je mets un sous-formulaire identique au sous-état en lieu et place de ce dernier, cela fonctionne très bien. On dirait qu'il y a un problème de mise à jour... des sous-formulaires

    je mets ici le code via ce que j'ai créé pour ce filtrage :

    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
     
    Public Sub SFilter3()
     
        Dim sql As String
        Dim varI As Variant
        Dim StrFiltreType As String
        Dim strFiltreNiveau As String
        Dim strFiltreStatut As String
        Dim filtre As String
        Dim f As String
     
    'filtre selon multicritères type, niveau ou statut
     
    If Not IsNull(StrFiltreType) Then
        For Each varI In Me!Filtre_TypeCours.ItemsSelected
            If StrFiltreType <> "" Then StrFiltreType = StrFiltreType & " OR "
            StrFiltreType = StrFiltreType & "[Type_cours]='" & Me!Filtre_TypeCours.ItemData(varI) & "'"
        Next varI
    End If
     
    If Not IsNull(strFiltreNiveau) Then
         For Each varI In Me!Filtre_NiveauCours.ItemsSelected
            If strFiltreNiveau <> "" Then strFiltreNiveau = strFiltreNiveau & " OR "
            strFiltreNiveau = strFiltreNiveau & "[Niveau_cours]='" & Me!Filtre_NiveauCours.ItemData(varI) & "'"
        Me.Filtre_NiveauCours.Requery
     
        Next varI
     
    End If
     
    If Not IsNull(strFiltreStatut) Then
         For Each varI In Me!Filtre_Statut.ItemsSelected
            If strFiltreStatut <> "" Then strFiltreStatut = strFiltreStatut & " OR "
            strFiltreStatut = strFiltreStatut & "[Statut]='" & Me!Filtre_Statut.ItemData(varI) & "'"
        Next varI
    End If
     
    '   entre dates
     
    If (Not IsNull(Me.Date_IN)) And (Not IsNull(Me.Date_OUT)) Then
        f = "DateJour>=" & Format(Me.Date_IN, "\#mm\/dd\/yyyy\#") _
        & " and DateJour<=" & Format(Me.Date_OUT, "\#mm\/dd\/yyyy\#")
    End If
     
    ' conditions de filtre selon critères
     
        If StrFiltreType <> "" Then StrFiltreType = "(" & StrFiltreType & ") AND "
        If strFiltreNiveau <> "" Then strFiltreNiveau = "(" & strFiltreNiveau & ") AND "
        If strFiltreStatut <> "" Then strFiltreStatut = "(" & strFiltreStatut & ") AND "
        If f <> "" Then f = "(" & f & ") "
     
        Forms!FN!SFN![Cours2].Report.Filter = StrFiltreType & strFiltreNiveau & strFiltreStatut & f
        Forms!FN!SFN![Cours2].Report.FilterOn = True
        Forms!FN!SFN![Cours2].Report.Requery
     
    End Sub
     
     
    Private Sub Selection_niveau_Click()
        Call Filtre_periode
    End Sub
    Public Sub Filtre_periode()
    Select Case Selection_niveau
    Case 1:
        Dim dateaujourdhui As Date
        dateaujourdhui = Date
        Me.Date_IN = dateaujourdhui
        Me.Date_OUT = dateaujourdhui
    Case 2:
        Dim dtDebutSemaine As Date
        Dim dtFinSemaine As Date
        dtDebutSemaine = Date - Weekday(Date, vbMonday) + 1
        dtFinSemaine = Date + 7 - Weekday(Date, vbMonday)
        Me.Date_IN = dtDebutSemaine
        Me.Date_OUT = dtFinSemaine
    Case 4:
        Dim dtDebutAnnee As Date
        Dim dtFinAnnee As Date
        dtDebutAnnee = DateSerial(Year(Date), 1, 1)
        dtFinAnnee = DateAdd("yyyy", 1, dtDebutAnnee) - 1
        Me.Date_IN = dtDebutAnnee
        Me.Date_OUT = dtFinAnnee
    End Select
        Call SFilter3
    End Sub

  2. #2
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2020
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2020
    Messages : 37
    Points : 20
    Points
    20
    Par défaut Personne ne sait...
    N’y a-t-il personne pour m’aider avec ce problème ?...
    Merci d’avance et belle semaine à vous.

  3. #3
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut
    Étrangement votre problème ressemble à s'y méprendre au problème qu'a rencontré l'équipage d'Apollo 13.
    De mémoire les ingénieurs et techniciens au sol ont dû inventer ou trouver une astuce pour transformer une pièce ronde en pièce carré.
    Comme l'impression que vous voulez que votre report se comporte comme un form, alors que les reports sont prévus pour des impressions, etc..
    La solution, vous l'avez.
    Dans ce cas, créez un report et utilisez votre subform pour le filtrer. Si c'est bien la manip que vous cherchez à réaliser.

Discussions similaires

  1. [CR10] Variable partagé d'un sous état dans la meme section
    Par alpachico dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 04/08/2006, 13h57
  2. Gérer plusieurs sous état dans un état
    Par oceanediana dans le forum Access
    Réponses: 4
    Dernier message: 24/07/2006, 14h02
  3. Boton imprimer état dans un formulaire
    Par vautour29 dans le forum IHM
    Réponses: 1
    Dernier message: 05/06/2006, 21h45
  4. [CR]Récupérer un résumé d'un sous état dans l'état principal
    Par sylviefrfr dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 28/03/2006, 11h58
  5. [Crystal reports 10] Sous états dans un sous état
    Par jidea dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 12/08/2004, 10h53

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