OVH Cloud OVH Cloud

[Access 2002] - CurrentDB

2 réponses
Avatar
Jeff
Bonjour à tous

Vous semble-t-il raisonable de déclarer de manière
globale une variable type DAO.Database et déclarer au
lancement de l'application Set Db = CurrentDb ?

D'autre part au lieu de :

Dim Db As DAO.Database, Mj As DAO.RecordSet
Set Db = CurrentDb
Set Mj = Db.OpenRecordset(...)

peut-on plus facilement utiliser :

Dim Mj As DAO.RecordSet
Set Mj = CurrentDb.OpenRecordSet(...)

Quel(s) serait(ent) les contre-indications de tels déclarations ?

Merci d'avance

Cordialement

Jeff

2 réponses

Avatar
pgz
Bonjour,

A mon avis comme chaque appel de la méthode CurrentDb crée une nouvelle
instance de la base ouverte, il vaut mieux utiliser une variable de type
DAO.DataBAse:

Dim Db As DAO.Database, Mj As DAO.RecordSet
Set Db = CurrentDb
...

Set db = Nothing
En n'oubliant pas de libérer la varaiable.

Pour la déclaration en variable globale, pourquoi pas, mais il n'est
gébéralement pas trop recommandé de multiplier les variables globales...

Ce n'est qu'un avis.

Bon courage,

--
pgz
_____________________________




Bonjour à tous

Vous semble-t-il raisonable de déclarer de manière
globale une variable type DAO.Database et déclarer au
lancement de l'application Set Db = CurrentDb ?

D'autre part au lieu de :

Dim Db As DAO.Database, Mj As DAO.RecordSet
Set Db = CurrentDb
Set Mj = Db.OpenRecordset(...)

peut-on plus facilement utiliser :

Dim Mj As DAO.RecordSet
Set Mj = CurrentDb.OpenRecordSet(...)

Quel(s) serait(ent) les contre-indications de tels déclarations ?

Merci d'avance

Cordialement

Jeff





Avatar
Jeff
Bonjour

Merci pour la réponse

Le but de la variable globale, c'est surtout pour éviter de déclarer
et donc de créer une variable locale car j'utilise cela dans
bon nombre de procédure et de fonction.

Maintenant je ne sais pas si cela peut porter préjudice à
l'exécution du code et engendrer des problèmes d'exécution
particulier et "dangereux".

Cordialement

Jeff

"pgz" a écrit dans le message de news:

Bonjour,

A mon avis comme chaque appel de la méthode CurrentDb crée une nouvelle
instance de la base ouverte, il vaut mieux utiliser une variable de type
DAO.DataBAse:

Dim Db As DAO.Database, Mj As DAO.RecordSet
Set Db = CurrentDb
...

Set db = Nothing
En n'oubliant pas de libérer la varaiable.

Pour la déclaration en variable globale, pourquoi pas, mais il n'est
gébéralement pas trop recommandé de multiplier les variables globales...

Ce n'est qu'un avis.

Bon courage,

--
pgz
_____________________________




Bonjour à tous

Vous semble-t-il raisonable de déclarer de manière
globale une variable type DAO.Database et déclarer au
lancement de l'application Set Db = CurrentDb ?

D'autre part au lieu de :

Dim Db As DAO.Database, Mj As DAO.RecordSet
Set Db = CurrentDb
Set Mj = Db.OpenRecordset(...)

peut-on plus facilement utiliser :

Dim Mj As DAO.RecordSet
Set Mj = CurrentDb.OpenRecordSet(...)

Quel(s) serait(ent) les contre-indications de tels déclarations ?

Merci d'avance

Cordialement

Jeff