2010-09-30 4 views
1

Dans Access 2003, il existe des moyens d'exécuter du code lors de l'ouverture d'un formulaire ou d'une base de données, mais qu'en est-il de la fermeture de la base de données?Access 2003: exécution du code sur la base de données close

Ma motivation est l'utilisation inévitable d'une bibliothèque COM tierce quelque peu boguée. Libérer la référence COM (en définissant la variable sur Nothing) entraîne la déconnexion (correcte) de son serveur. Le problème est qu'il ne peut pas se reconnecter sans quitter le processus et en commencer un nouveau (qui est un bug connu). Dans ce cas, le processus est l'ensemble IDE Access :(

Idéalement, je voudrais stocker la référence COM quelque part qui serait protégé de l'action "Reset" VBA qui efface les variables globales (et est commun au cours du débogage, parfois forcé par une modification de code). Mais je voudrais avoir la chance de nettoyer avant la base de données est fermée.

Répondre

3

Si vous avez un formulaire que vous avez défini pour ouvrir automatiquement au démarrage de la base de données ... et laissez le formulaire ouvert, vous pouvez utiliser l'événement On Close du formulaire pour exécuter votre code de nettoyage:

Private Sub Form_Close() 
    'do your stuff here ' 
End Sub 
+0

+1 Bonne idée. Maintenant, comment puis-je appeler AddRef de VBA (il donne une erreur), et lancer la référence COM à un entier afin de le stocker? –

+0

Peu importe, j'ai posté une toute nouvelle question: http://stackoverflow.com/questions/3836046/access-hidden-form-method-to-store-a-com-reference –

0

ne relâchez pas la référence. que peut-on accéder que quand il se ferme. Vous

+0

Mais je veux faire un peu de nettoyage juste avant * L'accès (ou la DB) se ferme. L'accès ne le fera pas pour moi. –

+0

vous voulez dire nettoyage à l'aide de votre bibliothèque COM buggé? ne le faites pas dans une session Access, attendez jusqu'à ce qu'ils quittent Access. – Beth

+0

J'appelle la bibliothèque COM d'Access VBA. Je veux faire le nettoyage de la même manière. –

Questions connexes