Compact Access

Le
ANDBRETON
Bonjour,

Y a t il un moyen de savoir, avant de le faire, si une base Access
gagnera à être compactée.
Je parle en terme de taille.

Sachant :
-qu'une base de plusieurs dizaines de Mo peut se retrouver réduite à
quelques Ko.
-que j'en ai quelques milliers
-que mes utilisateurs sont sourds.
-que je ne veux pas utiliser le compact sur fermeture.

J'aimerai écrire une moulinette qui scanerait les .mdb et qui les
compacterait si le gain de place est supérieur à un certain
pourcentage.

Merci pour vos idées.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-marc
Le #6360281
ANDBRETON wrote:
Bonjour,


Hello,

Y a t il un moyen de savoir, avant de le faire, si une base Access
gagnera à être compactée.
Je parle en terme de taille.


J'en doute, mais je ne retrouve plus ma source.

Sachant :
-qu'une base de plusieurs dizaines de Mo peut se retrouver réduite à
quelques Ko.
-que j'en ai quelques milliers
-que mes utilisateurs sont sourds.
-que je ne veux pas utiliser le compact sur fermeture.

J'aimerai écrire une moulinette qui scanerait les .mdb et qui les
compacterait si le gain de place est supérieur à un certain
pourcentage.


Il y a une solution plus élégante, amha:

1) maintenir une base de données (ou un simple fichier) dans
lequel on notera:
- Le nom de la base
- La taille de la base après compactage

2) Ecrire un programme qui examine les bases potentiellement
à compacter puis:
- Si la base n'est pas encore répertoriée, la compacter et
insérer les infos dans la BDD de controle (nom et taille)

- Sinon, Si la taille courante est sensiblement différente
de la taille notée dans la BDD, la compacter et mettre à
jour la BDD. (le "sensiblement différente" sera bien sur
un paramètre du programme).

- Sinon, on passe.

Ca à l'avantage d'être très simple à implémenter, très simple
à maintenir, très simple à étendre.

Si en plus tu veux limiter le nombre de bases à compacter
lors d'une même exécution de ton programme, il suffit de
mettre un petit compteur pour dire au programme de s'arrréter
quoiqu'il arrive après avoir traité (compacté) X bases.

Si toutes les bases grossissent tout le temps, tu peux ajouter
dans la base de contrôle une date de compactage, et tu ne
compactes que si en plus d'avoir grossi, la date de dernier
compactage est suffisamment ancienne (par exemple plus de 10
ou 20 jours ou n'importe). Ceci permettra une répartition
harmonieuse des compactages et plus ou moins la garantie de
toutes les compacter, à tour de rôle.

On peut raffiner encore au besoin.

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;

Jean-marc
Le #15368181
ANDBRETON wrote:
Bonjour,



Hello,

Y a t il un moyen de savoir, avant de le faire, si une base Access
gagnera à être compactée.
Je parle en terme de taille.



J'en doute, mais je ne retrouve plus ma source.

Sachant :
-qu'une base de plusieurs dizaines de Mo peut se retrouver réduite à
quelques Ko.
-que j'en ai quelques milliers
-que mes utilisateurs sont sourds.
-que je ne veux pas utiliser le compact sur fermeture.

J'aimerai écrire une moulinette qui scanerait les .mdb et qui les
compacterait si le gain de place est supérieur à un certain
pourcentage.



Il y a une solution plus élégante, amha:

1) maintenir une base de données (ou un simple fichier) dans
lequel on notera:
- Le nom de la base
- La taille de la base après compactage

2) Ecrire un programme qui examine les bases potentiellement
à compacter puis:
- Si la base n'est pas encore répertoriée, la compacter et
insérer les infos dans la BDD de controle (nom et taille)

- Sinon, Si la taille courante est sensiblement différente
de la taille notée dans la BDD, la compacter et mettre à
jour la BDD. (le "sensiblement différente" sera bien sur
un paramètre du programme).

- Sinon, on passe.

Ca à l'avantage d'être très simple à implémenter, très simple
à maintenir, très simple à étendre.

Si en plus tu veux limiter le nombre de bases à compacter
lors d'une même exécution de ton programme, il suffit de
mettre un petit compteur pour dire au programme de s'arrréter
quoiqu'il arrive après avoir traité (compacté) X bases.

Si toutes les bases grossissent tout le temps, tu peux ajouter
dans la base de contrôle une date de compactage, et tu ne
compactes que si en plus d'avoir grossi, la date de dernier
compactage est suffisamment ancienne (par exemple plus de 10
ou 20 jours ou n'importe). Ceci permettra une répartition
harmonieuse des compactages et plus ou moins la garantie de
toutes les compacter, à tour de rôle.

On peut raffiner encore au besoin.

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
3stone
Le #6360261
Salut,

"ANDBRETON"
Y a t il un moyen de savoir, avant de le faire, si une base Access
gagnera à être compactée.
Je parle en terme de taille.

Sachant :
-qu'une base de plusieurs dizaines de Mo peut se retrouver réduite à
quelques Ko.
-que j'en ai quelques milliers
-que mes utilisateurs sont sourds.
-que je ne veux pas utiliser le compact sur fermeture.

- Quelques Ko, c'est à peine une base ;-)
- quelques milliers de quoi ?
- ce n'est pas à eux de le faire...


Vu les questions que tu te pose, tu n'arriveras pas
à justifier la raison pour laquelle tu ne veux pas compacter
à la fermeture !!!


J'aimerai écrire une moulinette qui scanerait les .mdb et qui les
compacterait si le gain de place est supérieur à un certain
pourcentage.


Ce genre de chose ne ce fait *que* sur une base dorsale
qui n'est jamais libérée, car comme tu ne l'ignore pas, pour
compacter une base, elle doit pouvoir être ouverte en
mode exclusif...

Le reste, n'est que réinventer l'eau chaude ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
3stone
Le #15368171
Salut,

"ANDBRETON"
Y a t il un moyen de savoir, avant de le faire, si une base Access
gagnera à être compactée.
Je parle en terme de taille.

Sachant :
-qu'une base de plusieurs dizaines de Mo peut se retrouver réduite à
quelques Ko.
-que j'en ai quelques milliers
-que mes utilisateurs sont sourds.
-que je ne veux pas utiliser le compact sur fermeture.

- Quelques Ko, c'est à peine une base ;-)
- quelques milliers de quoi ?
- ce n'est pas à eux de le faire...


Vu les questions que tu te pose, tu n'arriveras pas
à justifier la raison pour laquelle tu ne veux pas compacter
à la fermeture !!!


J'aimerai écrire une moulinette qui scanerait les .mdb et qui les
compacterait si le gain de place est supérieur à un certain
pourcentage.


Ce genre de chose ne ce fait *que* sur une base dorsale
qui n'est jamais libérée, car comme tu ne l'ignore pas, pour
compacter une base, elle doit pouvoir être ouverte en
mode exclusif...

Le reste, n'est que réinventer l'eau chaude ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Publicité
Poster une réponse
Anonyme