OVH Cloud OVH Cloud

Acc97 et Dr Watson

6 réponses
Avatar
Laurent
Bonjour,

Nous utilisons une vieille application Access 97=20
comportant un grand nombre de formulaires / req etc.=20
(~250 forms).

Depuis quelques temps, lorsque l'on touche au mdb on se=20
retrouve quasi-syst=E9matiquement avec un dr watson (NT4)=20
indiquant une violation d'acc=E8s. Cela se produisant m=EAme=20
sur certains formulaires non modifi=E9s.

Lorsque nous importons les formulaires en question dans=20
une nouvelle base, notre ami le docteur apparait=20
=E9galement au moment de traiter le formulaire qui pose=20
probl=E8me...

La r=E9paration de la base est inop=E9rante, la compilation=20
n'indique aucun pb...

Nous ne savons vraiment plus quoi faire, de plus il nous=20
est pour le moment impossible de passer =E0 une version=20
plus r=E9cente...=20

Quelqu'un aurait une solution ?

Merci d'avance.

6 réponses

Avatar
3stone
Salut,

"Laurent" a écrit:
Nous utilisons une vieille application Access 97
comportant un grand nombre de formulaires / req etc.
(~250 forms).

Depuis quelques temps, lorsque l'on touche au mdb on se
retrouve quasi-systématiquement avec un dr watson (NT4)
indiquant une violation d'accès. Cela se produisant même
sur certains formulaires non modifiés.

Lorsque nous importons les formulaires en question dans
une nouvelle base, notre ami le docteur apparait
également au moment de traiter le formulaire qui pose
problème...

La réparation de la base est inopérante, la compilation
n'indique aucun pb...



Oui... tu ne peux pas réparer un formulaire corrompu...
Mais, tu peux essayer un /décompile sur une *copie* de ta base...

http://www.trigeminal.com/usenet/usenet004.asp?1036


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------
Avatar
Laurent
Bonjour,

Et en plus ca à l'air de marcher !!!
Mais à quoi c'est du ?
Que fait exactement cette option ?
Si j'ai bien compris elle décompile l'intégralité du code.
Mais quel est le rapport avec un formulaire corrompu ?

En tout cas merci beaucoup ! Sans toi j'étais perdu !

Laurent


-----Message d'origine-----
Salut,

"Laurent" a écrit:
Nous utilisons une vieille application Access 97
comportant un grand nombre de formulaires / req etc.
(~250 forms).

Depuis quelques temps, lorsque l'on touche au mdb on se
retrouve quasi-systématiquement avec un dr watson (NT4)
indiquant une violation d'accès. Cela se produisant même
sur certains formulaires non modifiés.

Lorsque nous importons les formulaires en question dans
une nouvelle base, notre ami le docteur apparait
également au moment de traiter le formulaire qui pose
problème...

La réparation de la base est inopérante, la compilation
n'indique aucun pb...



Oui... tu ne peux pas réparer un formulaire
corrompu...

Mais, tu peux essayer un /décompile sur une *copie* de
ta base...


http://www.trigeminal.com/usenet/usenet004.asp?1036


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------




.



Avatar
3stone
Salut,


Et en plus ca à l'air de marcher !!!



Tant mieux...


Mais à quoi c'est du ?
Que fait exactement cette option ?


Comment ???
On donne un lien avec une possible solution et on ne se donne pas la peine
de lire à *fond* l'article concerné ? ;-)


Si j'ai bien compris elle décompile l'intégralité du code.


Le nom de cette option est plutôt mal choisie...
Moi, je l'aurais appellée:
"RecompileToutAvoirFaitLeNettoyageParLeVide" ;-))

C'est d'ailleurs de là que vient également le danger de cette option!

Pour faire simple:
Dans une application Access, il y a au départ le code sous sa forme la plus simple,
c.à.d. le "texte" que tu écris (ou avec les assistants) et que tu modifie.
Pour l'exécution, il te faut du code "compilé" et qui sera crée au plus tard, lorsque tu lance l'application.
Mais, cette façon de procéder (compiler au lancement) est totalement à proscrire!!!
Avec l'option /décompile, tu demande à Access de ne tenir compte que du texte "brut"
(nommer texte canonique dans l'article) et de jeter *tout le reste* par dessus bord...
le code parfaitement compilé, le code se trouvant dans un état intermédiaire dû à des erreurs,
ainsi que les "cadavres" de code qui traînent de ci de là...


Mais quel est le rapport avec un formulaire corrompu ?


Si, derrière ton formulaire, tu as du code qui se prend tellement bien les pieds dans le tapis,
au point de ne plus pouvoir ouvrir ce formulaire en mode édition et t'afficher le texte canonique...
ben... c'est là que tu est mal... ;-))

Pour éviter au maximum ce genre de problème (je suis tenter de dire: pour éviter totalement...)
il faut s'astreindre à un minimum de discipline lors du "développement" :

- Toujours compiler le code avant de "fermer" un module et d'exécuter
- Ne jamais supprimer un quelconque contrôle SANS avoir vérifié, et le cas échéant,
supprimé le code dans les différents événements.
- Ne pas mettre du code "au petit bonheur la chance" dans les différents événements...
des sub ou des fonctions qui "ne marche pas" et que l'on abandonne simplement...
le code qui "traîne", même s'il n'est pas exécuté, peut tôt ou tard être la cause de corruption.
- Ecrire un code clair, aérer et avec une bonne indentation.
Ce dernier point n'influence pas directement sur la qualité de la compilation, mais aide
à avoir un meilleur regard sur le code, et par là, moins d'erreurs lors des compilations


En tout cas merci beaucoup ! Sans toi j'étais perdu !


Disons, ennuyé ;-)



