Erreur 3197 : aaaargh !

Le
Gloops
Bonjour tout le monde,

Il m'arrive un truc de dingue sous Access 95 : lorsque je veux modifier
un contrôle sur un formulaire, l'opération n'est pas sauvegardée. O=
n me
dit "les données ont été modifiées, fin de l'opération" (là j=
e me dis
justement, c'est bien parce que les données ont été modifiées que=
je
veux les sauvegarder), puis "l'opération de sauvegarde a échoué". E=
n
fait, en cliquant sur le bouton d'aide du message, j'apprends qu'il
s'agit d'une erreur 3197, un autre utilisateur aurait modifié la base.

Je suis tout seul sur ma machine, j'ai débranché Internet pour être=
sûr,
ensuite j'ai même désactivé l'antivirus un instant pour voir.

Au bout d'un moment on me dit que le formulaire ne peut pas être ouvert=

car il contient des données qu'Access ne comprend pas (^^)

ça s'arrange quand même quand je ferme et rouvre la base, mais j'ai e=
u
le plus grand mal à transférer la structure dans une nouvelle base.
Notamment le formulaire calendrier a mis du temps, il provoquait des
erreurs de protection générale lors du transfert, jusqu'à ce que je=
le
recrée à la main dans la nouvelle base. Le transfert suivant s'est pa=
ssé
mieux (parce que ça fait un paquet d'heures que je suis en train de me =

bagarrer avec ça).

J'ai vérifié l'intégrité du disque.

Maintenant, impossible de changer un iota à la structure du formulaire =

sur lequel je suis en train de travailler. En fait le changement a l'air =

de se faire, puis je ferme la base et je la réouvre, le changement est =

ignoré, comme si la base avait été protégée en écriture (ce d=
ont je doute).

J'ai déjà joué à créer une copie du formulaire pour travailler =
dessus,
je ne sais plus combien de fois j'ai fait ça, mais maintenant il
commencerait à être temps d'avancer un peu.

ça se passe sur Windows XP Home, protégé par BitDefender 10 Interne=
t
Security.

Avant d'en arriver là j'ai quand même passé quelques jours à mont=
er une
bonne partie de la base, ça avait l'air de très bien se passer,
tout-à-coup les choses se sont mises à déraper.

Bien entendu demain matin je lance un deuxième antivirus, en ligne,
histoire qu'il me confirme la conscience tranquille du premier.
A part ça, quelqu'un a une idée ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ze Titi
Le #6271151
Salut Gloops !

A première vue, je penserais bien à une corruption de la base. Ceci
étant dit, n'ayant jamais eu l'occasion de travailler avec Access 95,
je ne saurai pas te dire comment régler le problème. Je vois que tu as
ouvert une nouvelle application et transféré tes objets dedans, c'est
la procédure généralement utilisée pour pallier à ce problème.

As-tu du code dans tes formulaires ? Si c'est le cas, fermes-tu tes
recordset et vides-tu les variables ? (set taVariable=Nothing)
Compactes-tu régulièrement ton appli ?

En ce jour exceptionnel du lundi 14/05/2007, tu nous as très
généreusement gratifié du message suivant:

Bonjour tout le monde,

Il m'arrive un truc de dingue sous Access 95 : lorsque je veux modifier un
contrôle sur un formulaire, l'opération n'est pas sauvegardée. On me dit "les
données ont été modifiées, fin de l'opération" (là je me dis justement, c'est
bien parce que les données ont été modifiées que je veux les sauvegarder),
puis "l'opération de sauvegarde a échoué". En fait, en cliquant sur le bouton
d'aide du message, j'apprends qu'il s'agit d'une erreur 3197, un autre
utilisateur aurait modifié la base.

Je suis tout seul sur ma machine, j'ai débranché Internet pour être sûr,
ensuite j'ai même désactivé l'antivirus un instant pour voir.

Au bout d'un moment on me dit que le formulaire ne peut pas être ouvert car
il contient des données qu'Access ne comprend pas (^^)

ça s'arrange quand même quand je ferme et rouvre la base, mais j'ai eu le
plus grand mal à transférer la structure dans une nouvelle base. Notamment le
formulaire calendrier a mis du temps, il provoquait des erreurs de protection
générale lors du transfert, jusqu'à ce que je le recrée à la main dans la
nouvelle base. Le transfert suivant s'est passé mieux (parce que ça fait un
paquet d'heures que je suis en train de me bagarrer avec ça).

J'ai vérifié l'intégrité du disque.

Maintenant, impossible de changer un iota à la structure du formulaire sur
lequel je suis en train de travailler. En fait le changement a l'air de se
faire, puis je ferme la base et je la réouvre, le changement est ignoré,
comme si la base avait été protégée en écriture (ce dont je doute).

