je travaille en VB6 avec DAO. Je fais un querrydef sur une base de
donnée sous access. En ouvrant ma base de donnée Access je me rend
compte que mes querydef ont été mis dans les requètes. Existe t'il un
moyen d'effacer ses requètes une fois que le programme se termine?
Je suppose que tu crées tes requêtes par des instructions du genre :
Dim bd as database, rq as Querydef, etc ... set bd=OpenDatabase (....) set rq½.CreateQuerydef("Temp","Select * from tatable;")
A la fin de ton traitement, dés lors que tu n'a plus besoin de la requête nommée Temp, tu passes la commande : bd.Querydefs.Delete "Temp"
Ainsi la requête est supprimée dans ta base.
Une autre solution consiste à manipuler des recordset dont la source est du sql plutôt que des Querydef, ils ne sont pas créés dans ta bd Access.
Voila A+ Eric
-----Message d'origine----- hello,
je travaille en VB6 avec DAO. Je fais un querrydef sur
une base de
donnée sous access. En ouvrant ma base de donnée Access
je me rend
compte que mes querydef ont été mis dans les requètes.
Existe t'il un
moyen d'effacer ses requètes une fois que le programme se
termine?
Merci par avance.
.
Christophe
Bonjour,
Comme conseillé par Eric, utilise la collection Querydefs de l'objet base de donnée, qui contient tous les querydef de cette base.
Mais concernant l'utilisation de requete de type : set rq½.CreateQuerydef("Temp","Select * from tatable;") c'est à éviter si l'on veut des performances. Il est préférable de créer ces requetes de manières permanentes sous access et les appeler par leur nom
set rq½.querydefs("Rqmachin")
si il y a des paramètres les déclarer sous access (popup_menu parametre en mode création de requête) puis dans le code: rq.parameters("Myparam") = Param ' variable de même type enfin set rst=rq.openrecordset pour utiliser les enregistrements.
Cette technique permet une grande rapidité de réponse des requetes, car elle sont compilée par access et non interprétées par VB. De plus cela permet de facilité grandement le déboggage et les modifs touchant à la structure de la bd.
Bon il y a toujours les cas où l'on doit creer une requete à la volée et là c'est la chaine sql qui reste la solution
christophe vergon
"Eric" a écrit dans le message de news: 104bc01c3f27e$ba1e87f0$ Bonsoir,
Je suppose que tu crées tes requêtes par des instructions du genre :
Dim bd as database, rq as Querydef, etc ... set bd=OpenDatabase (....) set rq½.CreateQuerydef("Temp","Select * from tatable;")
A la fin de ton traitement, dés lors que tu n'a plus besoin de la requête nommée Temp, tu passes la commande : bd.Querydefs.Delete "Temp"
Ainsi la requête est supprimée dans ta base.
Une autre solution consiste à manipuler des recordset dont la source est du sql plutôt que des Querydef, ils ne sont pas créés dans ta bd Access.
Voila A+ Eric
-----Message d'origine----- hello,
je travaille en VB6 avec DAO. Je fais un querrydef sur
une base de
donnée sous access. En ouvrant ma base de donnée Access
je me rend
compte que mes querydef ont été mis dans les requètes.
Existe t'il un
moyen d'effacer ses requètes une fois que le programme se
termine?
Merci par avance.
.
Bonjour,
Comme conseillé par Eric, utilise la collection Querydefs de l'objet base de
donnée, qui contient tous les querydef de cette base.
Mais concernant l'utilisation de requete de type :
set rq½.CreateQuerydef("Temp","Select * from tatable;")
c'est à éviter si l'on veut des performances.
Il est préférable de créer ces requetes de manières permanentes sous access
et les appeler par leur nom
set rq½.querydefs("Rqmachin")
si il y a des paramètres les déclarer sous access (popup_menu parametre en
mode création de requête)
puis dans le code:
rq.parameters("Myparam") = Param ' variable de même type
enfin
set rst=rq.openrecordset pour utiliser les enregistrements.
Cette technique permet une grande rapidité de réponse des requetes, car elle
sont compilée par access et non interprétées par VB.
De plus cela permet de facilité grandement le déboggage et les modifs
touchant à la structure de la bd.
Bon il y a toujours les cas où l'on doit creer une requete à la volée et là
c'est la chaine sql qui reste la solution
christophe vergon
"Eric" <f_fram@hotmail.com> a écrit dans le message de news:
104bc01c3f27e$ba1e87f0$a501280a@phx.gbl...
Bonsoir,
Je suppose que tu crées tes requêtes par des instructions
du genre :
Dim bd as database, rq as Querydef, etc ...
set bd=OpenDatabase (....)
set rq½.CreateQuerydef("Temp","Select * from tatable;")
A la fin de ton traitement, dés lors que tu n'a plus
besoin de la requête nommée Temp, tu passes la commande :
bd.Querydefs.Delete "Temp"
Ainsi la requête est supprimée dans ta base.
Une autre solution consiste à manipuler des recordset dont
la source est du sql plutôt que des Querydef, ils ne sont
pas créés dans ta bd Access.
Voila
A+
Eric
-----Message d'origine-----
hello,
je travaille en VB6 avec DAO. Je fais un querrydef sur
une base de
donnée sous access. En ouvrant ma base de donnée Access
je me rend
compte que mes querydef ont été mis dans les requètes.
Existe t'il un
moyen d'effacer ses requètes une fois que le programme se
Comme conseillé par Eric, utilise la collection Querydefs de l'objet base de donnée, qui contient tous les querydef de cette base.
Mais concernant l'utilisation de requete de type : set rq½.CreateQuerydef("Temp","Select * from tatable;") c'est à éviter si l'on veut des performances. Il est préférable de créer ces requetes de manières permanentes sous access et les appeler par leur nom
set rq½.querydefs("Rqmachin")
si il y a des paramètres les déclarer sous access (popup_menu parametre en mode création de requête) puis dans le code: rq.parameters("Myparam") = Param ' variable de même type enfin set rst=rq.openrecordset pour utiliser les enregistrements.
Cette technique permet une grande rapidité de réponse des requetes, car elle sont compilée par access et non interprétées par VB. De plus cela permet de facilité grandement le déboggage et les modifs touchant à la structure de la bd.
Bon il y a toujours les cas où l'on doit creer une requete à la volée et là c'est la chaine sql qui reste la solution
christophe vergon
"Eric" a écrit dans le message de news: 104bc01c3f27e$ba1e87f0$ Bonsoir,
Je suppose que tu crées tes requêtes par des instructions du genre :
Dim bd as database, rq as Querydef, etc ... set bd=OpenDatabase (....) set rq½.CreateQuerydef("Temp","Select * from tatable;")
A la fin de ton traitement, dés lors que tu n'a plus besoin de la requête nommée Temp, tu passes la commande : bd.Querydefs.Delete "Temp"
Ainsi la requête est supprimée dans ta base.
Une autre solution consiste à manipuler des recordset dont la source est du sql plutôt que des Querydef, ils ne sont pas créés dans ta bd Access.
Voila A+ Eric
-----Message d'origine----- hello,
je travaille en VB6 avec DAO. Je fais un querrydef sur
une base de
donnée sous access. En ouvrant ma base de donnée Access
je me rend
compte que mes querydef ont été mis dans les requètes.
Existe t'il un
moyen d'effacer ses requètes une fois que le programme se
termine?
Merci par avance.
.
thierry
je viens d'essayer ce que vous m'avez répondu et cela fonctionne. Merci beaucoup
Le Fri, 13 Feb 2004 17:22:10 +0100, thierry a écrit :
hello,
je travaille en VB6 avec DAO. Je fais un querrydef sur une base de donnée sous access. En ouvrant ma base de donnée Access je me rend compte que mes querydef ont été mis dans les requètes. Existe t'il un moyen d'effacer ses requètes une fois que le programme se termine?
Merci par avance.
je viens d'essayer ce que vous m'avez répondu et cela fonctionne.
Merci beaucoup
Le Fri, 13 Feb 2004 17:22:10 +0100, thierry
<thierry.marcel@laposte.net> a écrit :
hello,
je travaille en VB6 avec DAO. Je fais un querrydef sur une base de
donnée sous access. En ouvrant ma base de donnée Access je me rend
compte que mes querydef ont été mis dans les requètes. Existe t'il un
moyen d'effacer ses requètes une fois que le programme se termine?
je viens d'essayer ce que vous m'avez répondu et cela fonctionne. Merci beaucoup
Le Fri, 13 Feb 2004 17:22:10 +0100, thierry a écrit :
hello,
je travaille en VB6 avec DAO. Je fais un querrydef sur une base de donnée sous access. En ouvrant ma base de donnée Access je me rend compte que mes querydef ont été mis dans les requètes. Existe t'il un moyen d'effacer ses requètes une fois que le programme se termine?