2010-03-06 9 views
1

Mon tableau de dossiers doivent satisfaire à deux conditions:Comment puis-je appliquer plusieurs textes de validation de table à la même table dans Access?

  • Les entrées du champ ClosingDate ne peut pas correspondre à une date antérieure à ce qui est dans le domaine RequestDate.
  • Une valeur BidBond peut être fournie si, et seulement si, le champ Type de l'enregistrement est réglé sur "Tender"

Les deux règles résultant de validation multi-terrain sont:

1. ([ClosingDate] Is Null) Or ([ClosingDate] >= [RequestDate]) 
2. ([Type]="Tender") Or ([BidBond] Is Null) 
  • Si La règle 1 est enfreinte, le texte de validation doit être "La date de clôture ne peut pas être antérieure à la demande." "

  • Si les données entrées tombent en faute de Règle 2, "Les liens de soumission ne peuvent être affectés qu'aux appels d'offres. "devrait saluer l'utilisateur.

Je sais que je peux combiner les deux règles de validation avec une clause And, mais comment pourrais-je spécifier deux textes de validation différents en fonction de la règle de validation est violée?

Répondre

2

Je ne vois pas comment faire ce que vous voulez avec des règles de validation au niveau de la table.Je vais plutôt suggérer d'utiliser des formulaires pour l'édition de données.Les formulaires vous donnent des options plus souples pour gérer les règles complexes. événements (tels que Avant la mise à jour et Après la mise à jour) associés à des champs de formulaire individuels ou des événements au niveau du formulaire niveau.

Une possibilité que votre question n'a pas abordée est ce qui devrait arriver si les deux vos règles de validation sont enfreintes dans le même enregistrement. Votre problème de texte de validation devient encore plus compliqué. Je ne tenterais pas cela avec des règles de validation de table.

Par ailleurs, les types Access MVP recommandent de limiter les interactions des utilisateurs aux formulaires. Les utilisateurs ne devraient même jamais voir les vues de feuille de données des tableaux ou des requêtes.

+0

@HansUp: Je pense également que les utilisateurs ne devraient pas voir les tables ou les requêtes. Cependant, je préférerais que la validation de la table soit la clé de la validation du formulaire plutôt que d'utiliser une solution de «pansement» en demandant au formulaire d'effectuer une vérification de validation indépendante. – Zaid

+0

Aucun argument sur ce point, Zaid. Mais je ne vois toujours pas comment le faire comme tu veux ... on peut le faire avec un formulaire. – HansUp

+3

@Zaid: vos instincts sont bons, mais tout simplement pas possible avec un back-up Jet/ACE jusqu'à A2007. A partir de A2010, il y a des macros de données au niveau de la table, qui sonnent icky (les "macros" ne sont pas les plus expérimentées que les développeurs d'Access sont susceptibles de respecter), mais elles sont incroyablement puissantes. cela s'appliquera à n'importe quel utilisateur de la table. Mais avant A2010, cela peut seulement être fait au niveau de l'application, pas au niveau du moteur. –

Questions connexes