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 :

Sous formulaire qui a un comportement étrange


Sujet :

IHM

  1. #1
    Membre actif Avatar de bartimeus35
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    526
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2009
    Messages : 526
    Points : 202
    Points
    202
    Par défaut Sous formulaire qui a un comportement étrange
    Hello,
    J'ai un formulaire Commandes et un SF ligne de commandes

    Voila le contexte :
    Voilà mon formulaire très basique et le SF est un formulaire continu.

    Nom : Capture d’écran 2023-06-19 101749.png
Affichages : 98
Taille : 14,1 Ko

    Dans la fonction AfterUpdate de commande ,
    Je renseigne des champs du SF avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Me.Form![SF_Lignes_Commande]![Num_ligne].Value = 1
    Me.Form![SF_Lignes_Commande]![Montant].Value = Me.Montant
    Je vois donc bien le crayon qui s'affiche ds le sélecteur du SF qui est un formulaire continu , tout va bien.

    Dans la fonction BeforeUpdate du SF, j'ai du code qui fait des vérifs sur les champs obligatoires ... et affiche un msg d'erreur le cas échéant .

    Problème :
    Dès que je clique sur la première et unique ligne du SF pour compléter les infos, il passe dans le BeforeUpdate , je ne pige pas pourquoi.
    Si je cliquais sur une autre ligne que celle en cours de modif, ou dans le Form Commande , ca serait logique , mais la c'est pas logique.
    La fonction BeforeUpdate est appelés quand on sort de la zone de modif, avant un update comme son nom l'indique
    or là le reste dans la même ligne du SF .

    J'espère que j'explique bien mon PB.
    Une idée/ des idées ?

    Merci

  2. #2
    Membre actif Avatar de bartimeus35
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    526
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2009
    Messages : 526
    Points : 202
    Points
    202
    Par défaut
    Hello les pros,
    Personne pour un coup de main ?
    Au cas où j'aurais un bout de code qui ficherai le bordel quelque part , je viens de recréer from scratch des formulaire père et fils (formulaire continu
    dans le AftersUpdade du père, je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.Form![SF_Fils]![Montant].Value = 1000
    Ce code rempli bien la première ligne du formulaire fils et je vois le crayon dans le selecteur de la ligne correspondante du fils
    Mais dès que clique sur un des champs du formulaire fils ( de la ligne DIRTY) pour compléter les infos, il passe aussitôt dans le BeforeSave du fils, ce n'est pas logique !
    Il ne devrait passer dans cette fonction que quand je sors de la ligne, pas quand j'y rentre , Non ?


    Note: si je :
    - ne mets pas le code dans le for Père pour remplir le montant du fils,
    - je clique dans le fils pour saisir des info, tout se passe bien: j'ai le crayon du sélecteur quand j'écris et on ne passe dan le Beforesave du fils que quand je sors du record, pas quand j'y rentre !!!!

    Que se passe t il ?
    Merci, je sèche vraiment

  3. #3
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    A se demander si vous tenez compte des réponses que l'on vous apporte !
    Forms!NomFormPrincipal.NomSousFormulaire.Form.NomduContrôle.Value.
    Forms("NomFormPrincipal").Controls("NomSousFormulaire").Form.Controls("NomduContrôle").Value.

    Et pour info ; dans la mesure où chaque ligne de votre subform tabulaire représente un enregistrement distinct et unique il est logique que l'event BeforeUpdate() s'exécute pour chacun d'eux.
    C'est n'est pas du AllInOne !
    Images attachées Images attachées  

  4. #4
    Membre actif Avatar de bartimeus35
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    526
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2009
    Messages : 526
    Points : 202
    Points
    202
    Par défaut
    Bonjour,
    Oui oui, je lis les réponse et j'en tiens compte mais là c'est un autre sujet et je sais que dans un formulaire continu chaque ligne est un enregistrement .
    Je ne comprend pas pourquoi tu me dis ça . mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Form![SF_Fils]![Montant].Value = 1000
    est bon.

    Je réexplique :

    cas 1 :
    • Je ne renseigne pas de valeur par défaut dans le SF ,
    • Au moment ou je clique dans la première ligne du SF pour écrire, j'ai le crayon ds le sélecteur (et je ne passe PAS dan le BeforeUpdate)
    • Quand je clique ailleurs que la première ligne, on passe dans le BeforeUpdate



    cas 2 :
    • Je renseigne une valeur par défaut dans le SF via la fonction After Update du père => j'ai le crayon ds le sélecteur du SF sur la ligne 1 et ma valeur est bien là !
    • Au moment ou je clique dans la première ligne du SF pour écrire on passe dans le BeforeUpdate du SF


    Et pour info ; dans la mesure où chaque ligne de votre subform tabulaire représente un enregistrement distinct et unique il est logique que l'event BeforeUpdate() s'exécute pour chacun d'eux.
    J’ai bien compris, mais le BeforeUpdate est exécuté normalement quand on clique hors du records en cours de modification, pas quand on clique dans le record qui est en cours de modification ..

    Le cas 1 et le cas 2 fonctionnent différemment, c'est ça que je ne m'explique pas .
    Merci,
    François

Discussions similaires

  1. [2007] Macro qui ne fonctionne pas comme je voudrais!
    Par jeanyvesVB dans le forum Microsoft Office
    Réponses: 3
    Dernier message: 31/10/2022, 13h05
  2. Réponses: 8
    Dernier message: 11/07/2007, 09h38
  3. [MySQL] Un formulaire qui ne fonctionne pas comme il faut (problèmes avec stripslashes & com)
    Par vincent.b dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/04/2007, 20h02
  4. requete qui ne fonctionne pas comme je shouterais
    Par domino_dj dans le forum Requêtes
    Réponses: 1
    Dernier message: 04/04/2007, 12h27
  5. un if qui ne fonctionne pas comme je veux
    Par Kelly182 dans le forum Access
    Réponses: 4
    Dernier message: 27/07/2006, 15h12

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