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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : mars 2011
    Messages : 31
    Points : 16
    Points
    16

    Par défaut Bouton pour annuller un evennement

    [INDENT][INDENT]Bonjour a tous

    merci d'abord a tout les membres de ce forum

    j'ai une base de données qui gère la répartition des examens dans une faculté et qui contient les tableaux suivants:
    -tableau niveau: id niveau; niveau; libellé
    -Tableau heure examen
    -Tableau affectation des examens le problème c'est que j'ai un formulaire qui contient 3 zones de listes et un sous-formulaire

    -la première zone de liste (liste niveau) contient la liste des niveaux
    -la deuxième zone de liste (liste jour) contient la liste des jours d'examens
    -la troisième zone de liste (liste heures) contient la liste des heures d'examens

    avec un double click par exemple sur la zone liste niveau j'ai sur le sous-formulaire les examens de ce niveau et avec un autre double click sur la liste jour j'ai les examens de ce niveau et du jour sélectionné et si je fais une troisième double-click sur la liste jour je peux avoir sur le sous-formulaire la liste des examens du niveau sélectionné dans le jour sélectionné et dans l'heure sélectionnée mon souci c'est d'avoir à chaque liste un bouton qui annule l'effet dû double-click de cette liste c à d si je sélectionne par double click le niveau par exemple X qui sera affiché sur le sous-formulaire je veux avec qui click sur un bouton éliminé ou annulé ou comment dire je éviter l'effet du double-click de la liste et retourner en arrière voir ci-dessus le code qui affiche le contenu sur le sous-formulaire d'un niveau sélectionné par double click

    Nom du formulaire :F_ListeEmargement
    Nom du sous-formulaire:EMARG

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub ListNiveau_DblClick(Cancel As Integer)
    If ((IsNull(Forms![F_ListeEmargement]![ListHeure])) And (IsNull(Forms![F_ListeEmargement]![ListJour]))) Then
        EMARG.SourceObject = "Query.R_Choix_Niveau"
    ElseIf ((IsNull(Forms![F_ListeEmargement]![ListHeure]))) Then
        EMARG.SourceObject = "Query.R_Choix_Jour_Niveau"
    ElseIf ((IsNull(Forms![F_ListeEmargement]![ListJour]))) Then
        EMARG.SourceObject = "Query.R_Choix_Heure_Niveau"
    Else
        EMARG.SourceObject = "Query.R_Choix_Jour_Heure_Niveau"
    End If
    EMARG.Requery

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    12 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 12 823
    Points : 19 448
    Points
    19 448

    Par défaut

    Bonjour.

    À la lecture de ton code je pense que la solution la plus simple est de créer une procédure et de l'appeler après leur mise à jour.
    Et je pense que tu as des listes déroulantes, pas des listes (tout-court) car elles ne peuvent pas être null.

    Ça donne quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private sub AppliquerFiltre()
     
        If IsNull(me.ListHeure) And IsNull(me.[ListJour]) Then
            me.EMARG.SourceObject = "Query.R_Choix_Niveau"
        ElseIf IsNull(me.[ListHeure]) Then
            me.EMARG.SourceObject = "Query.R_Choix_Jour_Niveau"
        ElseIf IsNull(me.[ListJour]) Then
            me.EMARG.SourceObject = "Query.R_Choix_Heure_Niveau"
        Else
            me.EMARG.SourceObject = "Query.R_Choix_Jour_Heure_Niveau"
        End If
     
        me.EMARG.Requery
    end sub
    Me. réfère au formulaire en cours et j'ai enlevé les parenthèses supplémentaires qui ne changeaient rien aux expressions.

    Ici un exemple pour la liste des niveaux à répéter pour les 2 autres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ListNiveau_AfterUpdate()
        call appliquerFiltre
    end sub
    Là dés que tu vas faire un choix (une valeur ou pas de valeur) tes filtres seront appliqués en conséquence.
    Cela t'évite d'avoir un bouton exprès pour effacer.

    Note que le sujet a été TRÈS couvert ici :
    • Les meilleurs cours et tutoriels pour apprendre Microsoft Access
    • Interface : les formulaires dans Microsoft Access
    • Formulaires de recherche

    https://access.developpez.com/cours/...#interfaceform

    Il y a des recherches pour tous les goûts et tous les niveaux de complexité.

    Enfin pour répondre à ta question, il suffit de faire un bouton dont le code est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.ListeNiveau=null 'À adapter pour chaque liste.
    puis de demander l'application du filtre.
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : mars 2011
    Messages : 31
    Points : 16
    Points
    16

    Par défaut

    merci pour votre réponse mais où je peux métre ce code : AppliquerFiltre() c a d dans quelle evennement
    par ce que j'ai essayé de le métre dans le formulaire evennement fitre appliquer
    et j'ai métre Call AppliquerFiltre Aprés Mise ajour de la liste il me donne toujour erreur de compilation "sub ou fonction non définie"
    merci pour votre aide

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    12 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 12 823
    Points : 19 448
    Points
    19 448

    Par défaut

    Bonjour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private sub AppliquerFiltre()
        'ici le code
    end sub
    est à mettre "dans" le code associé au formulaire, pas dans un événement en particulier.
    Après, il faut l'appeler de chacune des listes.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/12/2016, 20h19
  2. Réponses: 4
    Dernier message: 18/06/2014, 11h52
  3. Réponses: 16
    Dernier message: 30/01/2008, 16h11
  4. [JFileChooser] Bouton pour sauvegarder.
    Par Katyucha dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 03/01/2005, 13h02
  5. [FLASH MX2004] Bouton pour lire vidéo
    Par kiki93 dans le forum Flash
    Réponses: 10
    Dernier message: 23/11/2004, 12h50

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