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 :

Amélioration d'un formulaire [AC-365]


Sujet :

IHM

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 584
    Par défaut Amélioration d'un formulaire
    Bonjour à tous,

    Ci-joint une BDD pour expliquer mon besoin.
    Dans le formulaire T_Commandes, je voudrais faire en sorte que l'on ne puisse pas saisir un montant de ligne tel que le total des lignes soit supérieur au montant de la commande.
    J'ai essayé de mettre une vérif dans le Before Update du SF_Lignes, en utilisant mon champ écart pour tester s'il est égal à 0 , mais celui si est recalculé après la sauvegarde du record donc ca ne marche pas

    use case 1 :
    commande de 150 €
    1er ligne de 50
    si on saisit en ligne 2 de 101€=> je voudrais interdire un valeur > 100 €

    use case 2 :
    commande de 150 ~€
    1 er ligne de 50
    2 eme ligne de 10 € => l'eacart des bien de 0 mais on doit pouvoir modifier et mettre par exemple 99 en L2 sans qu'il croie que l'on rajoute 99 u total déjà existant!


    Merci pour vos idées et conseils.

    Bon week end,
    Fichiers attachés Fichiers attachés

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

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 951
    Par défaut
    bonjour,
    - dans le cas d'une nouvelle ligne, tu ne peux pas additionner le montant dans le contrôle somme car la ligne n'est pas encore réellement créée, il faut donc additionner ce montant avant la mise à jour du champ
    - dans le cas d'une ligne existante et aussi pour une nouvelle ligne, tu dois soustraire l'ancien montant de cette même ligne (Control.OldValue, avec Nz() en prime si nouvelle ligne):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub montant_BeforeUpdate(Cancel As Integer)
     
    If Me.somme + (Me.montant - Nz(Me.montant.OldValue, 0)) > Me.Parent.montant Then
        MsgBox " la somme des montants saisis dépasse le montant de la commande!"
            Cancel = True
            Me.montant.Undo
        End If
     
    End Sub
    pense à mettre les contrôles pour les montants à 0, null ou négatif (si ce n'est pas autorisé)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 584
    Par défaut
    Hi,
    Merci pour le tuyau pour le use case 2, mais pour le use case 1

    Tu dis
    dans le cas d'une nouvelle ligne, tu ne peux pas additionner le montant dans le contrôle somme car la ligne n'est pas encore réellement créée, il faut donc additionner ce montant avant la mise à jour du champ
    =>Je ne vois pas comment faire ça , comment on sait qu'on est sur une nouvelle ligne ?
    Le code que tu m'as donné, ouvre les 2 use case ?
    Je pige pas bien.
    Désolé

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

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 951
    Par défaut
    =>Je ne vois pas comment faire ça , comment on sait qu'on est sur une nouvelle ligne ?
    peut importe, si c'est une nouvelle ligne le code est le même, c'est ce que je dis ici:
    - dans le cas d'une ligne existante et aussi pour une nouvelle ligne, tu dois soustraire l'ancien montant de cette même ligne (Control.OldValue, avec Nz() en prime si nouvelle ligne):
    et c'est ce que fait le code ...

    Le code que tu m'as donné, ouvre les 2 use case ?
    à priori oui, d'où l'utilisation de OldValue pour traiter ce cas, n'as-tu pas testé ?

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 584
    Par défaut
    J'ai mis le code, mais il ne passe pas dedans !
    cf mon zip, j’ai beau mettre un point d’arrêt, il ne passe pas dedans

    J'ai pourtant activé les macros
    Nom : macros.png
Affichages : 61
Taille : 18,7 Ko


    Mais j'ai toujours cette bannière qui doit êetre la cause de mon pb ! grrrr
    Nom : Capture d’écran 2024-10-11 160705.png
Affichages : 60
Taille : 3,9 Ko
    Fichiers attachés Fichiers attachés

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

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 951
    Par défaut
    je n'ai pas ce problème :
    Nom : _0.JPG
Affichages : 62
Taille : 94,1 Ko

    as-tu pensé à activer les macros ou mettre la base sur un emplacement approuvé ?

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 584
    Par défaut
    J"i fait un clic droit sur mon fichier et dans propriétés, j'ai coché débloquer et c'est bon maintenant.

    AMEN

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

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 951
    Par défaut
    j'ai coché débloquer
    je ne connaissais pas cette option, à quel niveau se trouve t-elle ?

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

Discussions similaires

  1. Création d'un formulaire sous flash?
    Par ultrakas dans le forum Flash
    Réponses: 5
    Dernier message: 11/01/2005, 18h33
  2. [CR][Access] intégrer un viewer dans un formulaire access
    Par nicolak dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 13/01/2003, 15h52
  3. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59
  4. [VB6][Formulaire]Appliquer un Scrollbar a une Form
    Par Boil dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/11/2002, 03h51
  5. [CR] Tranfert de formulaire a travers une page HTMl
    Par LIEU dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 12/09/2002, 08h37

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