Changements récents - Rechercher:

Tutoriel Filemaker

  1. Structure
  2. Modèles
  3. Opérations diverses
  4. Calculs
  5. Scripts
  6. Privilèges d'accès

Filemaker avancé

  1. Partage des données
  2. Astuces et Exemples
  3. Développement

Règles de nommage

Versions de FileMaker Pro

Liens utiles Contact Commentaires

edit SideBar

Flags de doublons

<==Fonctions texte : exemple ^ Calculs Fonctions dates : exemple==>

Passons aux choses sérieuses et importantes !

Une base de donnée ne doit pas comporter de doublons. Le problème du dédoublonnage est crucial à plus d'un point (ne serait-ce déjà que le fait de définir ce qu'est un doublon). FileMaker Pro nous propose de rechercher les doublons, à l'aide du signe "!" que l'on trouve dans les symboles en mode recherche.

Mais FileMaker Pro nous trouve ET l'original ET le doublon... C'est sympa mais peu utile : comment nettoyer notre table de ses doublons, sans démolir au passage l'original ?

Pour illustrer l'affaire des doublons, prenons comme exemple notre table PER_Personnes : on aimerait voir si il y existe des doublons.

La première difficulté n'est informatique : c'est de définir ce qu'est un doublon... Vaste débat et certain fichiers sont impossibles à dédoublonner, car il n'y a pas de contrôle sur la manière dont les données sont encodées, ce qui ouvre la porte à toutes les fantaisies !
Globalement, un doublon est un enregistrement qui concerne exactement les mêmes caractéristiques qu'un autre enregistrement. Concernant une personne, par exemple, on pourrait imaginer qu'un excellent repère est la date de naissance en plus des nom et prénom. Sauf qu'on n'est pas à l'abri d'une faute d'orthographe dans le nom... Mais faisons ici simple et contentons-nous de dire que dans notre table PER, un doublon est un 2e enregistrement avec le même nom ET le même prénom.

On pourrait donc rechercher avec le symbole "!" toutes les rubriques contenant le même nom, puis le même prénom. Ou bien créer une rubrique qui associe (concatène) le Nom & "" & Prenom (nom espace prénom), puis rechercher sur cette rubrique.
C'est fastidieux, il faut créer encore une rubrique et en plus, nous l'avons vu, le résultat n'est pas très exploitable.

Utilisons la capacité relationnelle de notre base et les liens.

Le rationnel du raisonnement est de dire ceci :

  • Si on lie la table PER avec elle-même, via nom = nom et prénom = prénom, on devrait trouver pour chaque enreg. de PER la liste des enreg. liés via ce lien, qui possèdent les mêmes noms et prénoms.
  • L’ennui est que, bien sûr, il y aura toujours au moins un enreg. lié = lui-même…
    • Nous allons donc exploiter le fait FMP voit d'abord le premier enregistrement lié dans une OT. Donc, notre premier enregistrement, lié à lui-même ou à ses doublons aura le même zkp que le premier enregistrement lié (lui-même).
    • Par contre les suivants (les doublons) n'auront pas le même Zkp que le premier enregistrement lié !!!
  • le lien sera donc :
    • Nom = Nom
    • Prenom = Prenom
  • Un calcul vérifiera si le Zkp (partant de la table liée) de l'enregistrement sur lequel nous sommes est le même que le Zkp du premier enregistrement de la table d'origine... si oui, c'est un lien vers lui-même, il est donc "OK", sinon, il y a bien un ou plusieurs enregistrements liés, mais ce n'est pas le même. C'est donc un "Doublon".

Allons-y. Dans notre fichier exemple, on va donc sur le graphe des liens pour créer une nouvelle occurrence de PER__ qu'on nomme naturellement... per_PER__doublons. On la place bien proprement dans le graphe à droite de PER__

puis on crée les deux liens comme indiqué.

Le lien étant ainsi établi, on peut créer (toujours après s'être placé sur le modèle PER_Tech) notre rubrique z_Doublon, en utilisant la fonction Si(). La structure est simple et ressemble à celle de Cas() : Si ( Test1, Résultat1, sinon Résultat2).

Si (
per_PER__doublons::Zkp ≠ Zkp ; "Doublon" ;
"OK"
)

En français dans le code : si la valeur du Zkp de l'enregistrement lié n'est pas la même que celle de l'enregistrement à l'origine du lien , alors on écrit (n'oublions pas le résultat texte du calcul) le mot écrit entre les guillemets "Doublon", sinon, on écrit OK.

Comme on est ici pour s'amuser, profitons-en, afin de faire joli, pour utiliser une autre fonction de mise en forme de texte : CouleutTexte ( Texte ; Rvb (Rouge, Vert, Bleu)). Cette fonction mettra le "Texte" en couleur selon les composantes rouge, verte et bleue, chacune des valeurs des couleurs s'étendant de 0 à 255.

Voici le calcul :

Placé sur le modèle PER_Fiche, on observe bien le résultat. On peut tester un doublon en dupliquant un enregistrement (à partir du menu FileMaker Pro, "Enregistrements", "Dupliquer"). Mais surtout, afin de faire la chasse aux doublons, il nous suffit d'effectuer une recherche dans la rubrique z_Doublon, sur la chaîne de caractères "doublon" pour les repérer tous, et les éliminer. Les originaux seront tous préservés.
Si vous avez créé un doublon dans notre fichier et que vous effectuez cette recherche, vous devez normalement avoir trois résultats :

  • le doublon que vous avez créé
  • Yvan Dréssamaire qui est en double depuis un bout de temps dans notre base
  • et un enregistrement vide, qui n'a rien à faire là non plus (et qui n'a pas trouvé de zkp identique sur le lien, puisque celui-ci est vide).

On peut les éliminer d'office, sauf que... si nous avons inscrit Dressamaire dans une classe, comme notre vérification de doublons n'était pas active à la création ou à l'inscription, il faut vérifier lequel a été inscrit... Une recherche sur son nom nous montre qu'il a été inscrit deux fois dans la même classe. On peut éliminer le doublon sans souci ni arrières-pensées. Hop !

Attention, comme notre doublon était inscrit dans une classe, il existe donc un enregistrement dans la table INS qui le concerne. Si nous l'éliminons de la table des PERsonnes, nous allons avoir un enregistrement vide dans la table des INScriptions. Il faudra évidemment éliminer aussi cet enregistrement de INS. Ci-dessous le modèle INS_Liste avant et après avoir éliminé le doublon Yvan de la table des PERsonnes :

On peut bien sûr affiner la définition du doublon en rajoutant des critères dans le lien (téléphone, date de naissance, adresse, etc...)

<==Fonctions texte : exemple ^ Calculs Fonctions dates : exemple==>
Éditer - Historique - Imprimer - Changements récents - Rechercher
Page mise à jour le 22 novembre 2017 à 04h40