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 :

Contraindre la saisie dans un champ dans un sous-form


Sujet :

IHM

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 16
    Par défaut Contraindre la saisie dans un champ dans un sous-form
    Bonjour
    Dans mon form j'ai un sous-form qui renseigne une requête dont la table est paramétrée sur NullInterdit pour MonChampObligatoire.
    Je voudrais empêcher la sortie du form, et la création d'un nouvel enregistrement, et la navigation entre enregistrements du form, sans que MonChampObligatoire (dans le sous-form) ne soit renseigné.
    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If isnull(Form![MonForm].[MonSousForm].Form.MonChampObligatoire) then
    msgbox "stop"
    exit sub
    sans résultat fiable car je ne parviens pas à trouver le bon évènement pour le placer.
    Merci beaucoup pour vos conseils.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 131
    Par défaut
    Bonjour,

    Sur activation

    se produit à chaque consultation du recordset ouverture et déplacements.


    Avant insertion

    se produit avant l'insertion d'un enregistrement.


    Pour en savoir plus sur les événements et leur enchainement tu peux récupérer l'outil Chasseur d'événement sur ma page. Code ouvert.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 16
    Par défaut
    Merci pour ton conseil loufab. J'ai regardé le chasseur d'évènements: c'est vachement astucieux!
    Evidemment maintenant ça fonctionne (le message "stop" au bon moment), à ceci près que "exit sub" n'empêche pas la circulation entre enregistrements: pourquoi?
    Certes ce n'est pas tout à fait la question de départ, mais c'est quand même intimement lié.
    Ton avis?

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 131
    Par défaut
    Oui cet événement (sur activation) est déclenché après le changement d'enregistrement.

    Il existe d'autre événement comme Sur Erreur, Avant Ajout...

    à tester.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Par défaut
    Bonjour
    On peut y arriver en conservant le numéro de l'enregistrement courant (Me.CurrentRecord) et en cas d'erreur on passe par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.GoToRecord , , acGoTo, NumEnrSauve

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 16
    Par défaut
    Merci Frédéric pour ta réponse.
    Je ne suis pas professionnel en informatique, mon expérience du VBA vient d'excel, et je ne suis sur Acces que depuis 8 jours. L'idée de revenir vers le formulaire current m'avait traversé l'esprit mais je ne sais pas l'écrire: échec de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dim actif
    actif=Me.Num_Principal.value
    DoCmd.GoToRecord , , acGoTo, actif 'tente de rester sur le formulaire actif repéré par le Num_Principal
    Si je place le code suivant dans l'évènement "sur activation"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If isnull(Form![MonForm].[MonSousForm].Form.MonChampObligatoire) then
    msgbox "stop"
    exit sub
    quelle sera la suite?
    Merci par avance pour tes précisions.

  7. #7
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Par défaut
    Re
    Si je reprends une partie de ton code cela donnerait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim Actif
    Private Sub Form_Current()
       If isnull(Form![MonForm].[MonSousForm].Form.MonChampObligatoire) then
       msgbox "stop"
       if not isnull(actif) then
          DoCmd.GoToRecord , , acGoTo, actif
       end if
    end if
     
       actif=me.currentrecord
    end Sub
    J'espère que c'est bon, car j'ai fait ça à 'l'arrache'

Discussions similaires

  1. Autoriser la saisie de chiffres uniquement dans un champ texte
    Par winzy77 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 29/08/2018, 00h50
  2. mettre en minuscule la saisie de l'internaute dans un champ de formulaire
    Par toy2000gt dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 05/12/2008, 12h40
  3. saisie d'un text dans un champ
    Par minooo dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 20/09/2008, 22h24
  4. Réponses: 4
    Dernier message: 18/06/2007, 17h48
  5. Réponses: 9
    Dernier message: 05/02/2007, 12h27

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