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 :

Autoriser valeur une seule fois


Sujet :

IHM

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut Autoriser valeur une seule fois
    Bonjour,

    J'ai un sous-formulaire lié à mon formulaire principale par le champ "Customernumber" qui contient une liste déroulante avec plusieurs valeurs.
    J'aimerais qu'une de ces valeurs ne puissent être seléctionnées qu'une seule fois dans le jeu d'enregistrement par "Customernumber".

    Comment m'y prendre ?

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour,

    Peut être un index unique sur la table fille pourrait convenir, non?


    Sinon, il te faudra sans doute traiter ce contrôle sur Avant MAJ de l'enregistrement dans le sous formulaire. Il te faudra alors rechercher si la valeur existe déjà pour le CustomerNumber en cours et dans ce cas afficher un message et refuser cette modification (cancel = true).

  3. #3
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par mout1234 Voir le message
    Bonjour,

    Peut être un index unique sur la table fille pourrait convenir, non?


    Sinon, il te faudra sans doute traiter ce contrôle sur Avant MAJ de l'enregistrement dans le sous formulaire. Il te faudra alors rechercher si la valeur existe déjà pour le CustomerNumber en cours et dans ce cas afficher un message et refuser cette modification (cancel = true).
    Merci pour ta réponse, mais justement je n'arrive pas à écrire le code ...

  4. #4
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Citation Envoyé par lucas-18 Voir le message
    Merci pour ta réponse, mais justement je n'arrive pas à écrire le code ...
    Montre ton code pour voir ce qui ne va pas

  5. #5
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par mout1234 Voir le message
    Montre ce que ton code pour voir ce qui ne va pas
    Je t'ai dit que je n'y étais pas arrivé , j'ai pourtant cherché mais rien trouvé à ce sujet

  6. #6
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Comme je l'évoquais précédement:
    Sinon, il te faudra sans doute traiter ce contrôle sur Avant MAJ de l'enregistrement dans le sous formulaire. Il te faudra alors rechercher si la valeur existe déjà pour le CustomerNumber en cours et dans ce cas afficher un message et refuser cette modification (cancel = true).
    EN clair, qq chose du genre (plusieurs syntaxes possibles)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    IF Dcount("*","MaTable","CustomerNumber=" Me!CustomerNumber & " AND MonChamp = " & Me!MalisteDéroulante ) > 0 then
      Msgbox "existe déjà ..."
      cancel = true
    end if
    Il restera un souci: celui d'exclure du DCount l'enregistrement en cours, dans le cas où l'utilisateur a modifié autre chose que la valeur de la liste déroulante...

  7. #7
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut
    J'ai un message d'erreur de compilation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form_BeforeUpdate(Cancel As Integer)
    IF Dcount("*","tbl_inforcementcancellation","CustomerNumber=" Me!CustomerNumber & " AND Take = " & Me!Take) > 0 then
      MsgBox "existe déjà ..."
      Cancel = True
    End If
    End Sub

  8. #8
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Manque un &

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF Dcount("*","tbl_inforcementcancellation","CustomerNumber=" & Me!CustomerNumber & " AND Take = " & Me!Take) > 0 then

  9. #9
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par mout1234 Voir le message
    Manque un &

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF Dcount("*","tbl_inforcementcancellation","CustomerNumber=" & Me!CustomerNumber & " AND Take = " & Me!Take) > 0 then

    Ca ne marche pas

  10. #10
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Désolé, je ne suis pas doué en dévinettes ...

    Citation Envoyé par lucas-18 Voir le message
    Ca ne marche pas
    C'est un peu vague!
    Y-a-t-il un message d'erreur?

  11. #11
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par mout1234 Voir le message
    Désolé, je ne suis pas doué en dévinettes ...



    C'est un peu vague!
    Y-a-t-il un message d'erreur?
    Le message est le suivant :

    Run-Time error '2001':

    You canceled the previous operation

    End Debug

  12. #12
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut
    J'ai mis une partie de ma base en annexe ; quelqu'un pourrait y jeter un coup d'oeil

    PS : il s'agit du sous-formulaire "frm_ inforcementcancellation" et du champ "Cause"
    De plus j'ai supprimé le code qui ne marchait pas sur l'évènement BeforeUpdate de mon champ "Cause"

    http://www.flyupload.com/?fid=2575819

    OU

    http://www.flyupload.com/?fid=2575819

    Merci de votre aide svp

  13. #13
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Je n'ai pas accès à ta base pour le moment (accès web restreint) mais vu ton message, je suppose que tu avais un autre bout de code (genre sur Aprés MAJ...) qui rentrait en conflit avec ton avant MAJ de ta liste déroulante...

    Essaies de faire ce traitement - comme je l'avais proposé je crois - sur Avant MAJ du sous formulaire.

  14. #14
    Débutant
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 482
    Points : 142
    Points
    142
    Par défaut
    Citation Envoyé par mout1234 Voir le message
    Je n'ai pas accès à ta base pour le moment (accès web restreint) mais vu ton message, je suppose que tu avais un autre bout de code (genre sur Aprés MAJ...) qui rentrait en conflit avec ton avant MAJ de ta liste déroulante...

    Essaies de faire ce traitement - comme je l'avais proposé je crois - sur Avant MAJ du sous formulaire.
    Je n'ai pas d'évènement beforeupdate sur ma listbox mais ongetfocus ...

    Tu peux essayer via ces liens si tu arrives à dwl la base :

    http://www.sendspace.com/file/eijho6
    OU
    http://www.sendspace.com/file/5fz6b9

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par mout1234 Voir le message
    Bonjour,

    Peut être un index unique sur la table fille pourrait convenir, non?
    Bjr,

    J'ai un peu le même problème. J'ai un sous formulaire (en mode Formulaire unique) dans un formulaire, et je souhaite que l'on ne puisse pas faire 2 enregistrements (fiches) différents dans le sous formulaire, pour le même formulaire.
    La propriété "sans doublon" pour le champs fils est une solution, mais l'on a alors une erreur en fin de saisie dans le sous formulaire, et en plus il n'est pas évident pour l'utilisateur de se sortir de cette erreur (car seulement via échap).
    Voyez vous une solution ?
    Merci.

    DD

Discussions similaires

  1. Réponses: 8
    Dernier message: 20/10/2014, 04h28
  2. Recherche par mots clés : afficher qu'une seule fois la même valeur
    Par Zazou48 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 09/05/2013, 15h30
  3. Réponses: 4
    Dernier message: 01/06/2012, 19h38
  4. Inno Setup, autoriser l'installation une seule fois
    Par debian54 dans le forum Outils
    Réponses: 5
    Dernier message: 17/10/2011, 14h05
  5. Réponses: 2
    Dernier message: 04/07/2006, 02h32

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