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 :

État - Calcul avec décimales et problème affichage dans l'état [AC-2016]


Sujet :

IHM

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut État - Calcul avec décimales et problème affichage dans l'état
    Bonjour ou bonsoir,

    J'ai un champ dans la BD qui se nomme Duree_Totale. Ce champ contient la somme de durée des étapes lors d'un projet de numérisation (saisie de données, préparation, numérisation, contrôle qualité et remise en forme). Chaque étape a son champ dans la table Boite qui contient le temps en heure (ex : 5,80).

    Le code qui insère les temps en heures (exemple 6,89) pour chaque étape fonctionne correctement. Le calcul se fait correctement et cela donne le bon nombre pour la somme du temps total (champ Duree_Totale) pour chaque boite.

    Le HIC c'est lorsque je sors l'état (mode preview ou en mode enregistré en PDF) la durée dans le champ Duree_Total ne s'affiche pas correctement.

    Si le total a des décimales il affiche correctement le total (ex : 6,78).

    Si le total n'a pas de décimal c'est un nombre entier alors le total s'affiche, mais avec des "-" avant avec des espaces.... je vous montre ce que je veux dire.

    Nom : Capture.PNG
Affichages : 195
Taille : 22,8 Ko

    Vous voyez les "-" qui sont avant le total sans décimal ?

    Maintenant je vous montre la configuration du champ Duree_Totale dans la table Boite. Je veux préciser que tous les champs qui sert à garder la durée totale de chaque étape sont configurées comme le champ Duree_Totale.

    Nom : Capture 1.PNG
