Impossible de passer un objet Recorset par Référence dans une procédure ??
5 réponses
News Groups
Bonjour,
Je un probléme avec le passage de recordset par référence :
Soit la procédure A :
Je déclare un RecordSet et je le passe par référence à la Procédure B
pour ensuite récupérer le nombre d'enregistrement pour faire un test (Test
A)
°° Public Sub MaProcedureA ()
°° Dim MonRst AS New ADODB.Recordset
°° Call MaProcédureB (MonRst)
°° MonRst.RecordCount ' Test A
°° End Sub
Soit la procédure B :
J'ouvre un RecordSet passé par référence
°° Public Sub MaProcedureB (MonRstVar AS ADODB.Recordset)
°° ....déclaration de la MaCommande
°° MonRstVar.Open MaCommande
°° MonRstVar.RecordCount ' Test B
°° End Sub
Le résultat est le suivant :
Le Test B est OK et le Test A génére une erreur : "impossible..sur un objet
fermé"
Cela ce comporte comme si MonRst passé par référence est bien ouvert dans
MaProcedureB (Test B : OK)
mais est refermé lors du retour à MaProcedureA !! :-( ??
Je ne comprend pas pourquoi,
quelqu'un peut-il m'aider pour faire passer correctement le RecordSet par
Référence ?
Je suis dans l'attente de votre aide,
Merci,encore,
Thierry.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ilan
bonjour,
ESSAIE de declarer MonRst en tant variable Public, donc accessible pour les 2 procedures sinon declare MaProcedure en tant que ADODB.recordset
Public Sub MaProcedureA () Dim MonRst AS New ADODB.Recordset MonRst= MaProcédureB (MonRst) MonRst.RecordCount ' Test A End Sub
Public Sub ProcedureB (MonRstVar AS ADODB.Recordset) As ADODB.Recordset ....déclaration de la MaCommande MonRstVar.Open MaCommande MonRstVar.RecordCount ' Test B MaProcedureB=MonRstVar End Sub
Bonjour,
Je un probléme avec le passage de recordset par référence :
Soit la procédure A : Je déclare un RecordSet et je le passe par référence à la Procédure B pour ensuite récupérer le nombre d'enregistrement pour faire un test (Test A) °° Public Sub MaProcedureA () °° Dim MonRst AS New ADODB.Recordset °° Call MaProcédureB (MonRst) °° MonRst.RecordCount ' Test A °° End Sub
Soit la procédure B : J'ouvre un RecordSet passé par référence °° Public Sub MaProcedureB (MonRstVar AS ADODB.Recordset) °° ....déclaration de la MaCommande °° MonRstVar.Open MaCommande °° MonRstVar.RecordCount ' Test B °° End Sub
Le résultat est le suivant : Le Test B est OK et le Test A génére une erreur : "impossible..sur un objet fermé" Cela ce comporte comme si MonRst passé par référence est bien ouvert dans MaProcedureB (Test B : OK) mais est refermé lors du retour à MaProcedureA !! :-( ??
Je ne comprend pas pourquoi, quelqu'un peut-il m'aider pour faire passer correctement le RecordSet par Référence ?
Je suis dans l'attente de votre aide, Merci,encore, Thierry.
bonjour,
ESSAIE de declarer MonRst en tant variable Public, donc accessible
pour les 2 procedures sinon declare
MaProcedure en tant que ADODB.recordset
Public Sub MaProcedureA ()
Dim MonRst AS New ADODB.Recordset
MonRst= MaProcédureB (MonRst)
MonRst.RecordCount ' Test A
End Sub
Public Sub ProcedureB (MonRstVar AS ADODB.Recordset) As ADODB.Recordset
....déclaration de la MaCommande
MonRstVar.Open MaCommande
MonRstVar.RecordCount ' Test B
MaProcedureB=MonRstVar
End Sub
Bonjour,
Je un probléme avec le passage de recordset par référence :
Soit la procédure A :
Je déclare un RecordSet et je le passe par référence à la Procédure B
pour ensuite récupérer le nombre d'enregistrement pour faire un test (Test
A)
°° Public Sub MaProcedureA ()
°° Dim MonRst AS New ADODB.Recordset
°° Call MaProcédureB (MonRst)
°° MonRst.RecordCount ' Test A
°° End Sub
Soit la procédure B :
J'ouvre un RecordSet passé par référence
°° Public Sub MaProcedureB (MonRstVar AS ADODB.Recordset)
°° ....déclaration de la MaCommande
°° MonRstVar.Open MaCommande
°° MonRstVar.RecordCount ' Test B
°° End Sub
Le résultat est le suivant :
Le Test B est OK et le Test A génére une erreur : "impossible..sur un objet
fermé"
Cela ce comporte comme si MonRst passé par référence est bien ouvert dans
MaProcedureB (Test B : OK)
mais est refermé lors du retour à MaProcedureA !! :-( ??
Je ne comprend pas pourquoi,
quelqu'un peut-il m'aider pour faire passer correctement le RecordSet par
Référence ?
Je suis dans l'attente de votre aide,
Merci,encore,
Thierry.
ESSAIE de declarer MonRst en tant variable Public, donc accessible pour les 2 procedures sinon declare MaProcedure en tant que ADODB.recordset
Public Sub MaProcedureA () Dim MonRst AS New ADODB.Recordset MonRst= MaProcédureB (MonRst) MonRst.RecordCount ' Test A End Sub
Public Sub ProcedureB (MonRstVar AS ADODB.Recordset) As ADODB.Recordset ....déclaration de la MaCommande MonRstVar.Open MaCommande MonRstVar.RecordCount ' Test B MaProcedureB=MonRstVar End Sub
Bonjour,
Je un probléme avec le passage de recordset par référence :
Soit la procédure A : Je déclare un RecordSet et je le passe par référence à la Procédure B pour ensuite récupérer le nombre d'enregistrement pour faire un test (Test A) °° Public Sub MaProcedureA () °° Dim MonRst AS New ADODB.Recordset °° Call MaProcédureB (MonRst) °° MonRst.RecordCount ' Test A °° End Sub
Soit la procédure B : J'ouvre un RecordSet passé par référence °° Public Sub MaProcedureB (MonRstVar AS ADODB.Recordset) °° ....déclaration de la MaCommande °° MonRstVar.Open MaCommande °° MonRstVar.RecordCount ' Test B °° End Sub
Le résultat est le suivant : Le Test B est OK et le Test A génére une erreur : "impossible..sur un objet fermé" Cela ce comporte comme si MonRst passé par référence est bien ouvert dans MaProcedureB (Test B : OK) mais est refermé lors du retour à MaProcedureA !! :-( ??
Je ne comprend pas pourquoi, quelqu'un peut-il m'aider pour faire passer correctement le RecordSet par Référence ?
Je suis dans l'attente de votre aide, Merci,encore, Thierry.
Raymond [mvp]
Bonjour.
Je t'ai fait un exemple en DAO (plus simple) qui fonctionne, je viens de le tester: Private Sub Commande0_Click() Dim Rs As DAO.Recordset testB Rs MsgBox "Rs= " & Rs.Name & ":" & Rs.RecordCount Set Rs = Nothing End Sub
Private Sub testB(Rs As DAO.Recordset) Set Rs = CurrentDb.OpenRecordset("table1") MsgBox "Rs= " & Rs.Name & ":" & Rs.RecordCount End Sub
N'aurais-tu pas un nothing qui traine dans la procédure B ?
-- @+ 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
"News Groups" a écrit dans le message de news: 417f7f3c$0$286$
Bonjour,
Je un probléme avec le passage de recordset par référence :
Soit la procédure A : Je déclare un RecordSet et je le passe par référence à la Procédure B pour ensuite récupérer le nombre d'enregistrement pour faire un test (Test A) °° Public Sub MaProcedureA () °° Dim MonRst AS New ADODB.Recordset °° Call MaProcédureB (MonRst) °° MonRst.RecordCount ' Test A °° End Sub
Soit la procédure B : J'ouvre un RecordSet passé par référence °° Public Sub MaProcedureB (MonRstVar AS ADODB.Recordset) °° ....déclaration de la MaCommande °° MonRstVar.Open MaCommande °° MonRstVar.RecordCount ' Test B °° End Sub
Le résultat est le suivant : Le Test B est OK et le Test A génére une erreur : "impossible..sur un objet fermé" Cela ce comporte comme si MonRst passé par référence est bien ouvert dans MaProcedureB (Test B : OK) mais est refermé lors du retour à MaProcedureA !! :-( ??
Je ne comprend pas pourquoi, quelqu'un peut-il m'aider pour faire passer correctement le RecordSet par Référence ?
Je suis dans l'attente de votre aide, Merci,encore, Thierry.
Bonjour.
Je t'ai fait un exemple en DAO (plus simple) qui fonctionne, je viens de le
tester:
Private Sub Commande0_Click()
Dim Rs As DAO.Recordset
testB Rs
MsgBox "Rs= " & Rs.Name & ":" & Rs.RecordCount
Set Rs = Nothing
End Sub
Private Sub testB(Rs As DAO.Recordset)
Set Rs = CurrentDb.OpenRecordset("table1")
MsgBox "Rs= " & Rs.Name & ":" & Rs.RecordCount
End Sub
N'aurais-tu pas un nothing qui traine dans la procédure B ?
--
@+
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
"News Groups" <bjt_nwsgrp@yahoo.fr> a écrit dans le message de news:
417f7f3c$0$286$636a15ce@news.free.fr...
Bonjour,
Je un probléme avec le passage de recordset par référence :
Soit la procédure A :
Je déclare un RecordSet et je le passe par référence à la Procédure B
pour ensuite récupérer le nombre d'enregistrement pour faire un test (Test
A)
°° Public Sub MaProcedureA ()
°° Dim MonRst AS New ADODB.Recordset
°° Call MaProcédureB (MonRst)
°° MonRst.RecordCount ' Test A
°° End Sub
Soit la procédure B :
J'ouvre un RecordSet passé par référence
°° Public Sub MaProcedureB (MonRstVar AS ADODB.Recordset)
°° ....déclaration de la MaCommande
°° MonRstVar.Open MaCommande
°° MonRstVar.RecordCount ' Test B
°° End Sub
Le résultat est le suivant :
Le Test B est OK et le Test A génére une erreur : "impossible..sur un
objet
fermé"
Cela ce comporte comme si MonRst passé par référence est bien ouvert dans
MaProcedureB (Test B : OK)
mais est refermé lors du retour à MaProcedureA !! :-( ??
Je ne comprend pas pourquoi,
quelqu'un peut-il m'aider pour faire passer correctement le RecordSet par
Référence ?
Je suis dans l'attente de votre aide,
Merci,encore,
Thierry.
Je t'ai fait un exemple en DAO (plus simple) qui fonctionne, je viens de le tester: Private Sub Commande0_Click() Dim Rs As DAO.Recordset testB Rs MsgBox "Rs= " & Rs.Name & ":" & Rs.RecordCount Set Rs = Nothing End Sub
Private Sub testB(Rs As DAO.Recordset) Set Rs = CurrentDb.OpenRecordset("table1") MsgBox "Rs= " & Rs.Name & ":" & Rs.RecordCount End Sub
N'aurais-tu pas un nothing qui traine dans la procédure B ?
-- @+ 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
"News Groups" a écrit dans le message de news: 417f7f3c$0$286$
Bonjour,
Je un probléme avec le passage de recordset par référence :
Soit la procédure A : Je déclare un RecordSet et je le passe par référence à la Procédure B pour ensuite récupérer le nombre d'enregistrement pour faire un test (Test A) °° Public Sub MaProcedureA () °° Dim MonRst AS New ADODB.Recordset °° Call MaProcédureB (MonRst) °° MonRst.RecordCount ' Test A °° End Sub
Soit la procédure B : J'ouvre un RecordSet passé par référence °° Public Sub MaProcedureB (MonRstVar AS ADODB.Recordset) °° ....déclaration de la MaCommande °° MonRstVar.Open MaCommande °° MonRstVar.RecordCount ' Test B °° End Sub
Le résultat est le suivant : Le Test B est OK et le Test A génére une erreur : "impossible..sur un objet fermé" Cela ce comporte comme si MonRst passé par référence est bien ouvert dans MaProcedureB (Test B : OK) mais est refermé lors du retour à MaProcedureA !! :-( ??
Je ne comprend pas pourquoi, quelqu'un peut-il m'aider pour faire passer correctement le RecordSet par Référence ?
Je suis dans l'attente de votre aide, Merci,encore, Thierry.
News Groups
Merci de votre aide,
Réponse Ilan : * "..ESSAIE de declarer MonRst en tant variable Public .." C'est justement pouir ne pas utiliser de variable globale Public que je passe par référence. * "..sinon declare MaProcedure en tant que ADODB.recordset.." Au final MaProcedure est en fait une function qui prend une valeur booléenne.
Réponse Raymond : * "..exemple en DAO ... qui fonctionne.." J'ai effectivement testé en DAO est c'est bien OK, mais en ADO c'est une autre histoire !!
Après analyse, il se trouve que le problème vient du fait que je ferme ma connexion à la fin de MaProcedureB : °° MaCommande.ActiveConnection.Close Donc si je ne fais pas cela, tout fonctionne !! :-)
Ce qui me dérange c'est que je reste avec une connection ouverte plus utilisée !! :-( Donc il faut que j'approfondisse la question pour avoir un code propre.
Je tiens le forum au courant... si vous avez des remarques...ne pas hésiter..
Merci encore, Thierry.
"News Groups" a écrit dans le message de news: 417f7f3c$0$286$
Bonjour,
Je un probléme avec le passage de recordset par référence :
Soit la procédure A : Je déclare un RecordSet et je le passe par référence à la Procédure B pour ensuite récupérer le nombre d'enregistrement pour faire un test (Test A) °° Public Sub MaProcedureA () °° Dim MonRst AS New ADODB.Recordset °° Call MaProcédureB (MonRst) °° MonRst.RecordCount ' Test A °° End Sub
Soit la procédure B : J'ouvre un RecordSet passé par référence °° Public Sub MaProcedureB (MonRstVar AS ADODB.Recordset) °° ....déclaration de la MaCommande °° MonRstVar.Open MaCommande °° MonRstVar.RecordCount ' Test B °° End Sub
Le résultat est le suivant : Le Test B est OK et le Test A génére une erreur : "impossible..sur un objet
fermé" Cela ce comporte comme si MonRst passé par référence est bien ouvert dans MaProcedureB (Test B : OK) mais est refermé lors du retour à MaProcedureA !! :-( ??
Je ne comprend pas pourquoi, quelqu'un peut-il m'aider pour faire passer correctement le RecordSet par Référence ?
Je suis dans l'attente de votre aide, Merci,encore, Thierry.
Merci de votre aide,
Réponse Ilan :
* "..ESSAIE de declarer MonRst en tant variable Public .."
C'est justement pouir ne pas utiliser de variable globale Public que je
passe par référence.
* "..sinon declare MaProcedure en tant que ADODB.recordset.."
Au final MaProcedure est en fait une function qui prend une valeur
booléenne.
Réponse Raymond :
* "..exemple en DAO ... qui fonctionne.."
J'ai effectivement testé en DAO est c'est bien OK, mais en ADO c'est une
autre histoire !!
Après analyse, il se trouve que le problème vient du fait
que je ferme ma connexion à la fin de MaProcedureB :
°° MaCommande.ActiveConnection.Close
Donc si je ne fais pas cela, tout fonctionne !! :-)
Ce qui me dérange c'est que je reste avec une connection ouverte plus
utilisée !! :-(
Donc il faut que j'approfondisse la question pour avoir un code propre.
Je tiens le forum au courant...
si vous avez des remarques...ne pas hésiter..
Merci encore,
Thierry.
"News Groups" <bjt_nwsgrp@yahoo.fr> a écrit dans le message de news:
417f7f3c$0$286$636a15ce@news.free.fr...
Bonjour,
Je un probléme avec le passage de recordset par référence :
Soit la procédure A :
Je déclare un RecordSet et je le passe par référence à la Procédure B
pour ensuite récupérer le nombre d'enregistrement pour faire un test (Test
A)
°° Public Sub MaProcedureA ()
°° Dim MonRst AS New ADODB.Recordset
°° Call MaProcédureB (MonRst)
°° MonRst.RecordCount ' Test A
°° End Sub
Soit la procédure B :
J'ouvre un RecordSet passé par référence
°° Public Sub MaProcedureB (MonRstVar AS ADODB.Recordset)
°° ....déclaration de la MaCommande
°° MonRstVar.Open MaCommande
°° MonRstVar.RecordCount ' Test B
°° End Sub
Le résultat est le suivant :
Le Test B est OK et le Test A génére une erreur : "impossible..sur un
objet
fermé"
Cela ce comporte comme si MonRst passé par référence est bien ouvert dans
MaProcedureB (Test B : OK)
mais est refermé lors du retour à MaProcedureA !! :-( ??
Je ne comprend pas pourquoi,
quelqu'un peut-il m'aider pour faire passer correctement le RecordSet par
Référence ?
Je suis dans l'attente de votre aide,
Merci,encore,
Thierry.
Réponse Ilan : * "..ESSAIE de declarer MonRst en tant variable Public .." C'est justement pouir ne pas utiliser de variable globale Public que je passe par référence. * "..sinon declare MaProcedure en tant que ADODB.recordset.." Au final MaProcedure est en fait une function qui prend une valeur booléenne.
Réponse Raymond : * "..exemple en DAO ... qui fonctionne.." J'ai effectivement testé en DAO est c'est bien OK, mais en ADO c'est une autre histoire !!
Après analyse, il se trouve que le problème vient du fait que je ferme ma connexion à la fin de MaProcedureB : °° MaCommande.ActiveConnection.Close Donc si je ne fais pas cela, tout fonctionne !! :-)
Ce qui me dérange c'est que je reste avec une connection ouverte plus utilisée !! :-( Donc il faut que j'approfondisse la question pour avoir un code propre.
Je tiens le forum au courant... si vous avez des remarques...ne pas hésiter..
Merci encore, Thierry.
"News Groups" a écrit dans le message de news: 417f7f3c$0$286$
Bonjour,
Je un probléme avec le passage de recordset par référence :
Soit la procédure A : Je déclare un RecordSet et je le passe par référence à la Procédure B pour ensuite récupérer le nombre d'enregistrement pour faire un test (Test A) °° Public Sub MaProcedureA () °° Dim MonRst AS New ADODB.Recordset °° Call MaProcédureB (MonRst) °° MonRst.RecordCount ' Test A °° End Sub
Soit la procédure B : J'ouvre un RecordSet passé par référence °° Public Sub MaProcedureB (MonRstVar AS ADODB.Recordset) °° ....déclaration de la MaCommande °° MonRstVar.Open MaCommande °° MonRstVar.RecordCount ' Test B °° End Sub
Le résultat est le suivant : Le Test B est OK et le Test A génére une erreur : "impossible..sur un objet
fermé" Cela ce comporte comme si MonRst passé par référence est bien ouvert dans MaProcedureB (Test B : OK) mais est refermé lors du retour à MaProcedureA !! :-( ??
Je ne comprend pas pourquoi, quelqu'un peut-il m'aider pour faire passer correctement le RecordSet par Référence ?
Je suis dans l'attente de votre aide, Merci,encore, Thierry.
Raymond [mvp]
Il me semblait bien que tu fermais.
Faut mettre ton close dans la procédure A ou une autre procédure qui aurait le même recordset en paramètre. par principe on met le close dans la même procédure que le dim. -- @+ 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
"News Groups" a écrit dans le message de news: 417f99bb$0$29529$
Merci de votre aide,
Réponse Ilan : * "..ESSAIE de declarer MonRst en tant variable Public .." C'est justement pouir ne pas utiliser de variable globale Public que je passe par référence. * "..sinon declare MaProcedure en tant que ADODB.recordset.." Au final MaProcedure est en fait une function qui prend une valeur booléenne.
Réponse Raymond : * "..exemple en DAO ... qui fonctionne.." J'ai effectivement testé en DAO est c'est bien OK, mais en ADO c'est une autre histoire !!
Après analyse, il se trouve que le problème vient du fait que je ferme ma connexion à la fin de MaProcedureB : °° MaCommande.ActiveConnection.Close Donc si je ne fais pas cela, tout fonctionne !! :-)
Ce qui me dérange c'est que je reste avec une connection ouverte plus utilisée !! :-( Donc il faut que j'approfondisse la question pour avoir un code propre.
Je tiens le forum au courant... si vous avez des remarques...ne pas hésiter..
Merci encore, Thierry.
Il me semblait bien que tu fermais.
Faut mettre ton close dans la procédure A ou une autre procédure qui aurait
le même recordset en paramètre.
par principe on met le close dans la même procédure que le dim.
--
@+
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
"News Groups" <bjt_nwsgrp@yahoo.fr> a écrit dans le message de news:
417f99bb$0$29529$636a15ce@news.free.fr...
Merci de votre aide,
Réponse Ilan :
* "..ESSAIE de declarer MonRst en tant variable Public .."
C'est justement pouir ne pas utiliser de variable globale Public que je
passe par référence.
* "..sinon declare MaProcedure en tant que ADODB.recordset.."
Au final MaProcedure est en fait une function qui prend une valeur
booléenne.
Réponse Raymond :
* "..exemple en DAO ... qui fonctionne.."
J'ai effectivement testé en DAO est c'est bien OK, mais en ADO c'est une
autre histoire !!
Après analyse, il se trouve que le problème vient du fait
que je ferme ma connexion à la fin de MaProcedureB :
°° MaCommande.ActiveConnection.Close
Donc si je ne fais pas cela, tout fonctionne !! :-)
Ce qui me dérange c'est que je reste avec une connection ouverte plus
utilisée !! :-(
Donc il faut que j'approfondisse la question pour avoir un code propre.
Je tiens le forum au courant...
si vous avez des remarques...ne pas hésiter..
Faut mettre ton close dans la procédure A ou une autre procédure qui aurait le même recordset en paramètre. par principe on met le close dans la même procédure que le dim. -- @+ 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
"News Groups" a écrit dans le message de news: 417f99bb$0$29529$
Merci de votre aide,
Réponse Ilan : * "..ESSAIE de declarer MonRst en tant variable Public .." C'est justement pouir ne pas utiliser de variable globale Public que je passe par référence. * "..sinon declare MaProcedure en tant que ADODB.recordset.." Au final MaProcedure est en fait une function qui prend une valeur booléenne.
Réponse Raymond : * "..exemple en DAO ... qui fonctionne.." J'ai effectivement testé en DAO est c'est bien OK, mais en ADO c'est une autre histoire !!
Après analyse, il se trouve que le problème vient du fait que je ferme ma connexion à la fin de MaProcedureB : °° MaCommande.ActiveConnection.Close Donc si je ne fais pas cela, tout fonctionne !! :-)
Ce qui me dérange c'est que je reste avec une connection ouverte plus utilisée !! :-( Donc il faut que j'approfondisse la question pour avoir un code propre.
Je tiens le forum au courant... si vous avez des remarques...ne pas hésiter..
Merci encore, Thierry.
News Groups
Effectivement, je ferme mon recordset et sa connection : MonRst.Close MonRst.ActiceConnection.Close
et tout fonctionne. !! :-)
Merci encore Raymond,
Thierry.
"Raymond [mvp]" a écrit dans le message de news:
Il me semblait bien que tu fermais.
Faut mettre ton close dans la procédure A ou une autre procédure qui aurait
le même recordset en paramètre. par principe on met le close dans la même procédure que le dim. -- @+ 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
"News Groups" a écrit dans le message de news: 417f99bb$0$29529$
Merci de votre aide,
Réponse Ilan : * "..ESSAIE de declarer MonRst en tant variable Public .." C'est justement pouir ne pas utiliser de variable globale Public que je
passe par référence. * "..sinon declare MaProcedure en tant que ADODB.recordset.." Au final MaProcedure est en fait une function qui prend une valeur booléenne.
Réponse Raymond : * "..exemple en DAO ... qui fonctionne.." J'ai effectivement testé en DAO est c'est bien OK, mais en ADO c'est une
autre histoire !!
Après analyse, il se trouve que le problème vient du fait que je ferme ma connexion à la fin de MaProcedureB : °° MaCommande.ActiveConnection.Close Donc si je ne fais pas cela, tout fonctionne !! :-)
Ce qui me dérange c'est que je reste avec une connection ouverte plus utilisée !! :-( Donc il faut que j'approfondisse la question pour avoir un code propre.
Je tiens le forum au courant... si vous avez des remarques...ne pas hésiter..
Merci encore, Thierry.
Effectivement, je ferme mon recordset et sa connection :
MonRst.Close
MonRst.ActiceConnection.Close
et tout fonctionne. !! :-)
Merci encore Raymond,
Thierry.
"Raymond [mvp]" <XYZ.access.seneque@free.fr> a écrit dans le message de
news: uNwe0VCvEHA.3376@TK2MSFTNGP12.phx.gbl...
Il me semblait bien que tu fermais.
Faut mettre ton close dans la procédure A ou une autre procédure qui
aurait
le même recordset en paramètre.
par principe on met le close dans la même procédure que le dim.
--
@+
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
"News Groups" <bjt_nwsgrp@yahoo.fr> a écrit dans le message de news:
417f99bb$0$29529$636a15ce@news.free.fr...
Merci de votre aide,
Réponse Ilan :
* "..ESSAIE de declarer MonRst en tant variable Public .."
C'est justement pouir ne pas utiliser de variable globale Public que
je
passe par référence.
* "..sinon declare MaProcedure en tant que ADODB.recordset.."
Au final MaProcedure est en fait une function qui prend une valeur
booléenne.
Réponse Raymond :
* "..exemple en DAO ... qui fonctionne.."
J'ai effectivement testé en DAO est c'est bien OK, mais en ADO c'est
une
autre histoire !!
Après analyse, il se trouve que le problème vient du fait
que je ferme ma connexion à la fin de MaProcedureB :
°° MaCommande.ActiveConnection.Close
Donc si je ne fais pas cela, tout fonctionne !! :-)
Ce qui me dérange c'est que je reste avec une connection ouverte plus
utilisée !! :-(
Donc il faut que j'approfondisse la question pour avoir un code propre.
Je tiens le forum au courant...
si vous avez des remarques...ne pas hésiter..
Effectivement, je ferme mon recordset et sa connection : MonRst.Close MonRst.ActiceConnection.Close
et tout fonctionne. !! :-)
Merci encore Raymond,
Thierry.
"Raymond [mvp]" a écrit dans le message de news:
Il me semblait bien que tu fermais.
Faut mettre ton close dans la procédure A ou une autre procédure qui aurait
le même recordset en paramètre. par principe on met le close dans la même procédure que le dim. -- @+ 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
"News Groups" a écrit dans le message de news: 417f99bb$0$29529$
Merci de votre aide,
Réponse Ilan : * "..ESSAIE de declarer MonRst en tant variable Public .." C'est justement pouir ne pas utiliser de variable globale Public que je
passe par référence. * "..sinon declare MaProcedure en tant que ADODB.recordset.." Au final MaProcedure est en fait une function qui prend une valeur booléenne.
Réponse Raymond : * "..exemple en DAO ... qui fonctionne.." J'ai effectivement testé en DAO est c'est bien OK, mais en ADO c'est une
autre histoire !!
Après analyse, il se trouve que le problème vient du fait que je ferme ma connexion à la fin de MaProcedureB : °° MaCommande.ActiveConnection.Close Donc si je ne fais pas cela, tout fonctionne !! :-)
Ce qui me dérange c'est que je reste avec une connection ouverte plus utilisée !! :-( Donc il faut que j'approfondisse la question pour avoir un code propre.
Je tiens le forum au courant... si vous avez des remarques...ne pas hésiter..