Question

Ma base de données Access 2000 DB me pose des problèmes - parfois (nous n’en avons pas identifié la cause), le "livre" formulaire ne ferme pas. En cliquant sur son bouton de fermeture ne fait rien, Fichier - > Close ne fait rien, même fermer Access ne donne rien. Je n'ai pas de gestionnaire OnClose pour ce formulaire. La seule solution de contournement que je puisse trouver consiste à ouvrir l'éditeur Vba, à modifier le code de ce formulaire (même à ajouter un espace puis à le supprimer immédiatement), puis à revenir à la fermeture du "livre". forme, fermez-la et dites "Non, je ne veux pas sauvegarder les modifications". Ce n’est qu’alors que cela se fermera. Toute aide?

Était-ce utile?

La solution

Voici un message de forum décrivant, je pense, le même problème que vous rencontrez. L'extrait ci-dessous indique une solution de contournement.

  

Ce que je fais est de mettre du code sur le bouton de fermeture qui réaffecte l'objet source   des sous-formulaires vers un formulaire vierge, tels que:

     

me! subParts.sourceobject = " subBlank " 'subBlank est ma forme qui est   totalement vierge, sans code ni contrôle, etc.   docmd.close acForm, "fParts", acSaveNo

     

Les deux lignes ci-dessus sont le seul moyen que j'ai découvert pour empêcher l'invite d'accès.   de surgir.

     

http://bytes.com/forum/thread681889.html

Autres conseils

Une autre alternative est

(Me.Checkbox) 

ou ma syntaxe préférée:

(Me!Checkbox)

Il me semble qu'il y a beaucoup de confusion dans les articles de ce sujet. La réponse choisie par l’affiche originale cite un article dans lequel l’utilisateur était invité à enregistrer les modifications de conception dans le formulaire, mais le problème décrit ici semble indiquer que la fermeture du formulaire a échoué. un problème de sauvegarde (le problème de sauvegarde ne concernait que la solution décrivant comment accéder à VBE et modifier le code).

Je me demande si l’utilisateur initial peut avoir des options VBE incorrectes? Si vous ouvrez le VBE et allez à TOOLS | OPTIONS, sous l'onglet GÉNÉRAL, vous verrez plusieurs choix concernant la gestion des erreurs. Vous devez choisir l'option RUPTURE D'ERREURS INDISPONIBLES ou le module RUPTURE EN CLASSE, mais il est important de savoir que si vous utilisez l'ancien, vous risquez de ne pas voir certains types d'erreur.

Il n’ya pas vraiment assez de détails pour en diagnostiquer beaucoup plus, mis à part le fait que la référence au contrôle de case à cocher semblait être à l’origine du problème, mais il existe un certain nombre de pratiques recommandées en matière de codage d’accès qui peuvent vous aider à en éviter certaines. bizarreries. Les recommandations relatives au code de la page sur les meilleures pratiques de Tony Toews sont un bon endroit pour commencer.

C'est sûr, c'est bizarre. Avez-vous des contrôles de minuterie sur le formulaire? Si vous le faites, essayez de le désactiver dans OnClose.

Il est possible que la boîte de message vous demandant si vous souhaitez enregistrer les modifications soit affichée derrière le formulaire. Je pense que cette boîte de message est modale. Vous devez donc cliquer sur Oui ou sur Non pour pouvoir faire quoi que ce soit avec le formulaire. C'est pourquoi vous ne pouvez pas le fermer.

Votre formulaire comporte-t-il un événement de déchargement? Cela peut être annulé et si c'est le cas, le formulaire ne se fermera pas lorsqu'il sera en mode formulaire. Il ne ferme qu'en mode Création, ce qui, lorsque vous modifiez le code vba, correspond à ce que le formulaire fait dans la fenêtre Access lorsque vous modifiez le code.

Votre formulaire comporte-t-il une case à cocher, un bouton bascule ou un bouton d'option? Il y a un bogue dans Access 2000 dans lequel Access ne se ferme pas si vous testez la valeur sans utiliser explicitement la propriété Value dans le code vba, comme ceci:

If Me.chkbox Then

versus:

If Me.chkbox.Value Then
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top