version 11 (Modifiée)
Trouver dans champ (champCible; valeur) Entier long
Paramètre | Type | Description | |
champCible | Champ | Champ sur lequel effectuer la recherche | |
valeur | Champ | Variable | Valeur à rechercher | |
Valeur trouvée | |||
Résultat | Entier long | Numéro de l'enregistrement trouvé ou | |
-1 si pas d'enregistrement trouvé |
Description
La commande Trouver dans champ retourne le numéro du premier enregistrement dont le champ champCible est égal à la valeur valeur.
Si aucun enregistrement ne correspond au critère, Trouver dans champ retourne -1.
Après l'appel, le paramètre valeur contient la valeur effectivement trouvée. Ce fonctionnement permet d'effectuer des recherches utilisant le caractère "@" sur des champs de type alpha, et pour lesquelles il est nécessaire de récupérer la valeur trouvée.
La commande ne modifie ni la sélection courante, ni l'enregistrement courant.
Cette fonction, très rapide, est particulièrement utile pour prévenir la création de doublons au moment de la saisie de données.
Exemple
Dans une base de données de CD audio, vous souhaitez vérifier, au moment de la saisie d'un nouveau nom de chanteur, si celui-ci n'existe pas déjà dans la base. Comme il peut exister des homonymes, vous ne souhaitez pas toutefois que le champ [Chanteur]Nom soit unique. Pour cela, dans le formulaire d'entrée, vous écrivez dans la méthode objet du champ [Chanteur]Nom :
Si (Evenement formulaire=Sur données modifiées) $EnrgNum:=Trouver dans champ([Chanteur]Nom;[Chanteur]Nom) Si ($EnrgNum # -1) ` Si ce nom a déjà été saisi CONFIRMER("Un chanteur de ce nom existe déjà. Voulez-vous visualiser sa fiche ?";"Oui";"Non") Si (OK=1) ALLER A ENREGISTREMENT([Chanteur];$EnrgNum) Fin de si Fin de si Fin de si