Fermer recordset avant sa reutiisation ?

Le
LeGoldo
Travailleurs du dimanche (et des autres jours ,-), bonsoir,

Dans une fonction, je crée un recordset que j'alimente plusieurs fois
de suite, après utilisation fonctionnelle, par un

db.openrecordset( "SELECT * FROM Ma_Table WHERE [Mon_Champ] = " &
sMonCritère & ";" )

sMonCritère étant différent à chaque appel.

Dois-je fermer mon recordset entre chaque alimentation ?
Quelles conséquences si je le fais ou pas ?

Subsidairement, serait-il plus rentable, en terme d'accès et de
gestion mémoire, d'utiliser directement un filtre sur la table sachant
que les enregistrements ne sont pas modifiés ?

Merci de vos réponses et
à vous lire !

Cordialement,

LeGoldo
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Argyronet
Le #17869061
Bonjour,

Il faut fermer le Recordset et le mettre à Nothing.
Vous pouvez aussi créer une requête filtrée où vous paramétrez dynamiquement
la propriété SQL de l'objet QueryDef sollicité.
Votre filtre deveint alors dynamique et il n'y a plus besoin de Recordset.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442 )
Empaquetage avec Runtime 2007 :
http://argyronet.developpez.com/office/access/runtime/2007/


"LeGoldo" a écrit :

Travailleurs du dimanche (et des autres jours ,-), bonsoir,

Dans une fonction, je crée un recordset que j'alimente plusieurs fois
de suite, après utilisation fonctionnelle, par un

db.openrecordset( "SELECT * FROM Ma_Table WHERE [Mon_Champ] = " &
sMonCritère & ";" )

sMonCritère étant différent à chaque appel.

Dois-je fermer mon recordset entre chaque alimentation ?
Quelles conséquences si je le fais ou pas ?

Subsidairement, serait-il plus rentable, en terme d'accès et de
gestion mémoire, d'utiliser directement un filtre sur la table sachant
que les enregistrements ne sont pas modifiés ?

Merci de vos réponses et ...
.... à vous lire !

Cordialement,

LeGoldo



LeGoldo
Le #17869591
Bonjour,

Il faut fermer le Recordset et le mettre à Nothing.


Ayant oublié de dire que le recordset est alimenté dans une boucle
incluse dans la fonction qui le crée,
est-ce bien raisonnable ?-)

Vous pouvez aussi créer une requête filtrée où vous paramétrez dynamiquement
la propriété SQL de l'objet QueryDef sollicité.
Votre filtre deveint alors dynamique et il n'y a plus besoin de Recordset .


J'ai aussi oublié de préciser que le recorset ne ne sert qu'à une
lecture séquencielle,
... ?-)

A+

LeGoldo
Argyronet
Le #17870071
Oui, c'est sûr, si vous ne dîtes pas tout ;o
Je pense qu'il faut aborder la problématique autrement.
Donc vous allez avoir un jeu d'enregistrements avec la correspondance de
l'ensemble des critères que vous pouvez passer en bloc avec un IN() par
exemple...
Vous créez alors dynamiquement et comme dit précédemment une requête fondée
sur ces critères...
Vous n'aurez qu'à ouvrir le RS à ce moment là et consulter les
enregistrements comme vous l'entendez.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN 2742982442 )
Empaquetage avec Runtime 2007 :
http://argyronet.developpez.com/office/access/runtime/2007/


"LeGoldo" a écrit :

Bonjour,

> Il faut fermer le Recordset et le mettre à Nothing.
Ayant oublié de dire que le recordset est alimenté dans une boucle
incluse dans la fonction qui le crée,
est-ce bien raisonnable ?-)

> Vous pouvez aussi créer une requête filtrée où vous paramétrez dynamiquement
> la propriété SQL de l'objet QueryDef sollicité.
> Votre filtre deveint alors dynamique et il n'y a plus besoin de Recordset..
J'ai aussi oublié de préciser que le recorset ne ne sert qu'à une
lecture séquencielle,
.... ?-)

A+

LeGoldo



Publicité
Poster une réponse
Anonyme