OVH Cloud OVH Cloud

Pb Processus actif à la fermeture d'access

5 réponses
Avatar
mymic
Bonsoir,

Je rencontre un pb lors de la fermeture de ma base Access 2003. En effect le
processus MSACCESS.exe continu de tourner et m'empêche de réouvrir ma base.
Le fait d'avoir une connection ADO en global (meme si je la ferme avant de
quitter ma base) peut t'il générer ce genre de pb ? Sinon qu'est ce qui peut
empeche ce procces de se fermer ? Existe t'il un moyen sur Access de trouver
ce qui génère cette erreur ?
Merci d'avance pour votre aide

5 réponses

Avatar
Raymond [mvp]
Bonsoir.

vérifie ta connection mais ce n'est normalement pas ça; tu dois avoir des
objets définis par dim, chargés par set et qui ne sont pas libérés lors de
la fermeture de la base. Chaque objet ouvert doit se terminer par Set
Monobjet = Nothing. Par objet ce peut être des formulaires, des états, des
modules de classe, des objets personnels, des objets automation (surtout
ceux-ci qu'on oublie souvent de fermer) etc ......
Il va falloir d'abord repérer le formulaire ou le module qui ouvre des
objets et qui ne les referme pas.
Bon courage.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

Bonsoir,

Je rencontre un pb lors de la fermeture de ma base Access 2003. En effect
le
processus MSACCESS.exe continu de tourner et m'empêche de réouvrir ma
base.
Le fait d'avoir une connection ADO en global (meme si je la ferme avant de
quitter ma base) peut t'il générer ce genre de pb ? Sinon qu'est ce qui
peut
empeche ce procces de se fermer ? Existe t'il un moyen sur Access de
trouver
ce qui génère cette erreur ?
Merci d'avance pour votre aide


Avatar
mymic
Bonjour Raymond et merci pour ta réponse.
J'ai trouvé la fonction qui me pose un problème mais je ne comprend pas
pourquoi. Le problème vient de l'utilisation d'un seek dans un recordset. Je
n'utilise plus le seek et j'ouvre mon recordset directement sur
l'enregistrement voulu. Depuis je n'ai plus de problème. Maintenant je me
demande si j'utilise mal le seek car j'en ai plusieurs dans mon programme.

Avant :
Prospects.Open "Prospects", cnnFic, adOpenDynamic, adLockReadOnly,
adCmdTableDirect
Prospects.Index = "PrimaryKey"
rospects.Seek Array(Forms![forecast]![S], Me![Cli],
Forms![forecast]![Saison]), adSeekFirstEQ

Maintenant :
strSql = "SELECT * FROM Prospects WHERE CodeSoc='" & Form_Forecast.S & "'
AND CodeClient=" & Me.Cli & " AND saison='" & Form_Forecast.Saison & "'"
Prospects.Open strSql, cnnFic, adOpenDynamic, adLockReadOnly, adCmdTableDirect

Mymic



Bonsoir.

vérifie ta connection mais ce n'est normalement pas ça; tu dois avoir des
objets définis par dim, chargés par set et qui ne sont pas libérés lors de
la fermeture de la base. Chaque objet ouvert doit se terminer par Set
Monobjet = Nothing. Par objet ce peut être des formulaires, des états, des
modules de classe, des objets personnels, des objets automation (surtout
ceux-ci qu'on oublie souvent de fermer) etc ......
Il va falloir d'abord repérer le formulaire ou le module qui ouvre des
objets et qui ne les referme pas.
Bon courage.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

Bonsoir,

Je rencontre un pb lors de la fermeture de ma base Access 2003. En effect
le
processus MSACCESS.exe continu de tourner et m'empêche de réouvrir ma
base.
Le fait d'avoir une connection ADO en global (meme si je la ferme avant de
quitter ma base) peut t'il générer ce genre de pb ? Sinon qu'est ce qui
peut
empeche ce procces de se fermer ? Existe t'il un moyen sur Access de
trouver
ce qui génère cette erreur ?
Merci d'avance pour votre aide







Avatar
Raymond [mvp]
bonjour.

il ne faut pas utiliser le seek sur des tables attachées, ne serait-ce pas
le cas ?
je n'ai pas la doc ado sous les yeux mais le open et le seek me semblent
bizarre.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

Bonjour Raymond et merci pour ta réponse.
J'ai trouvé la fonction qui me pose un problème mais je ne comprend pas
pourquoi. Le problème vient de l'utilisation d'un seek dans un recordset.
Je
n'utilise plus le seek et j'ouvre mon recordset directement sur
l'enregistrement voulu. Depuis je n'ai plus de problème. Maintenant je me
demande si j'utilise mal le seek car j'en ai plusieurs dans mon programme.

