Lorsque vous remplacez [Proc�dure �v�nementielle] par le nom d'une macro en mode cr�ation d'un formulaire ou un �tat, la proc�dure elle-m�me reste dans le module de l'objet classe. Lorsque vous convertissez la macro � une proc�dure Visual Basic, l'Assistant ne v�rifie pas si la proc�dure de cet �v�nement existe d�j�, et qu'il cr�e une proc�dure en double.
Proc�dure pour reproduire le probl�me
L'exemple suivant utilise un formulaire. Vous pouvez obtenir les m�mes r�sultats � l'aide d'un rapport.
- D�marrez Microsoft Access et ouvrez la base de donn�es exemple Comptoir.mdb sera modifi�e.
- Cr�er la macro suivante appel�e TestVBA :
Nom de macro | Action |
---|
TestVBA | Optimiser |
- Enregistrer la macro et fermez-le.
- Utiliser le formulaire instantan� : Colonnes Assistant pour cr�er un nouveau formulaire bas� sur la table Shippers (Exp�diteurs).
- Enregistrez le formulaire sous frmShippers, puis puis l'ouvrez en mode Cr�ation.
- D�finissez la propri�t� OnLoad du formulaire � la proc�dure �v�nementielle suivante :
Private Sub Form_Load()
'This module will be replaced by a macro
End Sub
- Fermez la fen�tre du formulaire module.
- Modifier la propri�t� OnLoad du formulaire � partir de [Proc�dure �v�nementielle] � TestVBA.
- Dans le menu Outils , pointez sur macro , puis cliquez sur macros du formulaire convertir en Visual Basic .
- Dans la bo�te de dialogue Convertir les macros de formulaire , cliquez sur Convertir .
- Cliquez sur OK lorsque la conversion termin�e et basculez le formulaire en mode formulaire.
Remarque : vous recevez le message d'erreur indiqu� dans la section
Sympt�mes . Si vous acc�dez module de classe du formulaire, vous trouverez deux proc�dures nomm�s Form_Load.