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 :

Compactage d'une bdd en cours


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Compactage d'une bdd en cours
    Bonjour,
    je cherche une méthode permettant, en vb, de compacter la base de données en cours.
    J'ai vu une réponse dans les f.a.Q (voir ci-dessous) mais le lien renvoie une erreur 404, ce qui est compréhensible près de 15 ans après le message
    Pour MS Access 2000 et plus.
    Vous trouverez ci-dessous une bibliothèque qui vous permettra de compacter la base en cours.

    Créé le 20 novembre 2005 par Maxence HUBICHE
    Lien : TSI SOON (Shut One, Open New) database add-in


    bref, est-ce encore possible vu que je souhaite, comme beaucoup d'utilisateurs je crois, pouvoir réinitialiser par programmation le numéroAuto de certaines tables ?

    Au fait, et c'est une seconde question, peut-on aisément copier une table (par requête création et / ou ajout ou instruction SQL pure) SANS que le numéroAuto de la première table
    vienne s'installer dans la seconde. Ceci permettrait aisément de résoudre le problème de la réinitialisation du NuméroAuto par le biais de 2 copies successives des données (table vers sauvegarde - sauvegarde vers table)
    J'ai également songé à remplacer le numéroAuto interne d'Access par un champ clé créé personnellement, mais cela ne semble pas donner un meilleur résultat.

    Merci de votre patience.

  2. #2
    Expert éminent
    bonsoir,

    J'ai vu une réponse dans les f.a.Q (voir ci-dessous) mais le lien renvoie une erreur 404, ce qui est compréhensible près de 15 ans après le message
    il y a pourtant d'autres solutions dans la FAQ
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...

  3. #3
    Nouveau membre du Club
    Compactage BDD
    Merci pour votre information.
    Malgré mes recherches, je n'avais pas vu cette réponse.
    Un seul hic, hélas, cela ne fonctionne pas sur la DB en cours comme c'est clairement mentionné.

    En conséquence je pars sur une autre piste qui permettrait d'oublier le compactage :
    - copie de sécurité de la table à traiter
    sur la base à traiter :
    - suppression de l'index primary key (drop index)
    - suppression du champ ex clé primaire (alter table)
    - copie de travail de la table simplifiée (requête creation)
    - effacement de la table à traiter docmd
    - recréation de la table originale depuis la copie de travail (requête création)
    - ajout du champ futur clé primaire (alter table)
    - ajout de l'index primary key sur ce champ (create index)

    Encore merci pour votre aide

  4. #4
    Expert éminent
    bonsoir,
    Un seul hic, hélas, cela ne fonctionne pas sur la DB en cours comme c'est clairement mentionné.
    toute compression nécessite que la base soit fermée au préalable ou que l'on travaille avec une copie de cette base, il n'y a pas d'autre choix quelque soit le logiciel utilisé
    sur la base à traiter :
    - suppression de l'index primary key (drop index)
    - suppression du champ ex clé primaire (alter table)
    - copie de travail de la table simplifiée (requête creation)
    - effacement de la table à traiter docmd
    - recréation de la table originale depuis la copie de travail (requête création)
    - ajout du champ futur clé primaire (alter table)
    - ajout de l'index primary key sur ce champ (create index)
    Oui, si les tables à traiter sont vides et que se sont des tables de travail, sinon je ne comprendrais pas le besoin ...
    et dans ce cas, pourquoi ne pas travailler avec des tables modèles (copie d'une table vide en remplacement de l'ancienne) ?
    Il est quand même conseillé de compacter régulièrement pour libérer l'espace qu'engendrent les suppressions successives.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...

  5. #5
    Nouveau membre du Club
    Compactage BDD
    Citation Envoyé par tee_grandbois Voir le message
    bonsoir,

    toute compression nécessite que la base soit fermée au préalable ou que l'on travaille avec une copie de cette base, il n'y a pas d'autre choix quelque soit le logiciel utilisé

    Oui, si les tables à traiter sont vides et que se sont des tables de travail, sinon je ne comprendrais pas le besoin ...
    et dans ce cas, pourquoi ne pas travailler avec des tables modèles (copie d'une table vide en remplacement de l'ancienne) ?
    Il est quand même conseillé de compacter régulièrement pour libérer l'espace qu'engendrent les suppressions successives.
    En effet,
    un tout grand merci pour l'assistance.
    je marque clôturé pour la discussion.