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 :

champ conditionnel puis obligatoire


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2015
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Juin 2015
    Messages : 288
    Points : 87
    Points
    87
    Par défaut champ conditionnel puis obligatoire
    bonjour,

    n'ayant pas trouvé de sujet correspondant sur le forum, je me permets de poster ma question ici.

    j'ai un champ dont l'affichage est conditionné par la valeur du champ précédent - pas de souci.

    Mais je voudrais que "Si le champ est affiché, il est obligatoire"
    j'imagine que si je mets "Null interdit = oui" dans la table, il sera tout le temps obligatoire et pas uniquement s'il est affiché
    --> comment puis-je faire svp ?

    cordt

  2. #2
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut champ conditionnel puis obligatoire
    Bonjour,

    Sur l'événement BeforeUpdate de ton formulaire, tu testes ton champ:

    1 si Texte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If Nz(monChampObligatoire,"")="" then
       MsgBox("Le champ est obligatoire")
       Cancel=True
       Exit Sub
    End if
    2 si Numérique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Nz(monChampObligatoire,0)=0 then
       MsgBox("Le champ est obligatoire")
       Cancel=True
       Exit Sub
    End if
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  3. #3
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2015
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Juin 2015
    Messages : 288
    Points : 87
    Points
    87
    Par défaut
    bonjour,

    je ne comprends pas bien la syntaxe proposée...
    --> comme mon champ est numérique, j'aurais pensé à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.ID_Prestation_Fait_générateur.Value = "0" Then...
    ???

    cordt

  4. #4
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut champ conditionnel puis obligatoire
    En fait il s'agit d'intercepter la saisie incomplète avant l'enregistrement du formulaire:

    Tu peux rajouter avant le "Cancel=True"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me!monChampObligatoire.SetFocus
    ...pour orienter l'utilisateur au bon endroit.

    EDIT: Et remplacer "monChampObligatoire" par ID_Prestation_Fait_générateur
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  5. #5
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut champ conditionnel puis obligatoire
    comme mon champ est numérique, j'aurais pensé à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.ID_Prestation_Fait_générateur.Value = "0" Then...
    Ici tu me dis que ton champ est numérique et tu le codes en String ???

    Je pense que tu devrais choisir la deuxième option proposée.
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Tu peux utiliser cela qui ne dépend pas du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if me.TonChamp.visible and (isnull(me.tonchamp) or isempty(me.tonchamp)) then
       MsgBox("Le champ est obligatoire")
       Cancel=True
       Exit Sub
    end if
    Toute autre valeur, y compris 0 est accepté comme une valeur valide.

    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.

  7. #7
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2015
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Juin 2015
    Messages : 288
    Points : 87
    Points
    87
    Par défaut
    bonjour à tous,

    @Ric500 :
    oui j'ai bien mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        If Nz(ID_Prestation_Fait_générateur, 0) = 0 Then
           MsgBox ("Le champ est obligatoire")
           Cancel = True
           Exit Sub
        End If
    et cela a l'air de fonctionner - même si je ne comprends tjs pas la syntaxe...

    et ma proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.ID_Prestation_Fait_générateur.Value = "0" Then...
    n'était qu'une suggestion - non implémentée !
    et oui "= 0" est plus correct dans mon cas !

    @marot_r :
    là, je comprends la syntaxe ! Merci !
    du coup, je pensais qu'avec "isnull" dans cette commande, la valeur 0 serait refusée :
    --> "si c'est visible et que c'est (nul ou vide), alors..."

    non ?

    cordt

  8. #8
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut champ conditionnel puis obligatoire
    Bonjour,

    La Fonction Nz renvoie une valeur alternative si la valeur Null est rencontrée. Bien pratique lorsque Null fait planter le code: je l'emploie quasi systématiquement.
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  9. #9
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Juin 2015
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Juin 2015
    Messages : 288
    Points : 87
    Points
    87
    Par défaut
    Merci !
    j'aurai appris qqchose today !

    cordt

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.
    @marot_r :
    là, je comprends la syntaxe ! Merci !
    du coup, je pensais qu'avec "isnull" dans cette commande, la valeur 0 serait refusée :
    --> "si c'est visible et que c'est (nul ou vide), alors..."
    Non en VBA (et généralement en informatique) un Null est différent d'un 0.
    Un null signifie que la valeur est indéterminée, ce n'est "rien" que le système connait.
    C'est pour cela que tu as des fonctions dédié à leur traitement comme Nz et IsNull.

    Ceci dit Access n'est pas très cohérent car en principe n'importe quoi et Null donne null or si tu fais la somme de Null avec DSum() tu obtiens 0.
    Si tu concatène une chaine à null c'est comme si tu ajoutais une chaîne vide ("").
    Et en passant on ne peut pas faire if Null=Null, ça donne Null !.
    Si tu as un cas comme cela il faut soit substituer le null soit faire if isnull(Null) and isNull(Null) then.
    Bref quand on a des Nulls dans ses données, il est prudent de les traiter soi-même pour être sur de la valeur qui leur sera assignés.

    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. Champ avec caractère obligatoire
    Par LUCAS-28 dans le forum IHM
    Réponses: 7
    Dernier message: 17/09/2007, 19h29
  2. fond de couleur pour les champs conditionnelles
    Par phenixnerull dans le forum Excel
    Réponses: 4
    Dernier message: 28/06/2007, 12h13
  3. [Validator] champ date non obligatoire
    Par anjiniaina dans le forum Struts 1
    Réponses: 6
    Dernier message: 23/03/2007, 09h50
  4. Champ conditionnel dans une vue
    Par mfmf99 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/09/2006, 22h49
  5. rendre certains champs de formulaire obligatoire
    Par rasleboldesid dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/08/2006, 15h54

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