Affichages : 196
Taille : 12,2 Ko

    Le code ci-dessous montre comment je calcule le temps en minute et ensuite je convertis en heure lorsque chaque étape est terminée. Le code sert aussi à insérer le no de l'employer ainsi que l'heure et la date de l'action (début et fin) de chaque étape.

    Le code ci-dessous est activé lorsque la personne indique qu'elle a terminée l'étape. L'étape calculée et le Duree_Totale que vous verrez ci-dessous c'est suite à la fin du contrôle qualité.

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
        Dim BD As DAO.Database
        Dim RS As DAO.Recordset
        Dim Req As String
        Dim No_Boite As String
        Dim V_Date As String
        Dim V_Heure As String
        Dim Rep
     
        Dim NbHeures_Prep As Double
        Dim NbHeures_Saisie As Double
        Dim NbHeures_Numerisation As Double
        Dim NbHeures_CQ As Double
        Dim total_heures As Double
     
        Dim H1 As Date
        Dim H2 As Date
        Dim D1 As Date
        Dim D2 As Date
     
        V_Date = Format(Date, "YYYY-MM-DD")
        V_Heure = Format(Time, "HH:MM:SS")
     
        If IsNull(Me.Txt_no_Boite_a_rechercher.Value) Or Me.Txt_no_Boite_a_rechercher.Value = "" Then
            MsgBox "Vous devez inscrire un numéro de boite avant toute chose !", vbCritical
            Exit Sub
        End If
     
        Rep = MsgBox("Êtes-vous sûr de cette action ?", vbYesNo, "Validation de l'action de l'employé") ' Question qui demande si l'utilisateur a bien terminé ici le contrôle qualité. 
     
        If Rep = vbYes Then
            If IsNull(Me.Cmb_Saisi_Données_1.Value) Or IsNull(Me.Cmb_Saisi_Données_2.Value) Or IsNull(Me.Cmb_Préparation_Matérielle_1.Value) Or IsNull(Me.Cmb_Préparation_Matérielle_2.Value) Or IsNull(Me.Cmb_Numérisation_1.Value) Or IsNull(Me.Cmb_Numérisation_2.Value) Or IsNull(Me.Cmb_Controle_Qualité_1.Value) Then ' valide si les contrôles précédents contiennent le nom d'un utilisateur. Si il y en a UN qui manque on arrête le tout avec message d'erreur. Si tous les contrôles contiennent un nom d'utilisateur alors ...
     
                MsgBox "Erreur! Une ou des étapes précédentes à la finalisation du contrôle qualité n'ont pas été finalisées!", vbCritical
                Acces_Liste_Deroulantes
                Exit Sub
     
            Else
                No_Boite = Me.Txt_no_Boite_a_rechercher.Value ' no de la boite que l'utilisateur travaille (saisie de données, préparation, numérisation, contrôle qualité et remise en forme)
     
                Req = "select * from Boites where ID_Boite = '" & No_Boite & "'"  ' trouve toutes les infos dans la table BOITES en lien avec le no de la boite.
     
                Set BD = CurrentDb
                Set RS = BD.OpenRecordset(Req, dbOpenDynaset)
     
                NbHeures_Prep = RS.Fields("Duree_Preparation").Value  ' met dans une variable le temps pris pour la préparation
                NbHeures_Saisie = RS.Fields("Duree_Saisie").Value  ' met dans une variable le temps pris pour la saisie de données
                NbHeures_Numerisation = RS.Fields("Duree_Numerisation").Value  ' met dans une variable le temps pris pour la numérisation
     
     
                RS.Edit ' mode édit... modification d'informations
     
                RS.Fields("Responsable_Controle_2").Value = ID_Utilisateur  ' no de l'employé
                RS.Fields("Date_Controle_2").Value = V_Date  ' Date de l'action
                RS.Fields("Heure_Controle_2").Value = V_Heure  ' Heure de l'action
     
     
                H1 = TimeValue(CDate(RS.Fields("Heure_Controle_1").Value))
                D1 = DateValue(CDate(RS.Fields("Date_Controle_1").Value))
     
                H2 = TimeValue(CDate(RS.Fields("Heure_Controle_2").Value))
                D2 = DateValue(CDate(RS.Fields("Date_Controle_2").Value))
     
                NbHeures_CQ = DateDiff("n", D1 & " " & H1, D2 & " " & H2) ' Le nbr de minutes qu'à pris l'action début et fin de contrôle qualité
     
                NbHeures_CQ = (Format(NbHeures_CQ / 60, "####.00"))  ' convertis les minutes en heures.
                RS.Fields("Duree_CQ").Value = NbHeures_CQ ' affecte dans l'enregistrement de la boite le temps total du contrôle qualité.
     
                RS.Fields("Duree_Totale").Value = (Format(NbHeures_Saisie + NbHeures_Prep + NbHeures_Numerisation + NbHeures_CQ, "####.00")) ' affecte le temps total pour toute les actions incluant le contrôle qualité.
                RS.Update
                RS.Close
                Set RS = Nothing
                BD.Close
                Set BD = Nothing
                Acces_Liste_Deroulantes
                Exit Sub
            End If
     
        Else
            Exit Sub
        End If
    Est-ce que vous comprenez la raison qui fait que dans l'état lorsque c'est une heure sans décimale cela affiche avec des "-" ?????

    Merci de votre aide
    Images attachées Images attachées  

  2. #2
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Ton champ affichant la durée totale n'aurait-il pas un format ?
    D'autre part, on ne stocke pas des valeurs cumulées quand on peut les obtenir par requête.
    Pourrais-tu mettre l’image des tables que tu utilises pour stocker des données. Ca nous permettra de mieux comprendre comment s'articule ton problème

  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 : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Bonjour
    Probablement que votre problème est lié à ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    V_Date = Format(Date, "YYYY-MM-DD")

  4. #4
    Membre habitué
    Homme Profil pro
    Technicien en numérisation
    Inscrit en
    Juillet 2002
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien en numérisation

    Informations forums :
    Inscription : Juillet 2002
    Messages : 338
    Points : 155
    Points
    155
    Par défaut
    Bonjour

    Merci de votre réponse !

    J'ai recommencé l'état et ça fonctionne. Je ne comprends pas le "bug", mais l'essentiel est que tout fonctionne.

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

Discussions similaires

  1. Problème affichage dans un TextView avec ViewPager
    Par Paul75 dans le forum Composants graphiques
    Réponses: 0
    Dernier message: 14/10/2017, 12h28
  2. problème avec un champ d'affichage dans crystal report
    Par djelloharmel dans le forum VB.NET
    Réponses: 0
    Dernier message: 28/12/2012, 11h19
  3. Réponses: 2
    Dernier message: 19/03/2008, 11h58
  4. XSL problème de calcul avec décimales
    Par jejelafrite dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 08/07/2007, 21h53
  5. problème affichage dans une page html
    Par ljoly dans le forum Flash
    Réponses: 6
    Dernier message: 22/09/2006, 16h57

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