Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai perdu
les
réponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoin
déclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en déclarer
une
en globale et
l'utiliser tout au long des différentes fonctions et procédures exécutées
dans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au démarrage
et
la cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai perdu
les
réponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoin
déclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en déclarer
une
en globale et
l'utiliser tout au long des différentes fonctions et procédures exécutées
dans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au démarrage
et
la cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai perdu
les
réponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoin
déclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en déclarer
une
en globale et
l'utiliser tout au long des différentes fonctions et procédures exécutées
dans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au démarrage
et
la cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai perdu
les
réponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoin
déclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en déclarer
une
en globale et
l'utiliser tout au long des différentes fonctions et procédures exécutées
dans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au démarrage
et
la cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai perdu
les
réponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoin
déclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en déclarer
une
en globale et
l'utiliser tout au long des différentes fonctions et procédures exécutées
dans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au démarrage
et
la cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai perdu
les
réponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoin
déclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en déclarer
une
en globale et
l'utiliser tout au long des différentes fonctions et procédures exécutées
dans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au démarrage
et
la cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Rebonjour,
Petit complément à ma question :
Que pensez de la méthode suivante :
Au lieu de :
Dim db As DAO.Database, rst As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("...")
Faire :
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("...")
Est-ce conseillé ?
Pour information, je suis sous Access 2002 (j'avais omis de le précisé).
Merci
Cordialement
"Jeff" a écrit dans le message de
news:ci8r0c$q73$Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai perdu
lesréponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoindéclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en déclarer
uneen globale et
l'utiliser tout au long des différentes fonctions et procédures exécutées
dans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au démarrage
etla cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Rebonjour,
Petit complément à ma question :
Que pensez de la méthode suivante :
Au lieu de :
Dim db As DAO.Database, rst As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("...")
Faire :
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("...")
Est-ce conseillé ?
Pour information, je suis sous Access 2002 (j'avais omis de le précisé).
Merci
Cordialement
"Jeff" <jf@jf.com> a écrit dans le message de
news:ci8r0c$q73$1@news-reader1.wanadoo.fr...
Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai perdu
les
réponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoin
déclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en déclarer
une
en globale et
l'utiliser tout au long des différentes fonctions et procédures exécutées
dans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au démarrage
et
la cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Rebonjour,
Petit complément à ma question :
Que pensez de la méthode suivante :
Au lieu de :
Dim db As DAO.Database, rst As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("...")
Faire :
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("...")
Est-ce conseillé ?
Pour information, je suis sous Access 2002 (j'avais omis de le précisé).
Merci
Cordialement
"Jeff" a écrit dans le message de
news:ci8r0c$q73$Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai perdu
lesréponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoindéclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en déclarer
uneen globale et
l'utiliser tout au long des différentes fonctions et procédures exécutées
dans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au démarrage
etla cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Rebonjour,
Petit complément à ma question :
Que pensez de la méthode suivante :
Au lieu de :
Dim db As DAO.Database, rst As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("...")
Faire :
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("...")
Est-ce conseillé ?
Pour information, je suis sous Access 2002 (j'avais omis de le précisé).
Merci
Cordialement
"Jeff" a écrit dans le message de
news:ci8r0c$q73$Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai perdu
lesréponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoindéclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en déclarer
uneen globale et
l'utiliser tout au long des différentes fonctions et procédures
exécutées
dans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au
démarrage
etla cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Rebonjour,
Petit complément à ma question :
Que pensez de la méthode suivante :
Au lieu de :
Dim db As DAO.Database, rst As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("...")
Faire :
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("...")
Est-ce conseillé ?
Pour information, je suis sous Access 2002 (j'avais omis de le précisé).
Merci
Cordialement
"Jeff" <jf@jf.com> a écrit dans le message de
news:ci8r0c$q73$1@news-reader1.wanadoo.fr...
Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai perdu
les
réponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoin
déclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en déclarer
une
en globale et
l'utiliser tout au long des différentes fonctions et procédures
exécutées
dans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au
démarrage
et
la cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Rebonjour,
Petit complément à ma question :
Que pensez de la méthode suivante :
Au lieu de :
Dim db As DAO.Database, rst As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("...")
Faire :
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("...")
Est-ce conseillé ?
Pour information, je suis sous Access 2002 (j'avais omis de le précisé).
Merci
Cordialement
"Jeff" a écrit dans le message de
news:ci8r0c$q73$Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai perdu
lesréponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoindéclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en déclarer
uneen globale et
l'utiliser tout au long des différentes fonctions et procédures
exécutées
dans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au
démarrage
etla cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
bonjour
justement à partir de access 2000 il y a risque de conflit (de bordel)
entre ADO et DAO, donc il est plus mieux de préciser
DAO.Recordset
et il est préferable de mettre currentdb dans une variable
donc ton premier jet était bien
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Jeff" a écrit dans le message de
news:ci8sil$tjn$
Rebonjour,
Petit complément à ma question :
Que pensez de la méthode suivante :
Au lieu de :
Dim db As DAO.Database, rst As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("...")
Faire :
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("...")
Est-ce conseillé ?
Pour information, je suis sous Access 2002 (j'avais omis de le précisé).
Merci
Cordialement
"Jeff" a écrit dans le message de
news:ci8r0c$q73$Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai
perdu
lesréponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoindéclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en
déclarer
uneen globale et
l'utiliser tout au long des différentes fonctions et procédures
exécutées
dans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au
démarrage
etla cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
bonjour
justement à partir de access 2000 il y a risque de conflit (de bordel)
entre ADO et DAO, donc il est plus mieux de préciser
DAO.Recordset
et il est préferable de mettre currentdb dans une variable
donc ton premier jet était bien
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Jeff" <jf@jf.com> a écrit dans le message de
news:ci8sil$tjn$1@news-reader1.wanadoo.fr...
Rebonjour,
Petit complément à ma question :
Que pensez de la méthode suivante :
Au lieu de :
Dim db As DAO.Database, rst As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("...")
Faire :
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("...")
Est-ce conseillé ?
Pour information, je suis sous Access 2002 (j'avais omis de le précisé).
Merci
Cordialement
"Jeff" <jf@jf.com> a écrit dans le message de
news:ci8r0c$q73$1@news-reader1.wanadoo.fr...
Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai
perdu
les
réponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoin
déclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en
déclarer
une
en globale et
l'utiliser tout au long des différentes fonctions et procédures
exécutées
dans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au
démarrage
et
la cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
bonjour
justement à partir de access 2000 il y a risque de conflit (de bordel)
entre ADO et DAO, donc il est plus mieux de préciser
DAO.Recordset
et il est préferable de mettre currentdb dans une variable
donc ton premier jet était bien
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Jeff" a écrit dans le message de
news:ci8sil$tjn$
Rebonjour,
Petit complément à ma question :
Que pensez de la méthode suivante :
Au lieu de :
Dim db As DAO.Database, rst As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("...")
Faire :
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("...")
Est-ce conseillé ?
Pour information, je suis sous Access 2002 (j'avais omis de le précisé).
Merci
Cordialement
"Jeff" a écrit dans le message de
news:ci8r0c$q73$Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai
perdu
lesréponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoindéclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en
déclarer
uneen globale et
l'utiliser tout au long des différentes fonctions et procédures
exécutées
dans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au
démarrage
etla cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Bonjour jeff.
comme on dit, tu peux le faire !
Sauf qu'il ne faut pas oublier que:
- CurrentDb n'est pas un objet unique
- Currentdb ouvre obligatoirement un autre objet database chaque fois
qu'on
l'utilise
- Il faut fermer le currentdb par CurrentDb.Close quand on a terminé.
- Nothing ne peut pas s'appliquer à currentdb
quand on applique ça, il n'y a aucun avantage à partir directement sur le
currentdb.
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Tdf As DAO.TableDef
doivent être placés dans les déclaratives du formulaire et non dans la
procédure pour éviter de le déclarer plusieurs fois (sauf exception).
Dans la procédure Form_Load tu places cette ligne :
Set db = CurrentDb
Dans la procédure Form_UnLoad tu places cette ligne :
Set db = Nothing
de cette façon tu n'oublieras pas de déclarer et fermer ton objet Db.
ça va mieux ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jeff" a écrit dans le message de
news:ci8sil$tjn$Rebonjour,
Petit complément à ma question :
Que pensez de la méthode suivante :
Au lieu de :
Dim db As DAO.Database, rst As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("...")
Faire :
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("...")
Est-ce conseillé ?
Pour information, je suis sous Access 2002 (j'avais omis de le précisé).
Merci
Cordialement
"Jeff" a écrit dans le message de
news:ci8r0c$q73$Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai
perdu
lesréponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoindéclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en
déclarer
uneen globale et
l'utiliser tout au long des différentes fonctions et procédures
exécutéesdans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au
démarrageetla cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Bonjour jeff.
comme on dit, tu peux le faire !
Sauf qu'il ne faut pas oublier que:
- CurrentDb n'est pas un objet unique
- Currentdb ouvre obligatoirement un autre objet database chaque fois
qu'on
l'utilise
- Il faut fermer le currentdb par CurrentDb.Close quand on a terminé.
- Nothing ne peut pas s'appliquer à currentdb
quand on applique ça, il n'y a aucun avantage à partir directement sur le
currentdb.
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Tdf As DAO.TableDef
doivent être placés dans les déclaratives du formulaire et non dans la
procédure pour éviter de le déclarer plusieurs fois (sauf exception).
Dans la procédure Form_Load tu places cette ligne :
Set db = CurrentDb
Dans la procédure Form_UnLoad tu places cette ligne :
Set db = Nothing
de cette façon tu n'oublieras pas de déclarer et fermer ton objet Db.
ça va mieux ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jeff" <jf@jf.com> a écrit dans le message de
news:ci8sil$tjn$1@news-reader1.wanadoo.fr...
Rebonjour,
Petit complément à ma question :
Que pensez de la méthode suivante :
Au lieu de :
Dim db As DAO.Database, rst As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("...")
Faire :
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("...")
Est-ce conseillé ?
Pour information, je suis sous Access 2002 (j'avais omis de le précisé).
Merci
Cordialement
"Jeff" <jf@jf.com> a écrit dans le message de
news:ci8r0c$q73$1@news-reader1.wanadoo.fr...
Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai
perdu
les
réponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoin
déclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en
déclarer
une
en globale et
l'utiliser tout au long des différentes fonctions et procédures
exécutées
dans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au
démarrage
et
la cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Bonjour jeff.
comme on dit, tu peux le faire !
Sauf qu'il ne faut pas oublier que:
- CurrentDb n'est pas un objet unique
- Currentdb ouvre obligatoirement un autre objet database chaque fois
qu'on
l'utilise
- Il faut fermer le currentdb par CurrentDb.Close quand on a terminé.
- Nothing ne peut pas s'appliquer à currentdb
quand on applique ça, il n'y a aucun avantage à partir directement sur le
currentdb.
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim Tdf As DAO.TableDef
doivent être placés dans les déclaratives du formulaire et non dans la
procédure pour éviter de le déclarer plusieurs fois (sauf exception).
Dans la procédure Form_Load tu places cette ligne :
Set db = CurrentDb
Dans la procédure Form_UnLoad tu places cette ligne :
Set db = Nothing
de cette façon tu n'oublieras pas de déclarer et fermer ton objet Db.
ça va mieux ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jeff" a écrit dans le message de
news:ci8sil$tjn$Rebonjour,
Petit complément à ma question :
Que pensez de la méthode suivante :
Au lieu de :
Dim db As DAO.Database, rst As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("...")
Faire :
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("...")
Est-ce conseillé ?
Pour information, je suis sous Access 2002 (j'avais omis de le précisé).
Merci
Cordialement
"Jeff" a écrit dans le message de
news:ci8r0c$q73$Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai
perdu
lesréponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoindéclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en
déclarer
uneen globale et
l'utiliser tout au long des différentes fonctions et procédures
exécutéesdans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au
démarrageetla cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Merci pour la réponse
qui est un peu plus concréte que celle de mon corrélégionnaire :o)))
Merci pour la réponse
Cordialement
Jeff
"Pierre CFI [mvp]" a écrit dans le message de
news:bonjour
justement à partir de access 2000 il y a risque de conflit (de bordel)
entre ADO et DAO, donc il est plus mieux de préciserDAO.Recordset
et il est préferable de mettre currentdb dans une variable
donc ton premier jet était bien
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Jeff" a écrit dans le message de
news:ci8sil$tjn$Rebonjour,
Petit complément à ma question :
Que pensez de la méthode suivante :
Au lieu de :
Dim db As DAO.Database, rst As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("...")
Faire :
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("...")
Est-ce conseillé ?
Pour information, je suis sous Access 2002 (j'avais omis de le précisé).
Merci
Cordialement
"Jeff" a écrit dans le message de
news:ci8r0c$q73$Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai
perdulesréponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoindéclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en
déclareruneen globale et
l'utiliser tout au long des différentes fonctions et procédures
exécutéesdans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au
démarrageetla cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Merci pour la réponse
qui est un peu plus concréte que celle de mon corrélégionnaire :o)))
Merci pour la réponse
Cordialement
Jeff
"Pierre CFI [mvp]" <XXX_pierresalaun@aol.com> a écrit dans le message de
news:eSePsrvmEHA.3868@TK2MSFTNGP11.phx.gbl...
bonjour
justement à partir de access 2000 il y a risque de conflit (de bordel)
entre ADO et DAO, donc il est plus mieux de préciser
DAO.Recordset
et il est préferable de mettre currentdb dans une variable
donc ton premier jet était bien
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Jeff" <jf@jf.com> a écrit dans le message de
news:ci8sil$tjn$1@news-reader1.wanadoo.fr...
Rebonjour,
Petit complément à ma question :
Que pensez de la méthode suivante :
Au lieu de :
Dim db As DAO.Database, rst As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("...")
Faire :
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("...")
Est-ce conseillé ?
Pour information, je suis sous Access 2002 (j'avais omis de le précisé).
Merci
Cordialement
"Jeff" <jf@jf.com> a écrit dans le message de
news:ci8r0c$q73$1@news-reader1.wanadoo.fr...
Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai
perdu
les
réponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoin
déclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en
déclarer
une
en globale et
l'utiliser tout au long des différentes fonctions et procédures
exécutées
dans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au
démarrage
et
la cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Merci pour la réponse
qui est un peu plus concréte que celle de mon corrélégionnaire :o)))
Merci pour la réponse
Cordialement
Jeff
"Pierre CFI [mvp]" a écrit dans le message de
news:bonjour
justement à partir de access 2000 il y a risque de conflit (de bordel)
entre ADO et DAO, donc il est plus mieux de préciserDAO.Recordset
et il est préferable de mettre currentdb dans une variable
donc ton premier jet était bien
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Jeff" a écrit dans le message de
news:ci8sil$tjn$Rebonjour,
Petit complément à ma question :
Que pensez de la méthode suivante :
Au lieu de :
Dim db As DAO.Database, rst As DAO.Recordset
Set db = CurrentDb()
Set rst = db.OpenRecordset("...")
Faire :
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("...")
Est-ce conseillé ?
Pour information, je suis sous Access 2002 (j'avais omis de le précisé).
Merci
Cordialement
"Jeff" a écrit dans le message de
news:ci8r0c$q73$Bonjour à tous
Avant toute chose, je pense avoir déjà posé la question mais j'ai
perdulesréponses ;-)
Donc si tel est le cas, ne criez pas trop fort !!
Voici la question: à votre avis, faut-il à chaque fois que l'on en a
besoindéclarer une variable locale
Dim db As DAO.Database ou bien peut-on (est-ce conseillé ?) en
déclareruneen globale et
l'utiliser tout au long des différentes fonctions et procédures
exécutéesdans une application ?
Je ne cherche a priori aucune optimisation particulière si ce n'est de
n'avoir qu'une seule fois à déclarer
ma variable et de pouvoir l'utiliser sans avoir à faire à nouveau les
déclarations.
Bien sur dans le cas d'une utilisation globale, je l'affecte au
démarrageetla cloture à la fermeture de la base
par un Set db = Nothing (db.Close ne suffisant pas, n'est-ce pas ?)
Merci d'avance pour vos réponses
Cordialement
Jeff
Merci Raymond pour tes explications.
Petite précision :
Set db = CurrentDb
...
Set db = Nothing
Ici pas de db.Close donc ? ce n'est pas nécessaire ?
Pour un objet recordset (ou autre), faut-il obligatoirement un Set rst > Nothing ou dans ce cas le .Close suffit ?
Merci
Cordialement
Merci Raymond pour tes explications.
Petite précision :
Set db = CurrentDb
...
Set db = Nothing
Ici pas de db.Close donc ? ce n'est pas nécessaire ?
Pour un objet recordset (ou autre), faut-il obligatoirement un Set rst > Nothing ou dans ce cas le .Close suffit ?
Merci
Cordialement
Merci Raymond pour tes explications.
Petite précision :
Set db = CurrentDb
...
Set db = Nothing
Ici pas de db.Close donc ? ce n'est pas nécessaire ?
Pour un objet recordset (ou autre), faut-il obligatoirement un Set rst > Nothing ou dans ce cas le .Close suffit ?
Merci
Cordialement
L'utilisation de Nothing évite d'utiliser Close.
l'utilisation de close n'évite pas de faire un Nothing.
donc faire un nothing obligatoirement et on peut se passer du close. si on
veut faire un close bien le mettre avant le nothing.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jeff" a écrit dans le message de
news:ci8trl$970$Merci Raymond pour tes explications.
Petite précision :
Set db = CurrentDb
...
Set db = Nothing
Ici pas de db.Close donc ? ce n'est pas nécessaire ?
Pour un objet recordset (ou autre), faut-il obligatoirement un Set rst > > Nothing ou dans ce cas le .Close suffit ?
Merci
Cordialement
L'utilisation de Nothing évite d'utiliser Close.
l'utilisation de close n'évite pas de faire un Nothing.
donc faire un nothing obligatoirement et on peut se passer du close. si on
veut faire un close bien le mettre avant le nothing.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jeff" <jf@jf.com> a écrit dans le message de
news:ci8trl$970$1@news-reader4.wanadoo.fr...
Merci Raymond pour tes explications.
Petite précision :
Set db = CurrentDb
...
Set db = Nothing
Ici pas de db.Close donc ? ce n'est pas nécessaire ?
Pour un objet recordset (ou autre), faut-il obligatoirement un Set rst > > Nothing ou dans ce cas le .Close suffit ?
Merci
Cordialement
L'utilisation de Nothing évite d'utiliser Close.
l'utilisation de close n'évite pas de faire un Nothing.
donc faire un nothing obligatoirement et on peut se passer du close. si on
veut faire un close bien le mettre avant le nothing.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Jeff" a écrit dans le message de
news:ci8trl$970$Merci Raymond pour tes explications.
Petite précision :
Set db = CurrentDb
...
Set db = Nothing
Ici pas de db.Close donc ? ce n'est pas nécessaire ?
Pour un objet recordset (ou autre), faut-il obligatoirement un Set rst > > Nothing ou dans ce cas le .Close suffit ?
Merci
Cordialement
Merci une fois de plus pour ta réponse.
Donc je peux remplacer mes "anciens" .Close par Set db = Nothing ou Set
rst
= Nothing, n'est-ce pas ?
Dernière question (aprés j'arrête et je bosse ;-)) :
Si un recordset est fermé (rst.Close non maintenant Set rst = Nothing)
mais
pas db, y a-t-il un risque de
corruption de donnée bien que le Recordset soit fermé ?
Merci
Cordialement
Jeff
Merci une fois de plus pour ta réponse.
Donc je peux remplacer mes "anciens" .Close par Set db = Nothing ou Set
rst
= Nothing, n'est-ce pas ?
Dernière question (aprés j'arrête et je bosse ;-)) :
Si un recordset est fermé (rst.Close non maintenant Set rst = Nothing)
mais
pas db, y a-t-il un risque de
corruption de donnée bien que le Recordset soit fermé ?
Merci
Cordialement
Jeff
Merci une fois de plus pour ta réponse.
Donc je peux remplacer mes "anciens" .Close par Set db = Nothing ou Set
rst
= Nothing, n'est-ce pas ?
Dernière question (aprés j'arrête et je bosse ;-)) :
Si un recordset est fermé (rst.Close non maintenant Set rst = Nothing)
mais
pas db, y a-t-il un risque de
corruption de donnée bien que le Recordset soit fermé ?
Merci
Cordialement
Jeff