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 :

Saisie obligatoire si case cochée [AC-2007]


Sujet :

Access

  1. #1
    Membre du Club
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Points : 59
    Points
    59
    Par défaut Saisie obligatoire si case cochée
    Bonjour tout le monde,

    Après recherche et test de plusieurs solutions proposées je n'ai pas trouvé quelque chose qui marche. Ma demande n'est pas compliquée mais étant plus que débutante en VBA je n'y arrive pas.
    Je souhaite que lorsque sur un formulaire, on coche une certaine case (nommée Prise_en_compte), la date de prise en compte (nommée Date_prise_en_compte) soit obligatoirement remplie. Donc soit en bloquant l'enregistrement si ce n'est pas le cas grâce à message ou soit que la date se remplisse automatiquement si la case est cochée mais avec cette solution là j'ai peur que la date change à chaque fois que l'on va rouvrir le formulaire qui plus est, un jour différent.

    Quelqu'un connait un code VBA pour cela?
    Merci d'avance.

  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
    Re-,

    Avec ce code sur l'évènement Avant Mise à jour de ton formulaire, cela doit se faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Form_BeforeUpdate(Cancel As Integer)
    If Me.Prise_en_compte And (IsNull(Me.Date_prise_en_compte) Or Me.Date_prise_en_compte = "") Then
     
        Me.Undo 'Annuler les saisies faites : optionnel (Tu peux annuler uniquement la saisie de PriseenCompte avec Me.PriseEncompte.Undo
        MsgBox ("Vous avez oublié la date de prise en compte!")
        Me.Date_prise_en_compte.SetFocus
     
    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

  3. #3
    Membre du Club
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par madefemere Voir le message
    Re-,

    Avec ce code sur l'évènement Avant Mise à jour de ton formulaire, cela doit se faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Form_BeforeUpdate(Cancel As Integer)
    If Me.Prise_en_compte And (IsNull(Me.Date_prise_en_compte) Or Me.Date_prise_en_compte = "") Then
     
        Me.Undo 'Annuler les saisies faites : optionnel (Tu peux annuler uniquement la saisie de PriseenCompte avec Me.PriseEncompte.Undo
        MsgBox ("Vous avez oublié la date de prise en compte!")
        Me.Date_prise_en_compte.SetFocus
     
    End If
     
    End Sub
    Cordialement,

    Vous allez finir par me faire ma base complètement... Non encore merci.
    Le code marche bien mais je peux fermer le formulaire quand même: le message s'affiche bien lorsque je souhaite quitter le formulaire, je click sur le OK pour l'enlever et là le formulaire se ferme. Que dois-je rajouter pour éviter cela et les obliger à rester sur le formulaire tant qu'il n'ont pas rempli la date?

    Merci

  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
    Re-,

    C'est le souci dans les applications, il faut penser à toutes les possibilités.
    Ton souci ici est que tu utilises une MACRO et non de code VBA pour fermer ton formulaire avec ton bouton Commande43. Il faudrait remplacer cette MACRO par ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Commande43_Click()
    If Me.Prise_en_compte And (IsNull(Me.Date_prise_en_compte) Or Me.Date_prise_en_compte = "") Then
        'Me.Prise_en_compte.Undo
        'Me.Undo
        MsgBox ("Vous avez oublié la date de prise en compte!")
        Exit Sub
        Me.Date_prise_en_compte.SetFocus
    Else
        DoCmd.Close
    End If
     
    End Sub
    et neutraliser aussi le bouton Croix en haut à droite qui permet de fermer le formulaire.

    Attention : Le code actuel permet de vérifier la saisie de nouveaux enregistrements mais ne fait pas le contrôle de ceux qui ont été saisis avant.

    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 du Club
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Points : 59
    Points
    59
    Par défaut
    C'est tout bon!
    Merci beaucoup encore une fois!

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

Discussions similaires

  1. retenir les cases cochées
    Par allowen dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/02/2006, 11h55
  2. Oui/Non (case à cochée) comme critère
    Par ivan7 dans le forum Access
    Réponses: 1
    Dernier message: 06/02/2006, 23h57
  3. [PHP-JS] Comment rendre la saisie obligatoire ?
    Par whbh dans le forum Langage
    Réponses: 10
    Dernier message: 25/01/2006, 22h08
  4. saisie obligatoire dans un champs de formulaire
    Par Didi17 dans le forum Access
    Réponses: 2
    Dernier message: 28/10/2005, 03h51
  5. Recupération de cases cochées sous access
    Par geefo dans le forum Access
    Réponses: 2
    Dernier message: 10/10/2005, 13h11

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