Avant :
Prospects.Open "Prospects", cnnFic, adOpenDynamic, adLockReadOnly,
adCmdTableDirect
Prospects.Index = "PrimaryKey"
rospects.Seek Array(Forms![forecast]![S], Me![Cli],
Forms![forecast]![Saison]), adSeekFirstEQ

Maintenant :
strSql = "SELECT * FROM Prospects WHERE CodeSoc='" & Form_Forecast.S & "'
AND CodeClient=" & Me.Cli & " AND saison='" & Form_Forecast.Saison & "'"
Prospects.Open strSql, cnnFic, adOpenDynamic, adLockReadOnly,
adCmdTableDirect

Mymic


Avatar
mymic
Si j'utilise le seek sur des tables attaché. J'ai résolu mon pb en
convertissant les valeurs passé dans le seek par rapport au type des champs
dans la table.
Prospects.Seek Array(cstr(Forms![forecast]![S]),clng(
Me![Cli]),cstr(Forms![forecast]![Saison])), adSeekFirstEQ. A priori cela
fonctionne maintenant.
Pourquoi ne faut t'il pas utiliser de seek sur des tables attachées ?




bonjour.

il ne faut pas utiliser le seek sur des tables attachées, ne serait-ce pas
le cas ?
je n'ai pas la doc ado sous les yeux mais le open et le seek me semblent
bizarre.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

Bonjour Raymond et merci pour ta réponse.
J'ai trouvé la fonction qui me pose un problème mais je ne comprend pas
pourquoi. Le problème vient de l'utilisation d'un seek dans un recordset.
Je
n'utilise plus le seek et j'ouvre mon recordset directement sur
l'enregistrement voulu. Depuis je n'ai plus de problème. Maintenant je me
demande si j'utilise mal le seek car j'en ai plusieurs dans mon programme.

Avant :
Prospects.Open "Prospects", cnnFic, adOpenDynamic, adLockReadOnly,
adCmdTableDirect
Prospects.Index = "PrimaryKey"
rospects.Seek Array(Forms![forecast]![S], Me![Cli],
Forms![forecast]![Saison]), adSeekFirstEQ

Maintenant :
strSql = "SELECT * FROM Prospects WHERE CodeSoc='" & Form_Forecast.S & "'
AND CodeClient=" & Me.Cli & " AND saison='" & Form_Forecast.Saison & "'"
Prospects.Open strSql, cnnFic, adOpenDynamic, adLockReadOnly,
adCmdTableDirect

Mymic








Avatar
Raymond [mvp]
l'aide dit:
Vous ne pouvez utiliser la méthode Seek avec une table liée car il est
impossible d'ouvrir des tables liées comme des objets Recordset de type
Table. Toutefois, si vous ouvrez directement une base de données ISAM
installable (non ODBC) à l'aide de la méthode OpenDatabase, vous pouvez
appliquer la méthode Seek aux tables de cette base de données.

Mais ceci concerne DAO, alors que tu es sur ADO, je crois, et je n'ai pas la
doc ADO sous les yeux. vérifie si tu l'as.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

Si j'utilise le seek sur des tables attaché. J'ai résolu mon pb en
convertissant les valeurs passé dans le seek par rapport au type des
champs
dans la table.
Prospects.Seek Array(cstr(Forms![forecast]![S]),clng(
Me![Cli]),cstr(Forms![forecast]![Saison])), adSeekFirstEQ. A priori cela
fonctionne maintenant.
Pourquoi ne faut t'il pas utiliser de seek sur des tables attachées ?




bonjour.

il ne faut pas utiliser le seek sur des tables attachées, ne serait-ce
pas
le cas ?
je n'ai pas la doc ado sous les yeux mais le open et le seek me semblent
bizarre.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

Bonjour Raymond et merci pour ta réponse.
J'ai trouvé la fonction qui me pose un problème mais je ne comprend pas
pourquoi. Le problème vient de l'utilisation d'un seek dans un
recordset.
Je
n'utilise plus le seek et j'ouvre mon recordset directement sur
l'enregistrement voulu. Depuis je n'ai plus de problème. Maintenant je
me
demande si j'utilise mal le seek car j'en ai plusieurs dans mon
programme.

Avant :
Prospects.Open "Prospects", cnnFic, adOpenDynamic, adLockReadOnly,
adCmdTableDirect
Prospects.Index = "PrimaryKey"
rospects.Seek Array(Forms![forecast]![S], Me![Cli],
Forms![forecast]![Saison]), adSeekFirstEQ

Maintenant :
strSql = "SELECT * FROM Prospects WHERE CodeSoc='" & Form_Forecast.S &
"'
AND CodeClient=" & Me.Cli & " AND saison='" & Form_Forecast.Saison &
"'"
Prospects.Open strSql, cnnFic, adOpenDynamic, adLockReadOnly,
adCmdTableDirect

Mymic