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 :

Empêcher la sortie d'un sous-formulaire sous condition [AC-2013]


Sujet :

IHM

  1. #1
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut Empêcher la sortie d'un sous-formulaire sous condition
    Bonjour,

    Je dispose d'un formulaire avec un sous-formulaire.
    Je procède à un contrôle des données du sous-formulaire et je voudrais empêcher la sortie du sous-formulaire sous condition.
    Quel évènement est adapté ? (Il faudrait pouvoir agir sur Cancel)
    Gabout

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonsoir,

    BeforeUpDate devrait faire l'affaire.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour Madefemere,

    Merci de te pencher sur mon problème.

    L'événement BeforeUpDate s'applique à l'enregistrement et non au sous-formulaire. La vérification va donc s'opérer avant chaque enregistrement dans le sous-formulaire.

    Le sous-formulaire contient 2 dates (début et fin), 1 domaine et une quotité. Il représente, pour une période donnée, la répartition des domaines d'activité du personnel d'une société.
    Une personne peut avoir un ou plusieurs domaines. La somme des domaines pour une même période doit être <= 100.
    La vérification porte sur 2 aspects :
    • la somme des périodes <= 100 ;
    • si la somme est < 100 demander validation.

    Bien sûr, il eût été préférable de scinder le sous-formulaire en 2 parties : la période, puis un sous-sous-formulaire pour la répartition des domaines... mais à l'utilisation, cela commence à devenir difficile.

    Une idée ?
    Gabout

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Je ne vois pas de souci : exemple que j'utilise par exemple dans un sous-formulaire pour vérifier que des valeurs date et Hôtel sont bien saisies dans les champs conrrespondants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    'Gestion absence de date et hôtel dans sous-formulaire
    Private Sub Form_BeforeUpdate(Cancel As Integer)
     
    If IsNull(Me.DateJour) Then
        MsgBox "Date obligatoire !"
        Me.Undo
    End If
    If IsNull(Me.CboHotel) Then
        MsgBox "Saisie hôtel obligatoire !"
        Me.Undo
    End If
    End Sub
    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  5. #5
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    ...si le contrôle devait s'effectuer sur chaque enregistrement du sous-formulaire, effectivement cela serait facile.

    Le problème est que la condition à vérifier porte sur un ou plusieurs enregistrements avant de sortir du sous-formulaire.
    Exemple : pour deux enregistrements saisis en même temps, tous les deux pour une même période, du genre
    01/01/2015 31/03/2015 Support 40%
    01/01/2015 31/03/2015 Environnement 60%
    Le contrôle va porter sur la somme de 40% et 60% de manière à ce que le total ne soit jamais supérieur à 100% et que, si on est en dessous de 100%, l'utilisateur valide ce choix.
    Gabout

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonsoir,
    Donc directement sur l'évènement après mise à jour du champ, je mettrai (Ici j'utilise le champ TauxPaiement):

    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
    'Validation taux saisi
    Private Sub TauxPaiement_AfterUpdate()
    Dim TotalTaux As Double
    If Me.TauxPaiement < 0 Or Me.TauxPaiement > 1 Then
        MsgBox "La valeur que vous avez saisie n'est pas valide !" & _
        vbCrLf & "Veuillez saisir une valeur entre 0,00 et 1,00!"
        Me.TauxPaiement = 0
    Else
        With Me.Recordset
            TotalTaux = 0
            .MoveFirst
            Do Until .EOF
                TotalTaux = TotalTaux + ![TauxPaiement]
                .MoveNext
            Loop
        End With
    '    Debug.Print TotalTaux
        If TotalTaux > 1 Then
            MsgBox "le total est supérieur à 100 !"
            Me.TauxPaiement = 0
        End If
    End If
    End Sub
    Attention, mon champ est un double et est uniquement formaté en %.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  7. #7
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonsoir madefemere

    Avec un peu de retard, je te remercie pour ton aide.
    J'ai adapté ton exemple et cela répond à ma demande.

    Cordialement,
    Gabout

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

Discussions similaires

  1. [AC-2007] Empécher le déplacement de colonne dans un sous-formulaire ?
    Par marot_r dans le forum IHM
    Réponses: 2
    Dernier message: 27/04/2012, 20h01
  2. [AC-2010] Formulaire - Sous formulaire - Sous sous formulaire
    Par meli74 dans le forum IHM
    Réponses: 1
    Dernier message: 21/04/2011, 19h35
  3. formulaire/sous formulaire/sous formulaire
    Par aimejielle dans le forum Access
    Réponses: 1
    Dernier message: 24/07/2006, 22h48
  4. Réponses: 1
    Dernier message: 10/07/2006, 09h15
  5. Exporter un sous formulaire sous excel
    Par titou dans le forum Access
    Réponses: 3
    Dernier message: 14/02/2005, 17h01

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