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 :

Passage dans Before update non attendu [AC-365]


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 Passage dans Before update non attendu
    Bonjour à tous les contributeurs

    Ci joint ma bases de test.
    Si je fais la procédure suivante :
    -ouvrir le formulaire F_Commandes_Details

    - cliquer sur le bouton Ajouter un nouvel enregistrement
    - saisir un numéro de commande ex: 123456
    - saisir une date
    - saisir un montant
    -Cliquer sur Nom : save.PNG
Affichages : 69
Taille : 809 octets
    pour sauver le record.

    Dans le after update du formulaire je recopie le montant dans la ligne de commandeet le mets le numero de ligne à 1(aide à la saisie)

    Je vois donc bien que sur la première ligne du sous form, j'ai le crayon qui m'indique que c'est en cours de modif .
    Nom : crayon.PNG
Affichages : 62
Taille : 275 octets


    Mon problème est que dès que l'utilisateur clique sur la première ligne du SF pour la compléter ( et y indiquer l'activité par exemple) ou la modifier, on passe dans le before update du SF et donc l' utilisateur se prend le message que l'activité est obligatoire, mais c'est justement ce qu'il est en train d'aller saisir , donc c'est pas logique.

    Je ne pige pas pourquoi !
    Ce que j'ai compris des formulaires:
    C'est que quand on est en train de modifier un record, on a le crayon et pour sauver , on clique sur un autre record, mais si on se ballade dans un record en cours de modif Access ne déclenche pas la sauvegarde du record.
    Mais la vu que je sui dan un sous form, il doit y avoir une subtilité qui m'échappe

    Je dois faire fausse route mais je ne vois pas où


    Une explication ou une idée pour contourner ce truc ?

    Merci +++
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 801
    Points : 14 869
    Points
    14 869
    Par défaut
    bonsoir,
    l'évènement Before update du sous-formulaire se déclenche car la saisie de l'enregistrement s'effectue depuis le formulaire principal qui ensuite lui donne le focus: fatalement (oui plutôt logiquement) l'évènement se déclenche ...
    ne t'embêtes avec ce problème tu ne t'en sortiras pas, inverse l'ordre de saisie de l'activité et du montant car l'activité est en relation directe avec une autre table alors que le montant ne l'est pas (sauf contrôle de cohérence) et met l'ajout de l'enregistrement à la réception focus du sous-formulaire

    le code que j'ai mis pour que cela fonctionne:
    dans le formulaire principal:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_AfterUpdate()
    DoCmd.GoToControl ("SF_Lignes_Commande")
    End Sub
    dans le sous-formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Num_ligne_GotFocus()
    If Me.CurrentRecord = 1 Then
        Me.Num_ligne = 1
        Me.Montant = Me.Parent.Montant_Commande
        Me.fk_activite.SetFocus
    End If
    End Sub
    ce serait mieux de ne pas utiliser Macros Access et VBA dans un même formulaire

  3. #3
    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
    Slaut,
    C'est génial,
    Bon je ne comprend toujours pas la logique de l'appel au before update mais bon ... je lâche l'affaire.

    Juste un truc pour que ce soit parfait
    Si je mets ton code ci dessous dans le GOT_focus du SF au lieu du GOT_focus de num_ligne pour que le remplissage se fasse automatiquement sans avoir à cliquer sur le num_ligne, cela ne fonctionne pas , alors que ds le after update du père on amet bien le focus sur le FILS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Me.CurrentRecord = 1 Then
        Me.Num_ligne = 1
        Me.Montant = Me.Parent.Montant_Commande
        Me.fk_activite.SetFocus
    End If
    ???
    Une idée, car je voudrai que le SF se préremplisse dès qu'on sauve le père.
    Et question subsdidiaire, pk, mettre des macros et du VBA n'est pas terrible ?
    SI je veux mettre du vba pour sauver, quel est le code ?

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 801
    Points : 14 869
    Points
    14 869
    Par défaut
    bonsoir,
    tout ça pour éviter à l'utilisateur de saisir une ligne ... combien de temps vas-tu passer à résoudre ce souci ?

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 801
    Points : 14 869
    Points
    14 869
    Par défaut
    en cherchant un peu, j'ai trouvé la cause du problème: il ne faut pas sauvegarder l'enregistrement avec le bouton coche verte (tiens, avec une macro ...)
    du coup, ton code d'origine fonctionne mieux.
    j'ai remplacé les macros par du VBA, comme ça tout le code est accessible au même endroit (pas comme les macros ...)

    debug_init_ligne.zip

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

Discussions similaires

  1. [Toutes versions] Deuxième argument non accepté dans ma sub "Erreur Attendu :="
    Par Gorzyne dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/01/2019, 17h51
  2. résultat d'un update non attendu
    Par the_frogkiller dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/07/2009, 10h43
  3. Agregat non autorisé dans requête update
    Par jclemounier dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/12/2006, 16h20
  4. GROUP BY et HAVING dans un UPDATE
    Par MashiMaro dans le forum Langage SQL
    Réponses: 3
    Dernier message: 26/08/2003, 08h03
  5. Réponses: 6
    Dernier message: 21/06/2002, 14h48

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