J'ai déjà joué à créer une copie du formulaire pour travailler dessus, je ne
sais plus combien de fois j'ai fait ça, mais maintenant il commencerait à
être temps d'avancer un peu.

ça se passe sur Windows XP Home, protégé par BitDefender 10 Internet
Security.

Avant d'en arriver là j'ai quand même passé quelques jours à monter une bonne
partie de la base, ça avait l'air de très bien se passer, tout-à-coup les
choses se sont mises à déraper.

Bien entendu demain matin je lance un deuxième antivirus, en ligne, histoire
qu'il me confirme la conscience tranquille du premier.
A part ça, quelqu'un a une idée ?


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info

Gloops
Le #6271101
ze Titi a écrit, le 14/05/2007 09:41 :
Salut Gloops !

A première vue, je penserais bien à une corruption de la base. Ceci
étant dit, n'ayant jamais eu l'occasion de travailler avec Access 95, je
ne saurai pas te dire comment régler le problème. Je vois que tu as
ouvert une nouvelle application et transféré tes objets dedans, c'e st la
procédure généralement utilisée pour pallier à ce problème.


C'est bien ce qu'il me semblait ...


As-tu du code dans tes formulaires ? Si c'est le cas, fermes-tu tes
recordset et vides-tu les variables ? (set taVariable=Nothing)
Compactes-tu régulièrement ton appli ?


En principe oui. Cela étant j'aurais bien pensé à ça après avoi r exécuté
quelques procédures, mais là, j'ouvre la base dans laquelle je viens de
transférer les formulaires, tables, requêtes et modules, j'ouvre un
formulaire en mode design, je tente de supprimer une zone de texte, et
là en voulant sauvegarder j'ai l'erreur -le tout après avoir redéma rré
la machine pour vérifier l'intégrité du disque. Par la même occas ion le
code du formulaire a disparu.

Je vais finir par me demander si ce ne serait pas Access qui serait vér olé.

J'ai pas mal d'applications qui se lancent au démarrage de Windows, mai s
si ça devait gêner je n'aurais pas pu monter le plus gros de la base ...


Cela étant merci de t'intéresser au problème.


Comme trucs sortant un peu de l'ordinaire j'ai sur un formulaire l'objet
calendrier (mscal70), sur un autre un appel aux API pour faire
sélectionner un fichier et enregistrer le chemin dans un champ.
En principe, des trucs qu'on sait faire, et d'ailleurs ça ça marche.

ze Titi
Le #6271071
As-tu essayé de compiler le code avant la première exécution ?

En ce jour mémorable du lundi 14/05/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
ze Titi a écrit, le 14/05/2007 09:41 :
Salut Gloops !

A première vue, je penserais bien à une corruption de la base. Ceci étant
dit, n'ayant jamais eu l'occasion de travailler avec Access 95, je ne
saurai pas te dire comment régler le problème. Je vois que tu as ouvert une
nouvelle application et transféré tes objets dedans, c'est la procédure
généralement utilisée pour pallier à ce problème.


C'est bien ce qu'il me semblait ...


As-tu du code dans tes formulaires ? Si c'est le cas, fermes-tu tes
recordset et vides-tu les variables ? (set taVariable=Nothing)
Compactes-tu régulièrement ton appli ?


En principe oui. Cela étant j'aurais bien pensé à ça après avoir exécuté
quelques procédures, mais là, j'ouvre la base dans laquelle je viens de
transférer les formulaires, tables, requêtes et modules, j'ouvre un
formulaire en mode design, je tente de supprimer une zone de texte, et là en
voulant sauvegarder j'ai l'erreur -le tout après avoir redémarré la machine
pour vérifier l'intégrité du disque. Par la même occasion le code du
formulaire a disparu.

Je vais finir par me demander si ce ne serait pas Access qui serait vérolé.

J'ai pas mal d'applications qui se lancent au démarrage de Windows, mais si
ça devait gêner je n'aurais pas pu monter le plus gros de la base ...


Cela étant merci de t'intéresser au problème.


Comme trucs sortant un peu de l'ordinaire j'ai sur un formulaire l'objet
calendrier (mscal70), sur un autre un appel aux API pour faire sélectionner
un fichier et enregistrer le chemin dans un champ.
En principe, des trucs qu'on sait faire, et d'ailleurs ça ça marche.


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info


Gloops
Le #6271051
ze Titi a écrit, le 14/05/2007 10:21 :
As-tu essayé de compiler le code avant la première exécution ?

Lancer le contrôle de syntaxe, tu veux dire ?

