Pb fermeture connexion Access avec ADODC

Résolu
cimcim Messages postés 31 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 29 juillet 2010 - 21 mars 2005 à 10:36
cimcim Messages postés 31 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 29 juillet 2010 - 25 mars 2005 à 10:57
Bonjour a tous, j'ai un petit probleme avec des connexions ADODC
En fait, je fais une appli qui gère des contacts d'une entreprise, a partir d'une base access contenant les données (mise sur le réseau) et d'un petit programme en VB qui gère les données.
Je me connecte à la base à l'aide de connection ADO, ADODC exactement.
Mais le problème, c'est que mon prog est installé sur plusieurs machines, dont une qui n'est jamais arrêtée, et au bout d'un moment, la base de données est saturée de connexion, car les liens adodc ne se ferme jamais.
Lorsque je voudrais fermer mes connexions, je fais du :
Adodc1.RecordSource = ""
Adodc1.Recordset.Close
Adodc1.ConnectionString = ""
Mais ca ne change rien.
Si vous avez des idées, sur comment fermer ces connexions, merci de m'aider.
Merci d'avance

11 réponses

cimcim Messages postés 31 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 29 juillet 2010
22 mars 2005 à 11:26
Bon, ben c bon...
Ca marche !!
Merci beaucoup...
Et maintenant, il me ferme bien ma connexion. J'ai plus qu'à généraliser ça sur tout mon projet, car je dois bien avoir mis une vingtaine de ADODC caché partout...
Merci à mfritsch alias [mailto:M@X M@X] et à MAX68
Bye a tous
3
mfritsch Messages postés 46 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 3 mai 2005
21 mars 2005 à 11:10
Bonjour,


Tu dois surement avec une variable "connection". Et bien tu la fermes (la variable bien sur ;) en faisant connection.close, ou sinon ptete Adodc1.close


Voila


[mailto:M@x M@x]
0
cimcim Messages postés 31 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 29 juillet 2010
21 mars 2005 à 11:21
Merci de ta réponse, mais il n'y a pas de variable connection sur ces controles, et adodc1.close plante.

Je ne sais vraiment plus quoi faire, et je n'ai pas envie de changer tous mes controles, car mon prog commence à devenir gros, il y en a beaucoup, et je n'ai plus tellement de temps...

Merci de continuer à donner des idées.
0
mfritsch Messages postés 46 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 3 mai 2005
21 mars 2005 à 13:57
Tu peux alors faire de l'ado avec oledb, et ainsi ne pas utiliser un controle datasource.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cimcim Messages postés 31 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 29 juillet 2010
21 mars 2005 à 15:06
Heu... La, je suis pas contre, mais je ne sais pas comment ca marche. Je suis sur la marche débutant.
Donc, si tu peux éclairer un peu ce que je dois déclarer pour utiliser ca...
Merci d'avance, et surtout merci de te donner la peine de m'aider.
0
cs_max68 Messages postés 30 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 20 juin 2008
22 mars 2005 à 08:12
Donc vala, je te mets le code en VB 6. Au cas où tu es sous .net, pas de pb, je te le traduis:

A rajouter dans les références ou composants, je sais plus : Microsoft ADO 2.6

Dans un module:

public co as connection
public rs as recordset

Dans ta feuille:

'Initialisation de la connexion
set co = new connection
co.provider = "Microsoft.jet.OLEDB.4.0" 'pour access 2000, sinon c'est 4.1 pour 2003

co.connectionstring = "c:\mabase.mdb"
co.open

'Initialisation d'un recordset
set rs = new recordset
rs.open "table", co, adOpenDynamic 'tu peux remplacer table par une requete SQL ou existante dans la table

'Pour atteindre une valeur
var = rs.fields("table").value

'Pour rentrer une nouvelle valeur
rs.fields("table").value = var

'Fermer co et rs
rs.close
co.close

Voila, si tu veux + de recordset un recordset par table ou par requete, il faut le déclaré dans le module, pour qu'il soit accessible dans tout le projet.

Si tu as b'soin encore d'aide, je suis la. Ca me plait d'aider en VB now que je m'y connais un peu, avant c'était d'autres qui m'aidaient, c'est un peu la destinée de chacun à quiconque qui est passé par vbfrance ... lol

M@x
0
cimcim Messages postés 31 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 29 juillet 2010
22 mars 2005 à 08:40
Ok, ben merci beaucoup.
Je teste ça, et je te tiens au courant.
0
cimcim Messages postés 31 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 29 juillet 2010
22 mars 2005 à 10:36
Heu, question comme ça, pour savoir...Faudrait pas faire du "set rs nothing" et "set co nothing" avant de faire les .close ?
0
cimcim Messages postés 31 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 29 juillet 2010
22 mars 2005 à 10:52
Voila des news du front :
Lorsque j'execute, il me dit : utilisation incorrecte du mot clé New, sur la ligne set co = new connection
et si je met
set co = New ADODB.Connection
Il plante sur co.provider
Que faire ?
Le pb vient il d'une librairie ?
La librairie ADO 2.6, c'est bien le ActiveX Data Object 2.6 ?
Ou c'est une référence qu'il me faut aller chercher dans le fin fond du system32 de mon poste ?
0
mfritsch Messages postés 46 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 3 mai 2005
22 mars 2005 à 10:55
Normalement, c'est:
co.Provider = "Microsoft.jet.OLEDB.4.0"

Tu as quoi comme base de données?

M@x
0
cimcim Messages postés 31 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 29 juillet 2010
25 mars 2005 à 10:57
Petit message posté après la fermeture du topic, au cas ou quelqu'un ai le même problème.
Je n'ai pas tout modifié comme on me l'a proposé ci dessus, mais j'ai trouvé ce qui faisait que mes connexions restaient ouvertes...
En fait, j'utilisais des connexions adodc pour ouvrir la base dedonnées, et des textbox pour gérer les données.
Mes text box étaient configurées en mode graphique, dans les propriétés, datasource, j'avais mis adodc1.
Et c'est ça le problème.
Maintenant, je fais, dans les form_load :
Set TexteBox.DataSource = adodc1
et dans les form_unload :
Set TextBox = Nothing
Et toutes mes connexions se ferment sans problèmes.
Voila, si ça peut aider quelqu'un d'autre...
0
Rejoignez-nous