Access sature l'UC

Résolu
Fly50 -  
fausty66 Messages postés 54 Statut Membre -
J'ai un PC en XP pro SP1. Depuis quelques temps, je ne peux plus ouvrir une table ou un formulaire Access sans que l'UC s'emballe à 100% d'occupation et la mémoire augmente doucement mais continuellement.
Pour afficher le contenu de ma table, je dois cliquer sur la zone d'en-tête. Dès que j'en sort toutes les données disparaissent !!!
J'ai entendu dire qu'il pourrait s'agir d'un conflit avec une mise à jour automatique de windows ??? Peut-être mais laquelle, il y en a des 10aines.
D'avance merci pour votre aide (si ça vous dit qqchose ;-)
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  1. fausty66 Messages postés 54 Statut Membre 7
     
    bonjour, a toi de jouer
    http://access.seneque.free.fr/optimisation.htm

    Causes connues de la lenteur d'une appli access avec
    tables liées
    Même parfois un peu loufoque, ces solutions ont toutes
    été éprouvées ! Ne rien laisser au hasard, donc.

    - sur le serveur, vérifier l'écran de veille: un écran de
    veille gourmand (genre Boules 3D), sur NT, peut accaparer
    jusqu'à 90% du CPU. Incroyabe mas vrai!
    Solutions: désactiver l'écran de veille ou affecter
    un écran de veille type Black Screen, peu glouton

    - dans les tables, passer en mode création, afficher les
    propriétés des tables, et régler la propriété Sous
    feuille de données (sub data sheet je crois) sur [Aucun]
    ([none])
    Access a tendance à rapatrier toutes les "sous-
    données" (tables en relations un à plusieurs en
    général) , ce qui alourdit considérablement le trafic
    d'infos dans les tuyaux

    - toujours dans les tables, mais aussi dans l'appli:
    Outils/Options/onglet général .. s'assurer d'avoir
    décoché l'option "suivi correction automatique des noms"
    (attention, il est possible que certains états perdent
    leur mise en forme) .. conséquence, certains états
    peuvent s'ouvrir jusqu'à 4 fois plus vite (merci
    Microsoft)

    - dans la série incroyable, on poursuit: placer la base
    de données source (backend) sur la racine du serveur
    plutôt que dans une multitude de sous-répertoire.
    a compléter par la réduction du nom du fichier source :
    ex: c:\repertoire1\repertoire2\repertoire3\repertoire4
    \MaBaseDeDonnéesSourceAccess2000.mdb sera moins
    performant (tables liées) que c:\repertoire1\Base.mdb

    - Anti-virus: un cas fréquent de lenteur: si vous
    disposez de norton Anti virus (une des 3/4 dernières
    versions), s'assurer que le fichier source sera exclus du
    scan
    et que l'anti-virus n'analyse QUE les disques locaux, et
    pas les lecteurs réseau

    - S'assurer que vous disposez bien du dernier moteur Jet,
    à moins que, puisque vous me parlez d'internet, vous
    n'utilisiez le moteur MSDE
    Q302496 ACC2000: Queries Slower After You Install MS Jet
    4.0 SP4 or SP5
    <https://support.microsoft.com/support/kb/articles/q302/4/9
    6.asp>

    - ce qui a fonctionné pour moi (mais pour internet,
    faudra adapter ;-) ):
    la base front end, lorsqu'elle tente d'accéder à la base
    backend (tables liées à un fichier source), rencontre un
    fichier lockFile (*.ldb)
    Access tente alors de supprimer ce fichier, mais n'y
    parvient pas (puisque quelqu'un est déjà connecté sur la
    base source). Après une quinzaine de tentatives,
    infructueuses, Access renvoie enfin le jeu
    d'enregistrement. Pour éviter cela, voilà ce que j'ai mis
    en place:
    afin d'établir une connection permanente avec la base en
    backend, et donc de prévenir ce probème, créez

    -un formulaire, appelons-le "frmdummy" (formulaire
    stupide ;-) )
    - une table "tbldummy" (avec un champ simple, n'importe
    quel format, n'importe quel nom)
    -dans un module standard, déclarez une variable globale
    de type recordset
    ex: Public rsAlwaysOpen As
    Recordset
    -Dans l'évènement sur ouverture du formulaire frmdummy
    (OnOpen), ouvrez un recordset
    Private Sub Form_Open(Cancel As Integer)
    Set rsAlwaysOpen = CurrentDb.OpenRecordset
    ("DummyTable")
    End Sub

    -Dans l'évènement sur fermeture du formulaire frmdummy
    (OnClose), fermez le recordset
    Private Sub Form_Close()
    rsAlwaysOpen.Close
    Set rsAlwaysOpen = Nothing
    End Sub

    - au lancement de la db, ouvrez ce formulaire en premier,
    avec visible=false
    ce formulaire restera ouvert jusqu'à la fermeture de
    l'appli.

    Résultat: un traitement de 5 à 10X plus rapide ...
    1
  2. noob_linux Messages postés 806 Statut Membre 120
     
    pas de risque avec les MAJ de win// par contre quelle est ta config matérielle ? CPU / RAM ?

    0
    1. Fly50
       
      Quelle assurance par rapport à la qualité des MAJ Windows !
      Mais après tout pourquoi pas.
      J'ai donc comme bécane un Toshiba Tecra S1, Pentium 1,5 GHz, 598 MHz, 256 Mo de Ram
      0
      1. fausty66 Messages postés 54 Statut Membre 7 > Fly50
         
        Desole le lien est mort ,par contre avec XP 256 MO c'est trés faible ,recommandé minimum 512
        0