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

Access Discussion :

Programme ne répond plus ?


Sujet :

Access

  1. #21
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 130
    Points : 55
    Points
    55
    Par défaut
    Merci ! Je vois effectivement le temps affiché, une fois la procédure terminée!
    Mais le temps de traitement prévisionnel ou la progression?
    Surtout pour des traitements de plus de 24 heures...

    Merci 1000 fois de toutes vos indications

  2. #22
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 130
    Points : 55
    Points
    55
    Par défaut
    Bonsoir Kikof !

    Désolé encore moi, DBA dans une grande boite.
    Vous pensez que la réponse à mon problème est possible ?
    Timer prévisionnel du temps de traitement ou bien progression de l'execution du traitement ?
    Sachant que mes temps de traitements previsionnels se situent entre 24 et 72 heures ?
    Meric de votre diligence !

  3. #23
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Citation Envoyé par ALEXM
    Bonsoir Kikof !

    Désolé encore moi, DBA dans une grande boite.
    Vous pensez que la réponse à mon problème est possible ?
    Timer prévisionnel du temps de traitement ou bien progression de l'execution du traitement ?
    Sachant que mes temps de traitements previsionnels se situent entre 24 et 72 heures ?
    Meric de votre diligence !
    Tutoie, tutoie... je te tutoie depuis le début
    Doit y avoir une solution.
    Il faut creuser. J'ai fait un bout d'essai hier.
    J'ai essayé en plaçant les marqueurs dans le for.
    J'ai testé le code suivant :
    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
    Sub test()
     
    Dim cAnalyse As New clsMarqueurs
    Dim X As Long
    Dim TempsRestant As Double
    Dim TempsEcoule As Double
     
        For X = 1 To 10000
            cAnalyse.ajouterMarqueur "*** test ***"
            cAnalyse.terminerMarqueur "*** test ***"
            TempsEcoule = TempsEcoule + cAnalyse.dureeMarqueur("*** test ***")
            TempsRestant = ((TempsEcoule / X) * 10000) - TempsEcoule
            Debug.Print "Temps écoulé  : " & TempsEcoule & " ms"
            Debug.Print "Temps restant : " & TempsRestant & " ms"
        Next X
     
    End Sub
    Ca a l'air de fonctionner.

    Par contre, j'ai un bug avec la classe clsMarqueurs
    Le marqueur existe déjà et donc il refuse de le recréer. si je mets la ligne en commentaire ça marche. Mais il faut qu'il passe au moins une fois dedans.

  4. #24
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 130
    Points : 55
    Points
    55
    Par défaut
    Merci je vais essayer de creuser un peu par contre j'ai un message d'erreur sur la ligne
    TempsEcoule = TempsEcoule + cAnalyse.dureeMarqueur("*** test ***")
    'Erreur d'execution 438." Propriété ou Méthode non gérée par cet objet.

    Merci dans tous les cas. Si tu as une idée pour le Marqueur dans une boucle, je vais essayer de creuser également.
    LeTimer est vraiment intéressant dans une procédure en boucle.

    Merci 1000 fois pour tout cela

  5. #25
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    C'est exactement le problème que j'ai... et ce que je ne comprends pas : ça a fonctionné au moins 1 fois

    Ca intervient sur cette ligne dans le module de classe clsMarqueurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Sub ajouterMarqueur(ByVal pNomMarqueur As String)
        Marqueurs.Add New clsMarqueur, pNomMarqueur ' erreur
        Marqueurs(pNomMarqueur).lNom (pNomMarqueur)
    End Sub
    A priori, le marqueur n'est pas détruit et comme il existe toujours : il ne peux pas le recréer.
    Quand les lignes d'ajout et de fin de marqueurs sont extérieurs à la boucle : il n'y a pas de soucis. Le code fonctionne bien. Mais si ces lignes sont dans le for : ça plante.

    J'ai créé un marqueur à chaque tour de boucle. Plus de plantage.
    Mais je n'arrive pas à un résultat satisfaisant en terme de concordance de temps écoulé sur l'ensemble de la procédure et pour chaque tour de boucle.

    Je te donne la procédure :

    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
    Sub test()
     
    Dim cAnalyse As New clsMarqueurs
    Dim X As Long
    Dim TempsRestant As Double
    Dim TempsEcoule As Double
     
    cAnalyse.ajouterMarqueur "*** test ***"
        For X = 1 To 10000
            cAnalyse.ajouterMarqueur "*** test " & X & " ***"
            cAnalyse.terminerMarqueur "*** test " & X & " ***"
            TempsEcoule = TempsEcoule + cAnalyse.dureeMarqueur("*** test " & X & " ***")
            TempsRestant = ((TempsEcoule / X) * 10000) - TempsEcoule
            Debug.Print "Temps écoulé  : " & TempsEcoule & " ms"
            Debug.Print "Temps restant : " & TempsRestant & " ms"
        Next X
    cAnalyse.terminerMarqueur "*** test ***"
    cAnalyse.rapportDebug
    End Sub

  6. #26
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    J'ai fait encore des tests. j'ai supprimé tout ce qui est inutile dans la procédure :
    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
    Sub testbis()
     
    Dim cAnalyse As New clsMarqueurs
    Dim X As Long
    Dim TempsRestant As Double
    Dim TempsEcoule As Double
     
    cAnalyse.ajouterMarqueur "*** test ***"
        For X = 1 To 10000
            cAnalyse.ajouterMarqueur "*** test " & X & " ***"
            cAnalyse.terminerMarqueur "*** test " & X & " ***"
            TempsEcoule = TempsEcoule + cAnalyse.dureeMarqueur("*** test " & X & " ***")
            TempsRestant = ((TempsEcoule / X) * 10000) - TempsEcoule
        Next X
    cAnalyse.terminerMarqueur "*** test ***"
    Debug.Print "Temps écoulé  : " & TempsEcoule & " ms"
    cAnalyse.rapportDebug
     
    End Sub
    Voici ce que j'obtiens comme temps (évidemment cela dépend de l'occupation du CPU) :
    Temps écoulé : 328 ms
    *** test *** : 532ms
    Temps écoulé : 330 ms
    *** test *** : 516ms
    Temps écoulé : 281 ms
    *** test *** : 500ms
    Temps écoulé : 357 ms
    *** test *** : 500ms
    Temps écoulé : 358 ms
    *** test *** : 516ms

  7. #27
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 130
    Points : 55
    Points
    55
    Par défaut
    Merci ! Mais j'ai toujours la même erreur dans TestBis
    'Erreur d'execution 438." Propriété ou Méthode non gérée par cet objet.
    sur la ligne :
    TempsEcoule = TempsEcoule + cAnalyse.dureeMarqueur("*** test " & X & " ***")
    En désactivant cette ligne le programme tourne dans la boucle mais je n'ai que :

    *** test 9814 *** : 0ms
    *** test 9815 *** : 0ms


    Merci beaucoup

  8. #28
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Va dans le module clMarqueurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function dureeMarqueur(ByVal pNomMarqueur As String) As String
        dureeMarqueur = Marqueurs.Item(pNomMarqueur).sDuree
    End Function
    il y a une erreur : ce n'est pas sDuree mais Duree

  9. #29
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 130
    Points : 55
    Points
    55
    Par défaut
    Bonsoir Kikof !

    Je te remerie ca marche pas mal du tout. J'ai fait un peu évoluer la chose :
    J'ai désactivé dans Cls marqueur : 'Public Sub rapportDebug()
    Et dans le code principal j'ai juste gardé le TempsRestant après l'avoir mis à un format d'affichage classique :
    TempsRestant = Round((TempsEcoule / X) * (Nb_Enr - 1) - TempsEcoule, 2)
    Puis dans la procédure principale :

    'Debug.Print "Temps écoulé : " & TempsEcoule & " s"
    Debug.Print "TempsRestant : " & TempsRestant & "s"
    'cAnalyse.rapportDebug


    Le résultat est bien sympathique et il est interessant de le garder pour tous les utilisteurs access :

    TempsRestant : 2,87s
    TempsRestant : 2,82s
    TempsRestant : 2,78s
    TempsRestant : 2,73s
    TempsRestant : 2,69s
    TempsRestant : 2,64s

    Voilà j'ain un tout petit peu contribué à faire avancer le Schmilblik.

    Ad augusta per angusta !

  10. #30
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Citation Envoyé par ALEXM
    Bonsoir Kikof !

    Je te remerie ca marche pas mal du tout. J'ai fait un peu évoluer la chose :
    J'ai désactivé dans Cls marqueur : 'Public Sub rapportDebug()
    Et dans le code principal j'ai juste gardé le TempsRestant après l'avoir mis à un format d'affichage classique :
    TempsRestant = Round((TempsEcoule / X) * (Nb_Enr - 1) - TempsEcoule, 2)
    Puis dans la procédure principale :

    'Debug.Print "Temps écoulé : " & TempsEcoule & " s"
    Debug.Print "TempsRestant : " & TempsRestant & "s"
    'cAnalyse.rapportDebug


    Le résultat est bien sympathique et il est interessant de le garder pour tous les utilisteurs access :

    TempsRestant : 2,87s
    TempsRestant : 2,82s
    TempsRestant : 2,78s
    TempsRestant : 2,73s
    TempsRestant : 2,69s
    TempsRestant : 2,64s

    Voilà j'ain un tout petit peu contribué à faire avancer le Schmilblik.

    Ad augusta per angusta !
    A tes souhaits

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. mysql_real_connect()_ le programme ne répond plus
    Par wilfryjules dans le forum C++
    Réponses: 2
    Dernier message: 25/01/2014, 21h48
  2. Programme ne répond plus.
    Par twizell dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 14/11/2005, 19h46
  3. Le dataset.bof ne répond plus.
    Par fplanglois dans le forum Bases de données
    Réponses: 6
    Dernier message: 23/03/2004, 09h45

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