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 :

Accélérer l'ouverture d'une base access avec onglets


Sujet :

IHM

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 24
    Par défaut Accélérer l'ouverture d'une base access avec onglets
    Bonjour,

    Je cherche à optimiser mon appli Access qui est construite autour d'un menu à onglets très pratique.
    Le problème, est que ceci rend le démarrage très lent car Access semble charger tous les onglets au démarrage (contrôles, formulaires et tout le toutim...).

    J'ai lu un topic sur le sujet (que je n'arrive plus à retrouver mais ce n'est pas grave) qui conseillait de rendre les formulaires des onglets invisibles au démarrage sauf celui de l'onglet ouvert par défaut. Les autres formulaires n'étant rendus visibles que lors d'un clic sur l'onglet correspondant.

    J'ai donc testé ça en passant la propriété "visible" des formulaires en question à "No". Après enregistrement et réouverture de la base, ça n'arrange pas franchement les choses...

    Est-ce suffisant de seulement "masquer" les formulaires? Y a t'il une autre méthode plus efficace (autre que de ne pas utiliser d'onglets bien sûr )

    Merci de votre aide

  2. #2
    Membre émérite
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Par défaut
    Bonjour,

    Pour ma part dans une base avec un formulaire contenant beaucoup d'onglet et de sous formulaires long en temps de chargement, j'avais utilisé l'astuce suivante.
    Mes objets sous formulaires n'avaient pas de source (pas lié réellement à mes formulaire) et je les chargeait lors de la première activation de la page de l'onglet les concernants:

    Exemple:
    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
     
        Select Case CtlOng
            Case 2
                ChargeFormulaire "F_SF_Salaire", "Matricule", "Matricule"
            Case 3
                ChargeFormulaire "F_SF_Formations par employé", "Matricule", "Matricule"
            Case 4
                ChargeFormulaire "F_SF_Gestion ListesPostes", "FK_ID_employé", "ID_employé", Me!Responsable
            Case 5 'Besoins
                ChargeFormulaire "F_SF_Gestion ListesAnnexes", "Fk_ID_employé", "ID_employé", vbServicePersonnel
            Case 6
                ChargeFormulaire "F_SF_Gestion ListesBesoinsEmploye", "Fk_ID_employé", "ID_employé"
                [F_SF_Gestion ListesBesoinsEmploye].Requery
            Case 7
                ChargeFormulaire "F_SF_Gestion ListesDerniereLecture", "Fk_ID_employé", "ID_employé"
            Case Else
        End Select
    Avec:

    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
     
    Sub ChargeFormulaire(ControlName As String, ChampFils As String, ChampPere As String, Optional TestSaisie)
        With Controls(ControlName)
            If .SourceObject = "" Then
                DoCmd.Echo False, "Chargement en cours ..."
                .SourceObject = ControlName
                .LinkChildFields = ChampFils
                .LinkMasterFields = ChampPere
                .Requery
                DoCmd.Echo True, ""
            End If
        End With
        If Not IsMissing(TestSaisie) Then
            ActiveSaisieSF Controls(ControlName), TestSaisie
        End If
    End Sub
     
    Sub ActiveSaisieSF(MonSF As Control, ByVal SaisieOk As Boolean)
        With MonSF
            If .SourceObject <> "" Then
                .Form.AllowEdits = SaisieOk
                .Form.AllowAdditions = SaisieOk
            End If
        End With
    End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 24
    Par défaut
    OK merci, je vais essayer ça

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/11/2014, 17h47
  2. Ouverture d'une base Access à partir d'une autre base access
    Par Julien Dufour dans le forum Access
    Réponses: 3
    Dernier message: 19/10/2005, 18h13
  3. Créer une base Access avec Delphi
    Par Oluha dans le forum Bases de données
    Réponses: 3
    Dernier message: 11/10/2005, 17h55
  4. Ouverture d'une base Acces avec Builder 6 pro
    Par tryonyco dans le forum C++Builder
    Réponses: 7
    Dernier message: 30/08/2005, 16h45
  5. Modification d'une base Access avec MySQL
    Par Wyatt dans le forum Administration
    Réponses: 2
    Dernier message: 07/01/2005, 20h20

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