Recordset2.FindFirst, méthode (DAO)
S’applique à : Access 2013, Office 2013
Localise le premier enregistrement dans un objet Recordset de type feuille de réponse dynamique ou capture instantanée qui remplit les critères spécifiés et rend l’enregistrement actif (espaces de travail Microsoft Access uniquement).
Syntaxe
expression . FindFirst(Criteria)
Expression Variable qui représente un objet Recordset2 .
Paramètres
Nom |
Obligatoire/facultatif |
Type de données |
Description |
---|---|---|---|
Critères |
Obligatoire |
Chaîne |
Données de type String utilisées pour localiser l'enregistrement. S'apparente à la clause WHERE d'une instruction SQL sans toutefois le mot WHERE. |
Remarques
Si vous voulez inclure tous les enregistrements dans votre recherche (et pas seulement ceux qui répondent à une condition spécifique), utilisez la méthode Move pour passer d'un enregistrement à un autre. Pour localiser un enregistrement dans un objet Recordset de type table, utilisez la méthode Seek.
Si un enregistrement correspondant aux critères n'est pas localisé, le pointeur d'enregistrement actif est inconnu et la propriété NoMatch est définie sur True. Si le recordset contient plusieurs enregistrements correspondant aux critères, FindFirst localise la première occurrence, FindNext localise l'occurrence suivante, et ainsi de suite.
Chacune des méthodes Find commence sa recherche à partir de l’emplacement et dans le sens spécifiés dans le tableau suivant.
Méthode Find |
Point de départ de la recherche |
Sens de la recherche |
---|---|---|
FindFirst |
Début du jeu d'enregistrements |
Fin du jeu d’enregistrements |
FindLast |
Fin du jeu d'enregistrements |
Début du jeu d’enregistrements |
FindNext |
Enregistrement actif |
Fin du jeu d'enregistrements |
FindPrevious |
Enregistrement actif |
Début du jeu d'enregistrements |
L'utilisation de l'une des méthodes Find n'équivaut pas à utiliser une méthode Move, qui ne fait que rendre actif l'enregistrement initial, final, suivant ou précédent sans spécifier de condition. Vous pouvez faire suivre une opération Find d'une opération Move.
Vérifiez toujours la valeur de la propriété NoMatch pour déterminer si l'opération Find a abouti. Si la recherche aboutit, NoMatch a la valeur False. Si elle échoue, NoMatch a la valeur True et l'enregistrement actif n'est pas défini. Dans ce cas, vous devez repositionner le pointeur d'enregistrement actif sur un enregistrement valide.
L'utilisation des méthodes Find avec les recordsets ODBC connectés au moteur de base de données Microsoft Access peut s'avérer inefficace. Il se peut que la reformulation de vos critères pour localiser un enregistrement spécifique soit plus rapide, surtout si vous travaillez avec des recordsets volumineux.
Lorsque vous utilisez des bases de données ODBC connectées au moteur de base de données Microsoft Access et de grands objets Recordset de type feuille de réponse dynamique, il se peut que l'utilisation des méthodes Find ou des propriétés Sort ou Filter soit lente. Pour améliorer les performances, utilisez des requêtes SQL avec des clauses personnalisées ORDER BY ou WHERE, des requêtes Paramètre ou des objets QueryDef qui extraient des enregistrements indexés spécifiques.
Il est recommandé d'utiliser le format de date des États-Unis (mois-jour-année) lorsque vous effectuez des recherches dans des champs contenant des dates, même si vous n'utilisez pas la version américaine du moteur de base de données Microsoft Access ; à défaut, les données risquent d'être introuvables. Vous pouvez utiliser la fonction Format de Visual Basic pour convertir la date. Par exemple :
rstEmployees.FindFirst "HireDate > #" _
& Format(mydate, 'm-d-yy' ) & "#"
Si les critères se composent d’une chaîne concaténée comportant une valeur non entière, et que les paramètres système spécifient un caractère décimal d’un format différent de celui des États-Unis, tel qu’une virgule (par exemple, strSQL = "PRICE > " & lngPrice, et lngPrice = 125,50), une erreur se produit lorsque vous tentez d’appeler la méthode. Il s’agit, car lors de la concaténation, le nombre est converti en une chaîne à l’aide du caractère décimal par défaut de votre système et Microsoft Access SQL accepte uniquement des caractères décimaux américains.
Remarque
- Pour des performances optimales, les critères* doivent être au format « valeur de champ = » où champ est un champ indexé dans la table de base sous-jacente, ou « champ COMME préfixe » où champ est un champ indexé dans la table de base sous-jacente et préfixe est une chaîne de recherche de préfixe (par exemple, « ART* »).
- En règle générale, pour des types de recherches équivalents, la méthode Seek offre de meilleures performances que la méthode Find. Cela suppose que les objets Recordset de type table peuvent à eux seuls répondre à vos besoins.