OVH Cloud OVH Cloud

DAO, Database, Recordset et Nothing

1 réponse
Avatar
Jeff
Bonjour à tous

Un exemple de code DAO :

Dim db As Database, mj As Recordset
Set db = CurrentDB()
Set mj = db.OpenRecordset("table1")
....
mj.Close
db.Close

Faut-il plutôt utiliser mj.Close et db.Close ou Set mj = Nothing et Set db =
Nothing ?

Faut-il utiliser les deux (Close et Nothing) ?

Peut-on se passer de la méthode Close et simplement utiliser Nothing ?

Merci d'avance

Cordialement

Jeff

Charte du forum: http://users.skynet.be/mpfa/charte.htm

1 réponse

Avatar
JS
Salut

Je cite l'aide d'access

"Attention Lorsque vous quittez une procédure déclarant
des objets Connection, Database ou Recordset, ces derniers
sont fermés, toutes les transactions en attente sont
révoquées et l'ensemble des modifications en attente
apportées aux données sont perdues."

Donc à priori c'est fait automatiquement...

A propos du nothing:

"Attribuer à une variable objet la valeur Nothing (Set
dbsTemp = Nothing) produit le même résultat que la méthode
Close."

Merci de m'avoir fait découvrir ça, je ne m'y étais jamais
vraiment attardé :)

Enfin je pense qu'il ya quand même une petite différence :
- après un close, les propriétés de l'objet sont toujours
visibles dan sla fenetre variables locales, mais elles
retournent des erreurs evidemment
- après un Nothing, tu ne peux même plus ouvrir l'objet
dans la fenetre var locales.

Je pense que le close est mieux si on compte réutiliser
l'objet dan sla même fonction/sub, mais c'est juste une
hypothese comme ça...
J

-----Message d'origine-----
Bonjour à tous

Un exemple de code DAO :

Dim db As Database, mj As Recordset
Set db = CurrentDB()
Set mj = db.OpenRecordset("table1")
....
mj.Close
db.Close

Faut-il plutôt utiliser mj.Close et db.Close ou Set mj =
Nothing et Set db =

Nothing ?

Faut-il utiliser les deux (Close et Nothing) ?

Peut-on se passer de la méthode Close et simplement
utiliser Nothing ?


Merci d'avance

Cordialement

Jeff

Charte du forum: http://users.skynet.be/mpfa/charte.htm


.