OVH Cloud OVH Cloud

Question aux MVP : MDB -> MDE "Que se se passe t-il ?"

3 réponses
Avatar
Alberto
Simple question de curiosité pour enrichir ma culture générale Access :

Lors de la conversion d'une base Mdb en Mde, l'aide Access mentionne que le
code VBA stocké en arrière plan des formulaires, états,modules de la base est
caché.
Mais que se passe t-il en fait ?
Le code VBA est-il converti en autre chose ? Une partie du code est-elle
tronquée de sorte qu'il ne puisse plus être édité mais soit toujours
fonctionnel ? Y a t-il une conversion du code dans le style des méthodes de
cryptage PGP (Clé publique / Clé privée) ?
Je sais, je me torture l'esprit ... mais j'aimerais bien arriver à calmer
mon neurone de la curiosité.

Merci de vos réponses.
Alberto
--
Impossible n'est pas Access ...

3 réponses

Avatar
Raymond [mvp]
Bonsoir.

en créant une base mde, le code est compilé et le code source supprimé.
c'est pourquoi le retour est impossible. dans la base mdb, les 2 codes
cohabitent et s'il n'est pas compilé, le code source est de toute façon
compilé avant exécution.
quelques remarques sur : http://access.seneque.free.fr/mde.htm

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Alberto" a écrit dans le message de
news:
Simple question de curiosité pour enrichir ma culture générale Access :

Lors de la conversion d'une base Mdb en Mde, l'aide Access mentionne que
le

code VBA stocké en arrière plan des formulaires, états,modules de la base
est

caché.
Mais que se passe t-il en fait ?
Le code VBA est-il converti en autre chose ? Une partie du code est-elle
tronquée de sorte qu'il ne puisse plus être édité mais soit toujours
fonctionnel ? Y a t-il une conversion du code dans le style des méthodes
de

cryptage PGP (Clé publique / Clé privée) ?
Je sais, je me torture l'esprit ... mais j'aimerais bien arriver à calmer
mon neurone de la curiosité.

Merci de vos réponses.
Alberto
--
Impossible n'est pas Access ...


Avatar
3stone
Salut,

"Alberto"
Lors de la conversion d'une base Mdb en Mde, l'aide Access mentionne que le
code VBA stocké en arrière plan des formulaires, états,modules de la base est
caché.
Mais que se passe t-il en fait ?
Le code VBA est-il converti en autre chose ? Une partie du code est-elle
tronquée de sorte qu'il ne puisse plus être édité mais soit toujours
fonctionnel ? Y a t-il une conversion du code dans le style des méthodes de
cryptage PGP (Clé publique / Clé privée) ?




Lorsque tu code du VBA, il est sauver simplement, non compilé.

Lorsque tu "exécute" la base, le code est d'abord compilé, s'il ne l'est pas encore.
C'est bien pour cela qu'il faut *toujours* compiler le code après une saisie.
Cela permet aussi de déboguer les erreurs grossières.

Après la compilation, il existe les deux versions du code dans la base:
La version "brute" et la version compilée qui sera exécutée.

Lorsque tu crée une .MDB ( le code doit alors se compiler parfaitement),
et le code "brut", celui que tu édite, est totalement supprimé.
Il ne reste que la version compilée.

C'est aussi pour cela que, lorsque l'on ne souhaite pas que les requêtes soient
modifées (ou modifiable) on les placent dans le VBA en tant que chaîne SQL.

NB: La "compilation" dont on parle dans Access, n'à rien à voir avec la compilation
d'un code qui permet d'être exécuté en autonome.
C'est ce qui explique la réponse négative à la demande:
Puis-je compiler une base Access pour l'utiliser sans Access : Non!


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
3stone
re,

"3stone"
Lorsque tu crée une .MDB


Lire bien sûr : une .MDE



Une précision supplémentaire...
Il arrive que suite à un plantage ou autre gros problème,
il reste du "code mort", morceaux de code compilé...

Cela ce ressent parfois lorsque la base ne "tourne" pas bien,
ou, lorsque le compactage ne "réduit" pas le volume de la base
de la manière espérée.

Une solution ( à utiliser avec prudence, sur une copie ) est de
lancer un "décompile" de la base.
Cette procédure (non documentée) éllimine tout le code compilé
d'une base MDB et ne laisse que le code "brut".
Il faut faire suivre une (nouvelle) compilation et un compactage.
On retrouve ainsi une base "fraîche". Il est suffisant de faire cela
après la période de mise au point de la base.

Voir pour plus de détail:
http://www.trigeminal.com/usenet/usenet004.asp?1036


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------