Bonjour Christophe et à tous,
Ton raisonnement de "puriste" est exact.
Tout est question de temps, d'optimisme, de moyens et de besoins.
-Par temps, je veux parler de la durée du contrôle. Une requête comparant des données existantes dans la même table est beaucoup plus rapide que s'il faut aller chercher ces données dans différentes tables pour les analyser avant d'en ressortir un résultat. Ainsi pour faire apparaître le "sens interdit", je suppose que seules sont prises en compte les différences d'années. L'affichage de l'âge lors d'un événement utilise une procédure qui ne prend en compte que la première des dates dans la période saisie (entre xxxx et yyyy), il en faut bien une sans celà il faudrait fournir une fenêtre d'âge. Et si la date n'est pas complète (sans le jour), c'est le milieu de la période précisée qui est pris en compte (le 15 du mois s'il est précisé, sinon le milieu de l'année).
-C'est là que l'on pressent la notion d'optimisme. Lorsque l'on recherche si une mère est trop jeune à la naissance de son enfant, si l'on est optimiste, en cas de date incomplète on considèrera le 1 du mois ou le 1 janvier de l'année pour sa naissance, et de 28 au 31 (selon le mois) ou le 31 décembre de l'année pour la naissance de l'enfant. En comparaison pessimiste, ce sera l'inverse.
-Pour les moyens, il y a ceux dont on dispose pour obtenir un résultat, la structure de la base, la précision des informations fournies, et ceux que l'on veut ou peut mettre pour y arriver (l'énergie et le temps de programmer).
-Par besoins, j'entend la précison que l'on estime nécessaire, en relation avec l'importance de cette fonction et des conséquences de ses résultats.
J'ai actuellement revu cette fonction pour y ajouter:
-le contrôle de l'écart entre la première et la dernière naissance d'enfants d'une femme, en prenant comme valeur maxi âge maxi - âge min pour avoir un enfant. J'ai en effet constaté que le contrôle sur l'âge maxi ne peut pas être efficace si la la date de naissance de la mère est inconnu. Cà m'a permis de détecter que dans une famille, les 11 enfants nés en 45 ans, ne pouvaient avoir la même mère.
-les naissances plus de 270 jours après le décès du père.
-les naissances après le décès de la mère.
Je revois cette procédure pour adopter une vue plus optimiste lors de la détection des erreurs (choisir les dates qui minimisent les erreurs). Mais elle fait déjà 700 lignes...
Si on veut faire mieux, c'est à la structure de la base qu'il faudrait s'attaquer, en particulier en mémorisant séparément pour chaque événement, les types des mots-clés utilisés.
A+
André