OVH Cloud OVH Cloud

Problème memo entre Acc 2000 et Acc 2003

2 réponses
Avatar
PhilCha
Bonjour,
J'ai un programme VBA qui alimente une base en 97 et en 2000. Ces tables
contiennent beaucoup de champs memo. Le même programme d'alimentation des
champs memo sur une base Access 2000 sous Access 2003 fait grossir jusqu'à
arriver aux limites du système (de 100 Mo sous Access 97 et 2000 à 1,2 Go
sous Access 2003). Les propriétés des champs sont les mêmes.
Est-ce du à la compressions unicode ?
Quelle solution pour rester à une taille normale ?
Merci par avance

2 réponses

Avatar
Tisane
Bonjour PhilCha,

J'ai un programme VBA qui alimente une base en 97 et en 2000. Ces
tables contiennent beaucoup de champs memo. Le même programme
d'alimentation des champs memo sur une base Access 2000 sous Access
2003 fait grossir jusqu'à arriver aux limites du système (de 100 Mo
sous Access 97 et 2000 à 1,2 Go sous Access 2003). Les propriétés des
champs sont les mêmes.
Est-ce du à la compressions unicode ?
Quelle solution pour rester à une taille normale ?


Unicode utilise en effet 2 octets au lieu d'un pour le codage des
caractères.
Donc, oui, cela peut jouer sur la taille de la base, mais... ce codage était
déjà pris en charge par la version 2000.
Or, ta base était à 100 Mo sous 2000 aussi, dis-tu.
Je suppose que tu as compacté ta base avec la v2003 ?
Tu as laissé ta base "compatible 2000". Je me demande si une conversion
définitive au format 2003 ne la ferait pas maigrir.
Essaie aussi d'importer tous les objets dans une base vierge.

--
Tisane

Avatar
PhilCha
Merci pour l'aide. Evidemment, je suis exactement dans le même environnement
(base compactée, code identique en tous points, etc ...)
En fait, il semble qu'une même opération (la mise à jour en VBA de champs
memo) sous Access 97 ou 2000, d'une part, et sous 2003, d'autre part,
entraine dans le cas de 2003 la "réservation" systématique d'un espace
important quelque soit le contenu du dit champ memo.
Concrétement :
1) Sous Acc 97, 2000 et 2003 : alimentation d'une table en VBA (insert into
...) de 10000 enr. => base passe à environ 10 Mo. C'est normal.
2) Une boucle d'alimentation en VBA d'un champ mémo de cette table jusque là
à null (non inséré par le process précédent) fait passer la base de 10 Mo à
11 Mo sous Acc 97 et 2000 contre 29 Mo sous 2003.
Ce problème appliqué à plusieurs champ mémo et à plusieurs tables explique
le passage de la base de 100 Mo et 1,2 Go.
Une idée lumineuse ?


Bonjour PhilCha,

J'ai un programme VBA qui alimente une base en 97 et en 2000. Ces
tables contiennent beaucoup de champs memo. Le même programme
d'alimentation des champs memo sur une base Access 2000 sous Access
2003 fait grossir jusqu'à arriver aux limites du système (de 100 Mo
sous Access 97 et 2000 à 1,2 Go sous Access 2003). Les propriétés des
champs sont les mêmes.
Est-ce du à la compressions unicode ?
Quelle solution pour rester à une taille normale ?


Unicode utilise en effet 2 octets au lieu d'un pour le codage des
caractères.
Donc, oui, cela peut jouer sur la taille de la base, mais... ce codage était
déjà pris en charge par la version 2000.
Or, ta base était à 100 Mo sous 2000 aussi, dis-tu.
Je suppose que tu as compacté ta base avec la v2003 ?
Tu as laissé ta base "compatible 2000". Je me demande si une conversion
définitive au format 2003 ne la ferait pas maigrir.
Essaie aussi d'importer tous les objets dans une base vierge.

--
Tisane