Access 2007 sous forme de Split VBA: acNewRec sur ouvert empêche par la forme tabulateur - agit comme le premier champ n'est pas « sélectionné »

StackOverflow https://stackoverflow.com/questions/4047422

Question

Je espère que quelqu'un peut me aider, ou tout au moins la figure de l'aide sur une solution de contournement.

J'utilise la fonction de la forme de partage de Access 2007, et ont le code ci-dessous course sur l'événement Form_Open, et après deux événements Button_Click. Le code fonctionne très bien quand courir après les événements Button_Click, mais quand il fonctionne sur l'événement Form_Open, il provoque des problèmes.

Si le formulaire est ouvert et l'utilisateur saisit du texte dans le premier champ, il / elle ne peut pas utiliser Tab ou la souris pour sélectionner le champ de formulaire suivant. L'utilisateur est bloqué sur le premier champ de formulaire jusqu'à ce que la touche Echap pour annuler la saisie des données. Pour entrer avec succès des données dans le premier champ de formulaire lorsque le formulaire est ouvert, un utilisateur doit d'abord sélectionner un autre champ de formulaire, puis re-sélectionner le premier champ de formulaire puis entrez le texte dans le premier champ de formulaire. Après ce non-sens, l'utilisateur peut sélectionner le champ de formulaire suivant avec Tab ou la souris. Cela doit être effectué une fois à chaque fois que le formulaire est lancé. Le même code VBA sur les événements Button_Click fonctionne très bien.

Spécificité: Quand la forme est d'abord ouvert, aucun des champs de formulaire dans la section Fiche technique de la forme apparaît « Sélectionné ». Lorsqu'un utilisateur commence à entrer des données dans le premier champ de formulaire, le marqueur « nouveau record » (*) se déplace vers la deuxième ligne comme il se doit, mais la première ligne ne montre pas les données d'entrée. Ce comportement est étrange.

Après avoir effectué le champ libre, cliquez sur un autre champ, cliquez sur Retour à la première solution de champ décrit ci-dessus, le montre fiche technique correctement les champs sélectionnés et données qu'elle est entrée.

Toutes les idées? Est-ce un bug? Y at-il une solution facile, comme la réalisation de la solution de contournement de champ de sélection via VBA à forme ouverte?

Toute aide est très appréciée.

Code:

DoCmd.ApplyFilter , "([Contractor].[CheckOutStamp] Is Null)"
DoCmd.GoToRecord , "", acNewRec

Lien vers mdb: https://docs.google.com/leaf?id=0B-jx09cwIQDsYWM2MzMzMDQtYjUzNi00N2E5LWFjYTktNzFiYWYzMDZiYWU1&hl = fr & authkey = CPPmoMEF

Était-ce utile?

La solution

Quelques réflexions:

Essayez de passer OnOpen à OnLoad. Les événements OnOpen peuvent se produire avant que les données est effectivement chargée, alors que OnLoad arrive après cela est déjà fait.

En outre, vous voudrez peut-être simplement définir la propriété Filter du formulaire pour [Contractor].[CheckOutStamp] Is Null et régler le FilterOn Oui, et définir la forme de DataEntry, ce qui signifie qu'il par défaut un nouveau record une fois ouvert, et ne se charge pas de la Les dossiers plus anciens. Une fois qu'il est ouvert, vous pouvez modifier le mode d'édition / add du formulaire à tout ce que vous aimez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top