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 :

Total Lignes s/s Formulaire Affichage qui disparait [AC-2007]


Sujet :

IHM

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 117
    Points : 99
    Points
    99
    Par défaut Total Lignes s/s Formulaire Affichage qui disparait
    Bonjour à tous
    J'ai
    1) une Table Devis où je stocke le champHTDevis Réel Double
    2) une Table LignesDevis
    Un Formulaire: Devis et un s/s Formulaire Continu: LignesDevis
    la relation qui lie les 2 tables :K_N°Devis

    J'ai un champTotalLignes dans le pieds du s/s formulaire qui me donne le Total des Lignes du s/s formulaire
    Je récupère ce champTotalLignes pour le stocké dans la Table Devis
    champHTDevis=champTotalLignes
    Tout beigne nickel jusque là...
    Mes tests sont Tip Top

    Puis...pour voir
    Je fais un test sur 55 lignes avec la valeur 1
    Mon champTotalLignes affiche bien 55 dans le pied du s/s formulaire
    Mes 55 lignes sont bien présentes dans la Table des Lignes
    Mais j'ai plus rien dans ma table Devis: le champHTDevis est à 0
    Alors je fais une msgbox pour me renvoyer le champTotalLignes et bizarre j'ai rien dans la msgbox

    Quelqu'un a t-il déjà eu ce genre de truc ?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    hello
    c'est vraisemblablement un problème de timing: quand le champ champHTDevis est affiché, le champTotalLignes n'est pas encore calculé

    ensuite ta formule ne stocke pas le total dans la table des entêtes mais ne fais qu'afficher la case du pied de sousformulaire

    pour faire ta récupération, je te conseille:
    - dans l'entête, utiliser champHTDevis comme source
    - sur un évènement (bouton j'ai fini ou champTotalLignes_sortie) ta petite formule en VB champHTDevis=champTotalLignes
    qui à ce moment là, est une affectation

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 117
    Points : 99
    Points
    99
    Par défaut Problème de Timing ?
    Merci Simplifi
    mais je ne crois pas à un pb de Timing car mon champ calculé champTotalHT
    m'affiche bien 55 dans le pied du s/s formulaire
    Donc la calcul se fait bien

    Mais quand je veux afficher ce calcul dans une msgbox piège (qui me renvoie bien d'habitude le calcul champTotalHT) j'ai rien,nada
    Conclusion :
    j'ai 55 lignes avec pour valeur 1 à chaque ligne
    un champ calculé qui m'affiche bien la somme :55
    Une msgbox qui me est supposée me renvoyer ce champTotlHT :55
    et qui me renvoie rien
    (pourtant, ça marche avec des valeur bien supérieures)
    Je suis à cours d'idées

  4. #4
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    Hello
    as tu essayé avec Me.LignesDevis.champTotalLignes ?

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 117
    Points : 99
    Points
    99
    Par défaut Impossible d'afficher le Total pied de sous formulaire dans une msgbox
    Merci SimplifI
    Je rame depuis ce matin
    Je veux afficher dans une Msgbox un Total (champ calculé dans le pied d'un sous-formulaire)
    Je précise que ce Total est bien visible dans le pied de sous-formulaire
    Si il y a 6 enregistrements dans le sous-formulaire la Msgbox m'affiche bien le Total avec 13 chiffres après la virgule
    Si il y a 7 enregistrements la MsgBox n'affiche plus rien

  6. #6
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    hello
    vu comme ça, à distance je ne sais pas t'en dire plus. essaye de poster un extrait de ta base (en zip)

  7. #7
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 117
    Points : 99
    Points
    99
    Par défaut finalement peut être un pb de Timing
    Bonjour Simplifi et à la communauté
    Bon j'ai créer une base toute simple pour reproduire la mécanique de mon PB:

    T_Devis
    K_NumDevis(compteur)
    Nom
    DateDevis
    HTDevis (réel double)

    T_DevisLignes
    K_DevisLignes(Compteur)
    K_NumDevis(EntierLong)Liaison
    Description
    Qté (réel double)
    Pu (réel double)

    R_Devis (Requête sur T_Devis)
    R_DevisLignes (Requête sur R_Devis & T_DevisLignes)

    F_Devis Alimenté par R_Devis

    F_sousFormulaire
    Alimenté par R_DevisLignes
    qui me fait le calcul sousTotalLigne:[Qté]*[Pu]
    et un dans le pied TotalLignes =Somme(sousTotalLigne)


    J'incruste le sous formulaire dans le Formulaire
    Champs père&Fils K_NumDevis

    Dans le pied du Formulaire je pose :
    1) champ zdtTotalLignes =[F_sousFormulaire].[Formulaire]![TotalLignes]
    (j'écris bien la propriété .[Formulaire] comme ceci.Form mais Access la corrige sans me demander mon avis )
    2) le champ HTDevis
    3) un bouton d'assignation
    HTDevis=zdtTotalLignes

  8. #8
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 117
    Points : 99
    Points
    99
    Par défaut suite
    Bonjour Simplifi et à la communauté
    Bon j'ai créer une base toute simple pour reproduire la mécanique de mon PB:

    T_Devis
    K_NumDevis(compteur)
    Nom
    DateDevis
    HTDevis (réel double)

    T_DevisLignes
    K_DevisLignes(Compteur)
    K_NumDevis(EntierLong)Liaison
    Description
    Qté (réel double)
    Pu (réel double)

    R_Devis (Requête sur T_Devis)
    R_DevisLignes (Requête sur R_Devis & T_DevisLignes)

    F_Devis Alimenté par R_Devis

    F_sousFormulaire

    Alimenté par R_DevisLignes
    qui me fait le calcul sousTotalLigne:[Qté]*[Pu]
    et un dans le pied TotalLignes =Somme(sousTotalLigne)


    J'incruste le sous formulaire dans le Formulaire
    Champs père&Fils K_NumDevis

    Dans le pied du Formulaire je pose :
    1) champ zdtTotalLignes =[F_sousFormulaire].[Formulaire]![TotalLignes]
    (j'écris bien la propriété .[Formulaire] comme ceci.Form mais Access la corrige sans me demander mon avis )
    2) le champ HTDevis
    3) un bouton d'assignation
    Me.Recalc
    Me.HTDevis=Me.zdtTotalLignes


    Si j'ai quelques Enregistrements ça marche bien
    Si j'en ai disons une douzaine c'est un 0 qui est envoyer à HTDevis et seulement aprés le calcul s'affiche bien dans zdtTotalLignes
    Conclusion: c'est bien un Pb de Timing
    mais comment le résoudre ???????
    Eh oui Simplifi tu avais vu juste dés le début !

  9. #9
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    Hello
    je fais la même chose que toi en bas de mes devis, commande BL, Factures avec un bouton qui s'appelle j'ai fini (je veux faire la somme dont voici le VB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    DoCmd.GoToRecord , , acNewRec
    If Forms!Factures!Montant_HT > 0 Then
        'on ne fait rien, il y a déja quelquechose dans la case
    Else
        Forms!Factures!Montant_HT = DSum("prix_ligne_ht", "Détail_facture", "N°Fact=forms!factures!N°facture")
        Forms!Factures!Montant_TVA = DSum("Val_TVA", "Détail_facture", "N°Fact=forms!factures!N°facture")
        Forms!Factures!Montant_TTC = DSum("prix_ligne_TTC ", "Détail_facture", "N°Fact=forms!factures!N°facture")
        taux_premier = DFirst("Tx_TVA", "Détail_facture", "N°Fact=forms!factures!N°facture")
        taux_moyen = DAvg("Tx_TVA", "Détail_facture", "N°Fact=forms!factures!N°facture")
        If Abs(taux_premier - taux_moyen) < 0.000001 Then
            Forms!Factures!Taux_TVA = taux_moyen
            Forms!Factures!TVA_biz = ""
        Else
            Forms!Factures!Taux_TVA = ""
        End If
    End If
    Forms!Factures!Montant_HT.SetFocus
    End Sub
    la base complète est librement accessible sur http://dl.free.fr/bD0fJMf7f

  10. #10
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 117
    Points : 99
    Points
    99
    Par défaut Ma solution
    Merci Simplifi pour ton ton code !
    Entre temps voici ce que j'ai trouvé
    J'avais bien dés le début appliqué un Recalc surChangement pour les champs Qté et Pu mais mon curseur était renvoyé à chaque fois en haut de mon sousFormulaire (ce qui n'est pas normal car Recalc ne doit pas faire ça)
    et puis pas du tout convivial d'avoir à se replacer à chaque changement !

    En fait c'est parce-que je j'ouvrais mon FormulairePrincipal à partir d'une liste de Devis avec un Bouton doter d'un linkcriteria (clause where).

    J'ai donc supprimer la clause where et utiliser un OpenArgs pour l'ouverture de mon FormulairePrincipal (j'ai transformer la requête qui alimente mon Devis en Requête Param,-en critères sur K_NumDevis j'ai placer le code :[Forms]![FormulairePrincipal].[OpenArgs])

    Et voilà mon curseur ne saute plus
    L'assignation sur Unload du FormulairePrincipal: HTDevis=TotalHT des Lignes du devis se fait TipTop

    L'opérateur peut même fermer le Formulaire sans avoir valider le petit crayon
    de la Ligne Devis le changement est quand même pris en compte

    Ouf!

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/02/2014, 11h51
  2. JList - Affichage qui disparait
    Par Carvallegro dans le forum Composants
    Réponses: 3
    Dernier message: 31/05/2012, 14h40
  3. Réponses: 4
    Dernier message: 11/06/2010, 20h26
  4. Affichage javascript total ligne tableau dynamique
    Par falz222 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/08/2006, 19h17
  5. Réponses: 2
    Dernier message: 20/07/2006, 19h40

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