Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fichier corrompu contenant des tables après compactage

3 réponses
Avatar
Lionel
Bonjour à tous,

Cela fait la 2ème fois que ça m'arrive, voilà mon problème :

J'ai un MDB qui contient ma base programme (formulaires, états, requêtes et
modules) donc base que j'appel programme, et que je met sur 2 postes en
réseau.

J'ai plusieurs MDE qui contiennent mes tables dont les bases programmes
pointent dessus (plusieurs car pour éviter que les tables ne gonflent trop
car dans quelques table le nombre d'enregistrement peut atteindre environs
40000 lignes).

Lorque je ferme le programme, je fais compacter par VBA toutes mes bases
tables.

Ce qu'il s'est passé, un de mes fichiers base tables, apparement après
compactage, fait 0 Ko et forcémenet je ne peut plus l'ouvrir.

J'ai donc perdu toutes me données :-(

Quelqu'un a-t-il une idée ou déjà vu ce problème.

Je n'ai plus trop confiance du coup tant que je ne sais pas d'où ça peut
venir.

Merci d'avance pour vos réponses.

Lionel

PS : si ça vient de là, voilà comme je comptacte par VBA :

La procédure :
Public Sub compacter1base(param_base As String, param_baseTmp As String)
DoCmd.Hourglass True
DBEngine.CompactDatabase param_base, param_baseTmp
Kill param_base
DBEngine.CompactDatabase param_baseTmp, param_base
Kill param_baseTmp
DoCmd.Hourglass False
End Sub

J'appel la procédure de cette façon à la fermeture de mon formulaire
principal :
Call compacter1base("S:\Produits.mde", "S:\Produits2.mde")

3 réponses

Avatar
Tisane
Bonjour Lionel,

J'ai un MDB qui contient ma base programme (formulaires, états, requêtes
et modules) donc base que j'appel programme, et que je met sur 2 postes en
réseau.

J'ai plusieurs MDE qui contiennent mes tables dont les bases programmes
pointent dessus (plusieurs car pour éviter que les tables ne gonflent trop
car dans quelques table le nombre d'enregistrement peut atteindre environs
40000 lignes).

Lorque je ferme le programme, je fais compacter par VBA toutes mes bases
tables.

Ce qu'il s'est passé, un de mes fichiers base tables, apparement après
compactage, fait 0 Ko et forcémenet je ne peut plus l'ouvrir.
[...]


Je ne vais sans doute répondre que partiellement à ta question. Où plutôt je
réponds par des questions...
Pourquoi convertir les données (tables) en .mde ?
Personnellement, c'est plutôt le "code" que je convertis et je laisse les
tables en mdb.

Et pourquoi compacter par code ? A moins de vouloir le programmer à un
moment précis, il me semble tout aussi efficace d'utiliser l'option
"Compactage à la fermeture" dans chacune de tes bases de tables.

Regarde quand même dans le dossier des tables s'il n'y a pas un fichier
BD1.mdb qui traîne et qui ferait plus de 0 Ko.
Il y a dû avoir un plantage ou un conflit pendant l'opération.

Tisane

Avatar
Lionel
Merci Tisane pour ta réponse,

Je sais que pour des tables seulement, il est inutile d'avoir des MDE à la
place des mdb (au départ c'était pour que l'on ne puisse pas toucher aux
formulairees et états mais ensuite il n'y a eu que des tables).

Compactr par code, car j'utilise une base programme et que les tables y sont
liées. quand je quitte ma base programme, les fichiers des tables liées eux
ne sont pas compactés. Donc je dois le faire par code (car j'ai 6 fichiers
de tables liés, je suis obligé d'en avoir autant pour optimiser les tailles
des fichiers).
Pour ma base programme effectivement j'utilise le compactage automatique de
fermerture de l'appli.

Pas d'autre fichier qui traine malheureusement.

Peut être d'autres pistes à vérifier ?

Merci


"Tisane" a écrit dans le message de news:

Bonjour Lionel,

J'ai un MDB qui contient ma base programme (formulaires, états, requêtes
et modules) donc base que j'appel programme, et que je met sur 2 postes
en réseau.

J'ai plusieurs MDE qui contiennent mes tables dont les bases programmes
pointent dessus (plusieurs car pour éviter que les tables ne gonflent
trop car dans quelques table le nombre d'enregistrement peut atteindre
environs 40000 lignes).

Lorque je ferme le programme, je fais compacter par VBA toutes mes bases
tables.

Ce qu'il s'est passé, un de mes fichiers base tables, apparement après
compactage, fait 0 Ko et forcémenet je ne peut plus l'ouvrir.
[...]


Je ne vais sans doute répondre que partiellement à ta question. Où plutôt
je réponds par des questions...
Pourquoi convertir les données (tables) en .mde ?
Personnellement, c'est plutôt le "code" que je convertis et je laisse les
tables en mdb.

Et pourquoi compacter par code ? A moins de vouloir le programmer à un
moment précis, il me semble tout aussi efficace d'utiliser l'option
"Compactage à la fermeture" dans chacune de tes bases de tables.

Regarde quand même dans le dossier des tables s'il n'y a pas un fichier
BD1.mdb qui traîne et qui ferait plus de 0 Ko.
Il y a dû avoir un plantage ou un conflit pendant l'opération.

Tisane



Avatar
J-Pierre
Bonsoir,

Je ne sais pas trop où peut être ton problème, par contre, une table avec 40000 lignes, c'est tout petit. Il y a 2-3 ans, nous
avons fait des essais et publié les résultats ici, des tables avec 3 millions de lignes, une base proche du Giga, aucun
problème de performance, pour autant que tes tables index et relations soient correctement définis. Si en plus il n'y a que
deux utilisateurs.....

Peut-être qu'en remettant tout ensemble, les problèmes disparaîtront.

J-Pierre