Être d'accord avec Capricorn1 et dqmq, toutefois j'ajouterai mes 2 cents en valeur aussi bien.
1. Car le dqmd mentionné, vous peut employer la règle de validation de commandes, mais parfois des utilisateurs voudrait pouvoir compléter des commandes dans leur ordre preferred, ainsi vous pourriez envisager d'employer l'événement et juste le popup de sortie de commandes un avertissement quand ils sortent la commande qui indique que la commande est exigée avant que le disque puisse être sauvé.
2. Le code de Capricorn1 vérifiera tous les champs required mais ne te donne pas un message très spécifique. Puisque votre forme est non liée, vous n'aurez pas probablement construit dans des boutons de navigation (je pense que c'est une bonne chose). Je généralement fournis sauf et décommande des boutons sur chacune de mes formes. Avec le bouton de sauvegarde, vous pouvez faire une de deux choses :
a. Vous pouvez faire vos essais de validation dans l'événement de clic du bouton, vérifiant chacun des champs qui sont exigés pour s'assurer qu'ils ont une entrée valide. Sinon, afficher un message spécifique de champ, et placer le foyer de nouveau à la commande appropriée.
b. Vous pouvez désactiver le bouton de sauvegarde jusqu'à ce que tous les champs required soient complétés. Pour faire ceci, vous devriez employer l'événement de sortie ou d'AfterUpdate de chacun des commandes et du code d'appel comme Cap1 fourni pour activer/le bouton de commande basé sur les valeurs dans tous les domaines. Vers le bas le latéral de cette méthode est elles doit rechercher autour sur la forme pour identifier qui des champs required manque des données. J'ai, quand le client l'a voulu, installe mes commandes required (des boîtes à textes et des comboboxes) avec un format conditionnel qui est une couleur différente que la norme. Je fais ceci avec une fonction (voir ci-dessous) et en plaçant la condition de commandes comme la « expression est » avec un paramètre au lequel ressemble : fnRequiredButEmpty (formes ! formname.controlname)
Si vous faites ceci et placez la propriété de fond à une couleur légère (j'emploie habituellement un jaune pâle), alors l'utilisateur peut immédiatement voir quelles commandes sont exigées, et lesquels n'ont pas été complétés. Vous pourriez modifier la fonction pour vérifier la valeur spécifique pour des commandes spécifiques au lieu juste de l'essai pour voir si la longueur > 0, mais ceci te donnera une idée.
Fonction privée fnRequiredButEmpty (CTRL comme commande) comme booléen
RequiredButEmpty = (Len (Ctrl.Value et "") = 0)
Fonction de fin