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 :

3 chargements pour 1 formulaire 'chargé'


Sujet :

IHM

  1. #1
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut 3 chargements pour 1 formulaire 'chargé'
    Bonjour,

    Dès que j'ai un peu de traitement, genre champs calculé en VB ou que c'est un peu lourd, Access charge 3 fois mes formulaires, ce qui me triple le temps.

    Il commence à charger une permiere fois, information, par information, puis une seconde, et remonte le formulaire d'1cm et me charge une dernière fois.

    Je pense que le problème est courant, mais je n'ai pas trouvé de solution.

    En fait, je souhaiterai lui dire qu'une fois qu'il a attrapé ces valeurs, il les affichent point, barre.

    Merci pour vos judicieux conseils.

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Bonjour,

    Pourrais-tu être plus clair, c'est une chose que je n'ai pas.

    Comment arrives-tu à charger plusieurs fois le même formulaire ?

  3. #3
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    non, je ne le charge pas plusieurs fois.

    J'ouvre un formulaire qui a un sous-formulaire avec des champs calculés par VBA, donc assez lourd, puisqu'il refait une requete pour chaque ligne.

    quand je l'ouvre, il commence à m'afficher ligne par ligne, au fur et à mesure qu'il calcule.

    Arrivé à mis chemin ou un peu plus loin, il rafraichi l'ensemble, et repars du départ.

    Idem, il va le faire une troisième fois jusqu'à finir, en "remontant" un peu l'ensemble du formulaire.

    et si je fais quelques chose, il risque de me refaire le chargmenent.

    c'est plus clair?

    tx

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Pourrais-tu nous mettre le code que tu utilises en VBA pour faire tes calculs.

  5. #5
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    Voici un exemple tout bête.

    Pour cet exemple, je pourrais bien sur faire une jointure sur la table, mais c'est juste pour montrer un exemple, qui pose le pb.

    J'ai une table "CRITERE" toute simple, qui comprends a entre autres, le champs idBase, identifiant d'une autre table qui décrit le libelllé de cet identifiant.

    Si je met la table dans un sousformulaire, avec un champs appelant cette fonction, je vais avoir 3 chargement des lignes visibles.

    C'est assez rapide sur cet exemple, d'autant plus si la table de donnée est sur le PC local.
    Mais on voit bien qu'il recharge 3 fois les données du sous-formulaire qui est en mode 'feuille de données' et le formulaire qui est tout simple, non lié à une table.

    Et si je prends une fonction plus complexe, le rechargement est bien plus long.


    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
    'Retourne le libellé d'un objet de la base
    Public Function getLib(idBase) As String
     
        Dim Db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
        Dim sSQL As String
     
        ' Ouverture de la base de données
        Set Db = CurrentDb
     
        'requete
        sSQL = "SELECT base.libelleBase FROM base " & _
                "WHERE (((base.idBase)=" & idBase & "));"
     
     
        'Debug.Print "Requete = " & sSQL
     
        ' Ouverture du recordset
        Set rst = Db.OpenRecordset(sSQL, dbOpenDynaset)
     
        If rst.RecordCount > 0 Then
            getLib = rst![libelleBase]
        Else
            getLib = ""
        End If
     
       'Fermeture
        rst.Close
        Db.Close
        Set rst = Nothing
        Set Db = Nothing
     
    End Function

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Tu m'excuseras, mais je ne vois pas où tu charges ton formulaire dans ce code !

  7. #7
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    non, je ne le charge pas.

    J'ai un formulaire tout simple, vide.

    Dedans un souformulaire, alimenté par le requete (dans le champs source de données du SF), par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT getlibBase(idBase) FROM critere
    J'ai ma fonction ci dessus, pour retourner le libellé.

    J'ouvre mon formulaire en cliquant dessus.

    quand il s'ouvre, il me fait ces 3 "chargement de données".
    Le formulaire ne s'ouvre qu'une fois, mais Access, me fait 3 recalculs des lignes de mon sous formulaire.

    La j'ai vraiment simplifié au maximum, alors testé, en local, ca sera très rapide.

  8. #8
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Désolé, mais avec si peu d'information, je ne peux t'aider.

  9. #9
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    Je pense que vous compliquer la chose, c'est hyper simple.

    Voici la procédure pour arriver au même résultat.

    Une table "BASE" avec les champs idBase en NuméroAuto, et un champs libelle de type String.

    Une table "CRITERE" avec les champs idCritere en NuméroAuto, et un champs idEntite en Long qui représentera l'entité correspodante à laquelle on veux affecter un parametre de BASE.

    Ma Function qui permet de retourner le libellé d'un idBase.

    Je crée un formulaire tout simple, rattaché à aucune données, qui me servira à la mise en forme.
    A l'intérieur de ce formulaire, je crée un sous-formulaire, qui sera alimenté dans le champs access "source" par la requete:

    "SELECT getLib(idBase) as libelleRslt FROM critere"

    j'enregistre tout ca.

    Quand j'ouvre mon formulaire, peu importe la facon dont je l'ouvre, c'est sans importance, les données du sousformulaire qui est en mode "feuille de données" vont s'afficher ligne par ligne à 3 reprises.
    Dès qu'il arrive à la dernière ligne visible, il reprend du départ à 2 reprises.

    La c'est très rapide sur cet exemple tout simple, d'autant plus si il n'y a pas bcp de données, mais dès que la fonction VBA est un peu plus complexe, et que l'on est en réseau pour la partie donnée, le chargement peu devenir très long.

    En gos je voudrais dire à access de ne pas relier en "PSEUDO DDE" mes formulaires, à mes table, juste de lui dire de me remplir mon formulaire, et de ne plus faire de lien avec la BDD.

    Est que c'est un peu plus clair?

    tx

    je crois que je viens de trouver,

    c'est tout simplement quand la barre de gestion de la police, des couleurs et autres est disposé sur une "nouvelle ligne", en dessous des boutons standards type enregistrer, filtre et autres....

    Comme access, ne l'affiche que si on peux modifier certains champs, il charge une premiere fois, une fois chargé, il regarde si doit l'afficher, puis il recharge et une fois recharger il l'affiche, puis recharge encore pour l'afficher sur la nouvelle ligne ou pas....

    Merci pour votre temps.

    non, en fait, ca n'est pas ca le problème, puisqu'en masquant toutes mes barre d'outils, j'ai toujorus le pb...

Discussions similaires

  1. Barre de progression pour le chargement d'un formulaire
    Par Robjerey dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/01/2015, 14h43
  2. Quel langage utiliser pour des formulaires ?
    Par le_ben dans le forum Langages de programmation
    Réponses: 19
    Dernier message: 13/10/2005, 14h08
  3. Norme JavaScript pour les formulaire
    Par rdams dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/09/2005, 14h14
  4. Recherche de composant pour un formulaire
    Par AlexB59 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 29/06/2005, 13h20
  5. Méthode pour un formulaire de mise à jour
    Par deviltaz dans le forum IHM
    Réponses: 12
    Dernier message: 07/10/2004, 11h01

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