Je ne comprends pas pourquoi un DoCmd.RunSQL s'ex=E9cute=20
imm=E9diatement, alors que l'utilisation d'une requ=EAte=20
enregistr=E9e (avec param=E8tres) et beaucoup plus lente.
Dans les deux cas, la commande SQL est la m=EAme (Mise =E0=20
jour d'un enregistrement).
Je m'explique:
La s=E9quence suivante est imm=E9diate.
Dim strPropEnCours As String
Dim booTopRch As Integer
=20
DoCmd.Hourglass True
strPropEnCours =3D Me.LstExclure.Value
booTopRch =3D Not (Me.LstExclure.Column(1))
Alors que ce qui suit se bloque 2 =E0 3 secondes sur la=20
commande Set Qry =3D ... (Qry.Execute est imm=E9diat)
Dim strPropEnCours As String
Dim booTopRch As Integer
=20
DoCmd.Hourglass True
strPropEnCours =3D Me.LstExclure.Value
booTopRch =3D Not (Me.LstExclure.Column(1))
=20
Set db =3D CurrentDb
Set Qry =3D CurrentDb.QueryDefs("ReqProprietesExclues_MaJ")
Qry.Parameters("PrmNomUser") =3D Me.TbxNomUser.Value
Qry.Parameters("PrmNomProp") =3D strPropEnCours
Qry.Parameters("PrmTopRch") =3D Not (Me.LstExclure.Column
(1))
Qry.Execute
Qry.Close
Set Qry =3D Nothing
db.Close
Set db =3D Nothing
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
Raymond
Bonjour.
une première idée. une requête enregistrée doit être compilée avant de s'exécuter et en plus il y a création d'objets. ça suffit sur une petite requête pour justifier le temps. fais un essai en recompilant ton projet. une requête est compilée lors de sa première exécution ce qui veut dire que lorsqu'on modifie une requête il faut la lancer obligatoirement et si possible recompiler le projet. c'était la 1ere. -- @+ Raymond Access MVP. http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/charte.htm pour une meilleure efficacité de tes interventions sur MPFA.
"Xavier HUE" a écrit dans le message de news:001401c39ef8$5c0538f0$ Bonjour à tous,
Je ne comprends pas pourquoi un DoCmd.RunSQL s'exécute immédiatement, alors que l'utilisation d'une requête enregistrée (avec paramètres) et beaucoup plus lente. Dans les deux cas, la commande SQL est la même (Mise à jour d'un enregistrement).
Je m'explique:
La séquence suivante est immédiate. Dim strPropEnCours As String Dim booTopRch As Integer
DoCmd.Hourglass True strPropEnCours = Me.LstExclure.Value booTopRch = Not (Me.LstExclure.Column(1))
Alors que ce qui suit se bloque 2 à 3 secondes sur la commande Set Qry = ... (Qry.Execute est immédiat)
Dim strPropEnCours As String Dim booTopRch As Integer
DoCmd.Hourglass True strPropEnCours = Me.LstExclure.Value booTopRch = Not (Me.LstExclure.Column(1))
Set db = CurrentDb Set Qry = CurrentDb.QueryDefs("ReqProprietesExclues_MaJ") Qry.Parameters("PrmNomUser") = Me.TbxNomUser.Value Qry.Parameters("PrmNomProp") = strPropEnCours Qry.Parameters("PrmTopRch") = Not (Me.LstExclure.Column (1)) Qry.Execute
Qry.Close Set Qry = Nothing db.Close Set db = Nothing
Une idée?
Merci d'avance. Cordialement.
Bonjour.
une première idée.
une requête enregistrée doit être compilée avant de s'exécuter et en plus il
y a création d'objets. ça suffit sur une petite requête pour justifier le
temps. fais un essai en recompilant ton projet. une requête est compilée
lors de sa première exécution ce qui veut dire que lorsqu'on modifie une
requête il faut la lancer obligatoirement et si possible recompiler le
projet.
c'était la 1ere.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.
"Xavier HUE" <elxavpub@bupfree.fr> a écrit dans le message de
news:001401c39ef8$5c0538f0$a101280a@phx.gbl...
Bonjour à tous,
Je ne comprends pas pourquoi un DoCmd.RunSQL s'exécute
immédiatement, alors que l'utilisation d'une requête
enregistrée (avec paramètres) et beaucoup plus lente.
Dans les deux cas, la commande SQL est la même (Mise à
jour d'un enregistrement).
Je m'explique:
La séquence suivante est immédiate.
Dim strPropEnCours As String
Dim booTopRch As Integer
DoCmd.Hourglass True
strPropEnCours = Me.LstExclure.Value
booTopRch = Not (Me.LstExclure.Column(1))
Alors que ce qui suit se bloque 2 à 3 secondes sur la
commande Set Qry = ... (Qry.Execute est immédiat)
Dim strPropEnCours As String
Dim booTopRch As Integer
DoCmd.Hourglass True
strPropEnCours = Me.LstExclure.Value
booTopRch = Not (Me.LstExclure.Column(1))
Set db = CurrentDb
Set Qry = CurrentDb.QueryDefs("ReqProprietesExclues_MaJ")
Qry.Parameters("PrmNomUser") = Me.TbxNomUser.Value
Qry.Parameters("PrmNomProp") = strPropEnCours
Qry.Parameters("PrmTopRch") = Not (Me.LstExclure.Column
(1))
Qry.Execute
Qry.Close
Set Qry = Nothing
db.Close
Set db = Nothing
une première idée. une requête enregistrée doit être compilée avant de s'exécuter et en plus il y a création d'objets. ça suffit sur une petite requête pour justifier le temps. fais un essai en recompilant ton projet. une requête est compilée lors de sa première exécution ce qui veut dire que lorsqu'on modifie une requête il faut la lancer obligatoirement et si possible recompiler le projet. c'était la 1ere. -- @+ Raymond Access MVP. http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/charte.htm pour une meilleure efficacité de tes interventions sur MPFA.
"Xavier HUE" a écrit dans le message de news:001401c39ef8$5c0538f0$ Bonjour à tous,
Je ne comprends pas pourquoi un DoCmd.RunSQL s'exécute immédiatement, alors que l'utilisation d'une requête enregistrée (avec paramètres) et beaucoup plus lente. Dans les deux cas, la commande SQL est la même (Mise à jour d'un enregistrement).
Je m'explique:
La séquence suivante est immédiate. Dim strPropEnCours As String Dim booTopRch As Integer
DoCmd.Hourglass True strPropEnCours = Me.LstExclure.Value booTopRch = Not (Me.LstExclure.Column(1))
Alors que ce qui suit se bloque 2 à 3 secondes sur la commande Set Qry = ... (Qry.Execute est immédiat)
Dim strPropEnCours As String Dim booTopRch As Integer
DoCmd.Hourglass True strPropEnCours = Me.LstExclure.Value booTopRch = Not (Me.LstExclure.Column(1))
Set db = CurrentDb Set Qry = CurrentDb.QueryDefs("ReqProprietesExclues_MaJ") Qry.Parameters("PrmNomUser") = Me.TbxNomUser.Value Qry.Parameters("PrmNomProp") = strPropEnCours Qry.Parameters("PrmTopRch") = Not (Me.LstExclure.Column (1)) Qry.Execute
Qry.Close Set Qry = Nothing db.Close Set db = Nothing