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

VBA Access Discussion :

[VBA] [2000] Créer un module pour compacter les données


Sujet :

VBA Access

  1. #1
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 495
    Points : 184
    Points
    184
    Par défaut [VBA] [2000] Créer un module pour compacter les données
    Bonjour,

    Je cherche à créer un module pour compacter mes données lorsque je clique sur un bouton. ( créer le bouton, ... pas de problème, c'est la procédure à mettre en VBA )...

    Merci à tous !

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Si ta base n'est pas scindée, tu peux cocher l'option compactage à la fermeture.

    Si tu travailles avec un système de base frontale / dorsale, tu peux utiliser ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DoCmd.Hourglass True
     
    x = Shell("Msaccess.exe " & Chr$(34) & strCheminDorsale & Chr$(34) & " /compact")
     
    DoCmd.Hourglass False
     
    MsgBox "Les données ont été compactées avec succés !", vbInformation + vbOKOnly, "Compactage"
    Ou strCheminDorsale est le chemin complet de la base dorsale.

    Attention : aucun autre utilisateur ne doit être connecté à la base de données pendant le compactage. Le mieux étant peut-être de planifier ce genre d'opération pendant la nuit.

    Domi2

  3. #3
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 495
    Points : 184
    Points
    184
    Par défaut
    Citation Envoyé par Domi2
    Si ta base n'est pas scindée, tu peux cocher l'option compactage à la fermeture.
    Ma base n'est pas scindée, mais elle le sera sans doute plus tard.
    Est-ce que ce code fonctionne quand même?????

  4. #4
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Ma base n'est pas scindée, mais elle le sera sans doute plus tard.
    Alors coche simplement l'option de compactage à la fermture. De toute façon, en période de développement, il est conseillé de compacter régulièrement.

    Maintenant, si ta base est destinée a être utilisée en réseau (et même si ce n'est pas le cas), tu aurais gain de la scinder dès maintenant. Voir les nombreux posts à ce sujet sur le forum.

    Est-ce que ce code fonctionne quand même?????
    Non. Il faut en utiliser un qui compacte la base en cours d'utilisation. Mais pour une version d'Access supérieur à 97, je ne vois pas trop d'intérêt. le compactage automatique à la fermeture de la base me semble suffisant.

    Domi2

  5. #5
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 495
    Points : 184
    Points
    184
    Par défaut
    Est-ce possible de mettre un code pour compacter sans passer par la case à cocher????? ( Désolé si ma question paraît bêbête )

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    je crois qu'il est préférable de passer par un gestionnaire de compactage,car le compactage à la fermeture est long et parfois parfaitement inutile

    pour cela on utilise une base dédiée
    dans cette base on gère une table contenant le nom et l'adresse de toutes les mdb gérées.

    pour chaque base on fait choix d'une stratégie de compactage
    perso j'utilise deux stratégies
    la taille maxi pour les bases de type traitement mensuel dont la taille après compactage reste quasi invariante, mais qui du fait d'effacement et recréation de données enfle
    La variation en pourcentage on compacte quand la base a augmenté
    d'un pourcentage significatif

    après chaque compactage on mémorise la taille avant et après compactage

    périodiquement on ajuste les paramètres

    le traitement s'effectue hors des heures d'ouverture
    il prévoit un log (avec mail) si incident

  7. #7
    Membre habitué
    Avatar de DamKre
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2007
    Messages : 495
    Points : 184
    Points
    184
    Par défaut
    Heu..... Comment fait-on tout cela?????

Discussions similaires

  1. Créer une classe ou un module pour gerer les apostrophes du code SQL
    Par Alexandre le Grand dans le forum VB.NET
    Réponses: 1
    Dernier message: 21/01/2011, 23h56
  2. Créer un tableau pour afficher les données d'une requête.
    Par BILANGA dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 13/10/2009, 12h04
  3. [ISA SERVER 2000] Configurer le proxy pour autoriser les connexions P2P
    Par senator dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 19/01/2007, 10h57
  4. Réponses: 4
    Dernier message: 20/08/2006, 16h20
  5. Créer un ficher pour stocker les informations
    Par b_steph_2 dans le forum C++
    Réponses: 3
    Dernier message: 10/11/2005, 10h08

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