FAQ MS-Access
FAQ MS-AccessConsultez toutes les FAQ
Nombre d'auteurs : 140, nombre de questions : 926, dernière mise à jour : 15 juin 2021
- Pourquoi ne devrais-je pas utiliser les macros ?
- Comment lancer une macro à partir d'un module de code ?
- Comment voir le code VBA correspondant à l'action d'une macro ?
- Comment obtenir la liste des macros par le code ?
- Comment abaisser le niveau de sécurité du Runtime pour masquer les messages d'avertissement sur les macros ?
Les macros conviennent pour des actions basiques. Insertion d'enregistrements,
suppression, ouverture de formulaire, etc. Leur utilisation devient vite
limitée du fait qu'il n'est pas possible d'effectuer de test ni de boucle.
De plus, contrairement à VBA, elles ne permettent pas d'utiliser des composants externes (références)
pourtant bien pratiques pour interagir avec d'autres applications Office.
La seule macro recommandée est la macro nommée AutoExec qui lance une action au démarrage de la base de données.
D'ailleurs, bien souvent son action sera d'exécuter une fonction VBA.
DoCmd.RunMacro
"MacroName"
Il vaut toutefois mieux convertir une macro en VBA que d'utiliser cette méthode.
Il faut faire :
Outils / Macro / Convertir les macros en Visual Basic.
Public
Sub
MacroEditor
(
)
Dim
Mcr As
AccessObject
' On parcourt l'ensemble des macros de l'application
For
Each
Mcr In
CurrentProject.AllMacros
MsgBox
Mcr.Name
'on affiche le nom de la macro
Next
Mcr
End
Sub
Installez le service pack 8 du moteur Jet (disponible sur le site Microsoft).
Puis dans la base de registre :
Sous la clé : [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines], créez ou modifiez la valeur DWord nommée SandBoxMode avec la valeur 2.
Sous la clé : [HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Access\Security], créez ou modifiez la valeur DWord nommée Level avec la valeur 1.