Recordset et 1bsolutePosition

Résolu
Calade - 22 avril 2014 à 14:24
 Calade - 23 avril 2014 à 08:08
Bonjour,

J'ai une fonction générique de recherche dans un Recordset. Celle-ci effectue la recherche et en cas de recherche infructueuse repositionne le recordset à un endroit prédéfini dans les paramètres.

Jusqu'à récemment j'effectuais la recherche sur le recordset lui-même passé en paramètre et tout marchait nickel à ceci près qu'il fallait le gérer dans l'évènement RowCol_Change() de l'appli appelante.

Pour éviter ce problème (et donc optimiser le code), j'ai modifié ma fonction en travaillant sur un clone ne générant donc plus cet évènement. Et en cas de recherche fructueuse, je synchronise le recordset originel sur son clone à l'aide de l'instruction:

RecorsetOriginel.Absoluteposition = RecordsetClone.AbsolutePosition

mais apparemment ils ne semblent pas équivalents.
Quelqu'un pourrait-il me confirmer (ou non cela) si cela est vrai pourrait-il m'indiquer la façon d'éviter de générer cet évènement. Je peux bien sur tester si je suis en pleine recherche (c'est ce que je faisais) mais ce n'est sans doute pas très efficient).

Merci d'avance pour votre aide.

3 réponses

NHenry
Messages postés
14943
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
3 juillet 2022
161
22 avril 2014 à 20:46
Bonsoir,

Pourquoi ne pas utiliser une requête SQL qui ferait le filtrage ?
0
Bonjour et merci de ta réponse,

Le n'utilise pas de requête SQL, car cette fonction est une fonction générique qui me sert dans toutes mes applis, quelle que soit le contenu du recordset dans lequel je fais des recherches.

En Sql, il me faudrait multiplier les requêtes selon toutes les tables/BD que je possède.
0
Fnalement j'ai trouvé où était le problème.
L'instruction Clone ne répercute pas la propriété SORT du recordset source vers la cible, d'où ce décalage.
Maintenant ça marche.
0