2010-09-29 7 views
0

L'utilisation de l'API lockWindowUpdate dans le code VBA évite le scintillement de l'écran lors de la mise à jour du contenu de l'écran. Cela améliore également considérablement les retards de calcul, car l'ordinateur n'a pas besoin d'actualiser l'écran après chaque calcul \ update effectué sur le jeu d'enregistrements sous-jacent.ms-access 2007 runtime et lockWindowUpdate

Malheureusement, je ne peux pas le faire fonctionner correctement avec le runtime Access 2007! Sur certains écrans, il faudra 30 fois plus aux utilisateurs d'Access 2007 pour que leurs données soient mises à jour que les utilisateurs d'Access 2003! En recherchant un peu sur google, j'ai trouvé qu'un problème similaire related to powerpoint 2007 a également été discuté, mais rien, ou aucune solution claire, n'est apparu pour msAccess. J'apprécierai fortement toute aide.

+0

Pourquoi utiliser une API pour ce que VBA fournit déjà? DoCmd.Echo False, Me.Painting = False et Application.Echo Faux tout l'écran de contrôle de peinture. Les principaux problèmes sont de choisir le bon contexte, de l'appeler au bon endroit et de gérer les erreurs pour le réactiver en cas d'erreur. –

+1

Merci pour votre aide. La solution fonctionne. mais pourquoi ne l'avons-nous pas utilisé avant ??? –

Répondre

1

Je suis incapable de tester l'accès 2007, mais serait en utilisant

Application.Echo False ,”Updating” 

travail pour vous? N'oubliez pas de réactiver l'écho une fois le code terminé et en cas de piégeage d'erreur

Application.Echo True,”” 
+0

Jusqu'à maintenant, ça marche! Je devais juste mettre à jour mes fonctions freezeForm et unfreezeForm dans l'application. La question est maintenant: comment n'avons-nous pas trouvé cette solution avant même de penser à utiliser l'API Windows? –

+0

Ahh ne vous inquiétez pas de ces choses se produisent, j'ai passé des heures à faire mon propre widget de mise à jour automatique front end seulement pour trouver il y avait déjà un là-bas! Je suis sûr que je continuerai à faire d'autres "erreurs" à l'avenir! –

+0

De plus, j'ai des tonnes de code de production avec des fonctions personnalisées qui font ce que Access a commencé à fournir il y a 10 ans. Ainsi que des fonctions qui font des choses qu'Access faisait déjà quand je les ai écrites. :( –