De toute manière la fois où j'ai fait une faute plus grosse que moi ç a
m'a été signalé tout de suite, même si c'était sur la dixième ligne
d'une fonction que je n'exécutais pas tout de suite. Alors j'ai cliqué
sur le bouton (qu'on appelle compilation), ça m'a sélectionné l'err eur,
j'ai fait oops, corrigé le truc, et là ça a fait son boulot.

C'était hier.

ze Titi
Le #6271031
Essaie de recréer une nouvelle base, d'y importer tes objets, de
compiler, compacter et seulement après tout ça, modifier tes
formulaires et dis-nous ce qu'il en est. Mais je ne saurais que trop te
conseiller de passer si possible à une version plus récente (en faisant
une étape par Access 97 pour que la transition de code se fasse en
douceur...)

En ce jour mémorable du lundi 14/05/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
ze Titi a écrit, le 14/05/2007 10:21 :
As-tu essayé de compiler le code avant la première exécution ?

Lancer le contrôle de syntaxe, tu veux dire ?

De toute manière la fois où j'ai fait une faute plus grosse que moi ça m'a
été signalé tout de suite, même si c'était sur la dixième ligne d'une
fonction que je n'exécutais pas tout de suite. Alors j'ai cliqué sur le
bouton (qu'on appelle compilation), ça m'a sélectionné l'erreur, j'ai fait
oops, corrigé le truc, et là ça a fait son boulot.

C'était hier.


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info


Gloops
Le #6271021
Par acquit de conscience je viens de créer une nouvelle base avec rien
dedans, y créer une table avec deux champs et un formulaire lié à l a
table, avec deux zones de textes. ça se sauvegarde bien.

Ensuite j'ai transformé une des zones de texte en liste déroulante
modifiable, ça se passe bien aussi.

Peut-être un problème de mémoire, finalement, j'en demande beaucoup à ce
bestiau. Je vais chercher dans cette direction.

L'autre jour, j'ai voulu utiliser un programme (VB6) qui changeait
l'encodage d'un lien mailto:, pour remplacer par exemple %E9 par é,
parce que sinon la messagerie remplace tout ce qui vient après par des
points d'interrogation. J'ai échappé aux points d'interrogation sur l a
suite, mais le lendemain de la mise au point du programme, les
caractères accentués étaient remplacés par des espaces, et l'ét ude du
code ne permettait pas de le comprendre. En fait, cette fois, il a suffi
de redémarrer la machine pour résoudre le problème.

Je crois qu'il va falloir que je teste ma base avec beaucoup moins de
choses en mémoire. ça s'est bien passé au début de la base, mais je
commence à me demander si je n'aurais pas atteint un seuil critique.
Peut-être que j'ouvrirai un autre fil intitulé "spécifications
techniques" ou quelque chose de plus parlant, il me semble qu'il y a une
expression consacrée qui ne me vient plus à l'esprit, pour savoir quo i
vérifier au sujet de la configuration de la machine. Face à ce problè me
je m'attendrais plutôt à une erreur 7, là au moins on sait de quoi il
retourne et on ne tourne pas autour du pot, mais il semble qu'on puisse
parfois avoir des surprises.

Par ailleurs mon autre machine revient de réparation ce soir, si cette
piste se confirme ça devrait aider à décharger cette machine-ci.
Gloops
Le #6271011
ze Titi a écrit, le 14/05/2007 10:50 :
Essaie de recréer une nouvelle base, d'y importer tes objets, de
compiler, compacter et seulement après tout ça, modifier tes formul aires
et dis-nous ce qu'il en est.


La base actuelle porte le numéro 6 :)
Hier j'en étais à la 1, chaque nouveau numéro correspond à cette man½uvre.

Mais je ne saurais que trop te conseiller
de passer si possible à une version plus récente (en faisant une é tape
par Access 97 pour que la transition de code se fasse en douceur...)



Bientôt, peut-être.
Pour le moment, je ne te donne pas les détails, pour ne pas te faire pe ur.

Pour ce qui est de la transition, pas de problème, j'ai monté une bas e
95 compatible 97 et 2000, Windows 98 et XP. Avec les "particularités" d e
syntaxe qui vont avec.

Jessy Sempere
Le #6270931
Bonjour

La solution de ze_titi est bien celle qui est préconisé...
As-tu des champs MEMO ou OLE ???

Tu trouveras quelques info ici :
http://support.microsoft.com/kb/q182867/

Et sinon, essais de réparer en utilisant l'utilitaire jetcomp.exe

--
@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------



ze Titi a écrit, le 14/05/2007 10:50 :
Essaie de recréer une nouvelle base, d'y importer tes objets, de
compiler, compacter et seulement après tout ça, modifier tes formulaires
et dis-nous ce qu'il en est.


La base actuelle porte le numéro 6 :)
Hier j'en étais à la 1, chaque nouveau numéro correspond à cette manœuvre.

