2013-03-27 1 views
0

Je suis aux prises avec un déclenchement accidentel des règles de validation lors de l'activation d'un sous-formulaire.MS Access: Empêcher la validation du sous-formulaire

Dans MS Access, j'ai un formulaire avec des données sur un patient, qui contient un sous-formulaire avec un enregistrement d'un dispositif médical qui appartient à ce patient. La table des patients a un champ [ID] et la table des dispositifs médicaux a un champ [PatientID]. La table des dispositifs médicaux a une relation un-à-plusieurs avec la table des patients (un patient peut avoir plusieurs dispositifs médicaux).

Lorsque le formulaire contenant le sous-formulaire est ouvert, la méthode Form_Load() du sous-formulaire remplit certains champs tels que la date actuelle.

Le problème est le suivant: dès que le contrôle du sous-formulaire est activé (par tabulation ou clic), les règles de validation de la table des dispositifs médicaux sont déclenchées - une fois et une seule fois. Après avoir ignoré le message d'erreur de validation, je peux basculer entre les contrôles sur le formulaire parent et le sous-formulaire sans problème.

Lorsque je supprime le code de la méthode Form_Load(), je peux activer les contrôles du sous-formulaire sans déclencher de validation.

Le formulaire parent et le sous-formulaire sont tous deux liés à des tables et non à des requêtes.

Comment puis-je remplir des données dans le sous-formulaire en utilisant VBA sans déclencher la validation?

Répondre

1

Je vous suggère d'utiliser des valeurs par défaut, pas du texte réel. Les valeurs par défaut ne deviennent "réelles" que lorsqu'un autre champ est terminé.

+0

Merci pour la suggestion! Pour référence future: Il n'est pas possible d'utiliser des fonctions définies par l'utilisateur pour la valeur par défaut d'un champ de table; mais il est possible d'utiliser une fonction VBA définie par l'utilisateur pour la valeur par défaut d'un formulaire, c'est donc ce que j'ai fini par faire. – bovender