--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------

Avatar
Laurent
Hello !

Si si si ! J'avais bien compris (bien que certains termes
soient assez obscures ;) mais ce que je ne comprend pas
c'est pourquoi, une fois la "décompilation" éffectuée, la
compilation de tous les formulaires ne me sort pas une
erreur... Voilà tout !

Par contre j'ai déjà pour principe de suivre tes conseils
à la fin du post précédent... ouf !

Une dernière question, ce problème est supprimé dans les
version > 97 ?

Encore merci pour tout !


-----Message d'origine-----
Salut,


Et en plus ca à l'air de marcher !!!



Tant mieux...


Mais à quoi c'est du ?
Que fait exactement cette option ?


Comment ???
On donne un lien avec une possible solution et on ne se
donne pas la peine

de lire à *fond* l'article concerné ? ;-)


Si j'ai bien compris elle décompile l'intégralité du
code.



Le nom de cette option est plutôt mal choisie...
Moi, je l'aurais appellée:
"RecompileToutAvoirFaitLeNettoyageParLeVide" ;-))

C'est d'ailleurs de là que vient également le danger de
cette option!


Pour faire simple:
Dans une application Access, il y a au départ le code
sous sa forme la plus simple,

c.à.d. le "texte" que tu écris (ou avec les assistants)
et que tu modifie.

Pour l'exécution, il te faut du code "compilé" et qui
sera crée au plus tard, lorsque tu lance l'application.

Mais, cette façon de procéder (compiler au lancement)
est totalement à proscrire!!!

Avec l'option /décompile, tu demande à Access de ne
tenir compte que du texte "brut"

(nommer texte canonique dans l'article) et de jeter
*tout le reste* par dessus bord...

le code parfaitement compilé, le code se trouvant dans
un état intermédiaire dû à des erreurs,

ainsi que les "cadavres" de code qui traînent de ci de
là...



Mais quel est le rapport avec un formulaire corrompu ?


Si, derrière ton formulaire, tu as du code qui se prend
tellement bien les pieds dans le tapis,

au point de ne plus pouvoir ouvrir ce formulaire en mode
édition et t'afficher le texte canonique...

ben... c'est là que tu est mal... ;-))

Pour éviter au maximum ce genre de problème (je suis
tenter de dire: pour éviter totalement...)

il faut s'astreindre à un minimum de discipline lors
du "développement" :


- Toujours compiler le code avant de "fermer" un module
et d'exécuter

- Ne jamais supprimer un quelconque contrôle SANS avoir
vérifié, et le cas échéant,

supprimé le code dans les différents événements.
- Ne pas mettre du code "au petit bonheur la chance"
dans les différents événements...

des sub ou des fonctions qui "ne marche pas" et que
l'on abandonne simplement...

le code qui "traîne", même s'il n'est pas exécuté,
peut tôt ou tard être la cause de corruption.

- Ecrire un code clair, aérer et avec une bonne
indentation.

Ce dernier point n'influence pas directement sur la
qualité de la compilation, mais aide

à avoir un meilleur regard sur le code, et par là,
moins d'erreurs lors des compilations



En tout cas merci beaucoup ! Sans toi j'étais perdu !


Disons, ennuyé ;-)



--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------



.




Avatar
3stone
Salut,

"Laurent" a écrit:
mais ce que je ne comprend pas
c'est pourquoi, une fois la "décompilation" éffectuée, la

compilation de tous les formulaires ne me sort pas une erreur...


Si ta base compile sans problèmes... c'est normal...
Puisque tes problèmes, tu les avaient dans le code (mal) compilé.


Une dernière question, ce problème est supprimé dans les
version > 97 ?

Pas réellement :-(

Les erreurs de compilation et les cadavres de codes se créent
surtout lors du développement et des modifications...

Mais, ce n'est pas réservé à Access.
Word fait pareil avec tes fichiers texte... plus tu copie/colle
modifie, ajoute et supprime... et plus le fichier prend de l'ampleur.
Tout cela avec la même quantité de texte à la fin comme au départ...

Comme quoi ;-)


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------

Avatar
Laurent
En tout cas merci pour tout.
Au plaisir.

LD

-----Message d'origine-----
Salut,

"Laurent" a écrit:
mais ce que je ne comprend pas
c'est pourquoi, une fois la "décompilation" éffectuée, la

compilation de tous les formulaires ne me sort pas une
erreur...



Si ta base compile sans problèmes... c'est normal...
Puisque tes problèmes, tu les avaient dans le code
(mal) compilé.



Une dernière question, ce problème est supprimé dans les
version > 97 ?

Pas réellement :-(

Les erreurs de compilation et les cadavres de codes
se créent

surtout lors du développement et des modifications...

Mais, ce n'est pas réservé à Access.
Word fait pareil avec tes fichiers texte... plus tu
copie/colle

modifie, ajoute et supprime... et plus le fichier
prend de l'ampleur.

Tout cela avec la même quantité de texte à la fin
comme au départ...


Comme quoi ;-)


--
A+
Pierre (3stone) Access MVP
-------------------------------------------------------
Bien démarrer ? c'est ici http://users.skynet.be/mpfa/
( Je ne réponds pas aux emails qui concernent Access )
-------------------------------------------------------



.