Mais je ne saurais que trop te conseiller
de passer si possible à une version plus récente (en faisant une étape
par Access 97 pour que la transition de code se fasse en douceur...)



Bientôt, peut-être.
Pour le moment, je ne te donne pas les détails, pour ne pas te faire peur.

Pour ce qui est de la transition, pas de problème, j'ai monté une base
95 compatible 97 et 2000, Windows 98 et XP. Avec les "particularités" de
syntaxe qui vont avec.






Gloops
Le #6270761
Jessy Sempere a écrit, le 14/05/2007 12:04 :
Bonjour

La solution de ze_titi est bien celle qui est préconisé...


Je crois que je n'ai pas été clair : c'est bien ce que j'ai fai t, six
fois. :)

As-tu des champs MEMO ou OLE ???


Le calendrier est un objet OLE, à part ça les champs sont texte s,
numériques ou booléens.


Tu trouveras quelques info ici :
http://support.microsoft.com/kb/q182867/


C'est vrai que ce qui est dit là sur l'erreur 3197 encourage à regarder
ça de près. Des pointeurs sur l'extérieur, comme je disais je vois le
calendrier et l'API pour les dialogues communs. ça ne se situe pas
directement dans le formulaire qui pose problème, mais ça resse mble bien
aux symptômes décrits dans la fiche.


Et sinon, essais de réparer en utilisant l'utilitaire jetcomp.exe

D'ailleurs, tu restes cohérent puisque c'est ce qu'on conseille sur la

fiche Microsoft :)

Et la fiche explique bien comment ça se passe, et pourquoi il n'y a pas
besoin de quelqu'un qui passe derrière modifier en même temps.

Bon, je m'occupe des quelques mails que je n'ai pas passés pendant
l'analyse de secuser (qui n'a rien trouvé), et j'essaie ça aprà ¨s.

Ce nom de JetComp me rappelle quelque chose, apparemment je ne suis pas
à l'abri de l'avoir oublié depuis quelques années. D'aille urs je suis
passé devant les outils de réparation sans m'y arrêter, j' aurais eu plus
le réflexe si je n'avais pas pu ouvrir la base.

Merci de m'avoir rafraîchi la mémoire.

En même temps, ça m'alerte sur le fait que je n'ai pas choisi l a bonne
clef de recherche. Le texte de l'erreur ne menait nulle part, en
revanche l'erreur 3197 était connue, par son numéro, dans les a rchives
du newsgroup. On dirait que le stress m'a empêché de réflà ©chir
sainement. D'habitude, à l'occasion d'une erreur de protection gé nérale,
la première chose que je fais est de chercher le numéro d'erreu r sur
Google. Bon, je ferai mieux la prochaine fois.

Merci encore.

Gloops
Le #6270591
Bon, eh bien pas de pot : JetComp n'a fait ni chaud ni froid. Même pas
de message d'erreur d'ailleurs.

En cherchant pour Access 95 on finit par arriver là
http://support.microsoft.com/kb/151186/EN-US/

où on trouve un msjtwng.exe qui contient une mise à jour du moteur Je t 3.0

D'ailleurs il y a quatre DLL à mettre à jour, dont trois dans le
répertoire système, bon ça c'est fait, et une dans C:Program
FilesCommon FilesMicrosoft SharedReplication Manager (Msajetfs.dll),
mais celle-là je n'en ai pas trouvé l'original. Je n'ai même pas vu de
répertoire Replication Manager dans Microsoft Shared, qui se trouve
d'ailleurs être dans Fichiers Communs plutôt que Common Files.

Les trois mises à jour :
Msjt3032.dll 3.000.4513 917 KB 2/12/99
Mstx3032.dll 3.000.4513 121 KB 9/13/98
Mswng300.dll 3.00.4513 301 KB 2/11/99
qui remplacent la version 3.0.0.2504

Rien de changé sur le front.

Dans les archives j'ai trouvé une intervention d'un technicien Microsof t
sur le sujet :

===
"Database Compact Utility 4.0" compacte bien toutes les bases à partir de la
version d'Access 95 (option 3.x pour Access 7.0 à 97 et option 4.x pour
Access 2000 et 2002) dans le but de récupérer des données. La réu ssite de
cette opération dépend du niveau de corruption. En effet, il n'est pa s
possible dans certains cas de réparer la base. Cependant, cet utilitair e est
plus puissant que l'outil de réparation dans Access.
===

Bon, eh bien ... maintenant que j'ai mis à jour le moteur de base de
données je vais essayer de transférer les éléments dans une nouve lle
base, pour voir.

Si quelqu'un sait quelque chose sur la msajetfs.dll ...
Publicité
Poster une réponse
Anonyme