Je parcours en ADO un très gros RecordSet et j'affiche une barre de progression. Mais malgré un DoEvents, la barre ne progresse pas,
elle passe à 1%, 2%, jusqu'à 10%, puis plus rien, et à la fin du recordSet, elle affiche 63%.Toute idée (qui ne freine pas
l'exécution du code) est la bienvenue
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
Anor
Salut,
J-Pierre : | Bonjour tout le monde, | | Je parcours en ADO un très gros RecordSet et j'affiche une barre de | progression. Mais malgré un DoEvents, la barre ne progresse pas, elle | passe à 1%, 2%, jusqu'à 10%, puis plus rien, et à la fin du | recordSet, elle affiche 63%.Toute idée (qui ne freine pas l'exécution | du code) est la bienvenue | | Merci | J-Pierre
as tu essayé avec une barre de progression standard :
Dim NbTotal as Long, No as long
NbTotal = adomachin.count Do while not adomachin.eof No=No + 1 SysCmd acSysCmdInitMeter, "Traitement en cours " & _ Int((No / NbTotal) * 100) & "%", NbTotal SysCmd acSysCmdUpdateMeter, No 'Traitement parcours ADO adomachin.movenext Loop SysCmd acSysCmdClearStatus
ps : puisque tu manipules ADO, tu as aussi le droit de donner des bouts de code. ça m'intéresserait d'apprendre les bases car ça manque un peu sur le forum, et comme pour ma part j'apprends avec le forum, si personne ne publie de bouts de code simples, on ne va pas beaucoup avancer.
-- à+ Arnaud -------------------------------------------------- Avant toute chose : http://users.skynet.be/mpfa/ Access Memorandum - http://memoaccess.free.fr ## Réponses souhaitées sur ce forum, merci. ## --------------------------------------------------
Salut,
J-Pierre <pas.de.pub.jpberchtold@hotmail.com> :
| Bonjour tout le monde,
|
| Je parcours en ADO un très gros RecordSet et j'affiche une barre de
| progression. Mais malgré un DoEvents, la barre ne progresse pas, elle
| passe à 1%, 2%, jusqu'à 10%, puis plus rien, et à la fin du
| recordSet, elle affiche 63%.Toute idée (qui ne freine pas l'exécution
| du code) est la bienvenue
|
| Merci
| J-Pierre
as tu essayé avec une barre de progression standard :
Dim NbTotal as Long, No as long
NbTotal = adomachin.count
Do while not adomachin.eof
No=No + 1
SysCmd acSysCmdInitMeter, "Traitement en cours " & _
Int((No / NbTotal) * 100) & "%", NbTotal
SysCmd acSysCmdUpdateMeter, No
'Traitement parcours ADO
adomachin.movenext
Loop
SysCmd acSysCmdClearStatus
ps : puisque tu manipules ADO, tu as aussi le droit de donner des bouts de code.
ça m'intéresserait d'apprendre les bases car ça manque un peu sur le forum,
et comme pour ma part j'apprends avec le forum, si personne ne publie de bouts de code simples,
on ne va pas beaucoup avancer.
--
à+
Arnaud
--------------------------------------------------
Avant toute chose : http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
## Réponses souhaitées sur ce forum, merci. ##
--------------------------------------------------
J-Pierre : | Bonjour tout le monde, | | Je parcours en ADO un très gros RecordSet et j'affiche une barre de | progression. Mais malgré un DoEvents, la barre ne progresse pas, elle | passe à 1%, 2%, jusqu'à 10%, puis plus rien, et à la fin du | recordSet, elle affiche 63%.Toute idée (qui ne freine pas l'exécution | du code) est la bienvenue | | Merci | J-Pierre
as tu essayé avec une barre de progression standard :
Dim NbTotal as Long, No as long
NbTotal = adomachin.count Do while not adomachin.eof No=No + 1 SysCmd acSysCmdInitMeter, "Traitement en cours " & _ Int((No / NbTotal) * 100) & "%", NbTotal SysCmd acSysCmdUpdateMeter, No 'Traitement parcours ADO adomachin.movenext Loop SysCmd acSysCmdClearStatus
ps : puisque tu manipules ADO, tu as aussi le droit de donner des bouts de code. ça m'intéresserait d'apprendre les bases car ça manque un peu sur le forum, et comme pour ma part j'apprends avec le forum, si personne ne publie de bouts de code simples, on ne va pas beaucoup avancer.
-- à+ Arnaud -------------------------------------------------- Avant toute chose : http://users.skynet.be/mpfa/ Access Memorandum - http://memoaccess.free.fr ## Réponses souhaitées sur ce forum, merci. ## --------------------------------------------------
J-Pierre
Encore moi,
Je sens que vous êtes tous impatient d'admirer la qualité de mon code :o) Moi, j'utilise le contrôle ActiveX, mais je ferai comme Anor, pourquoi faire simple quand on peut faire compliqué ????
Bon, voilà la bête ------------------------------------------------------------- Dim strgSQL, strgINS, Wreference, Wdesignation, WtexteArt, WtexteTot As String Dim WachatsTotal, WpercentArt, WpercentTot As Double Dim WrecordsAffected, WachatsLignes, Wlignes, Wstep As Long Dim rst As New ADODB.Recordset Dim cnn As New ADODB.Connection
'calcul du total du montant HT et contrôles de validité------------------------
If IsNull(DSum("[Montant HT]", "[Achats]")) Then MsgBox "Aucune donnée importée", vbOKOnly, "TRAITEMENT DES DONNEES" Exit Sub End If
If WachatsTotal = 0 Then MsgBox "Le total des achats est ZERO, êtes-vous sûr de vouloir continuer ?", _ vbOKOnly, "TRAITEMENT DES DONNEES" Exit Sub End If
DoCmd.Hourglass True
'---------------------------------------------------------------------------------------- 'ça roule, pour chaque article, calculer le pourcentage et le pourcentage total '----------------------------------------------------------------------------------------
strgSQL = "SELECT Importation_cumul_par_article.* FROM Importation_cumul_par_article " & _ "ORDER BY MontantHT DESC;" 'MsgBox strgSQL rst.Open strgSQL, cnn, adOpenForwardOnly, adLockReadOnly
If rst.BOF And rst.EOF Then MsgBox "Petit problème, ça ne marche pas.....", vbOKOnly + vbCritical, _ "JE SENS QUE VOUS ALLEZ RÂLER........" rst.Close cnn.Close Set cnn = Nothing Exit Sub End If
Do Until rst.EOF
Wlignes = Wlignes + 1
If Me.CtlActiveX5.Value < (Wlignes Wstep) Then Me.CtlActiveX5.Value = (Wlignes Wstep) DoEvents End If
'ICI, des calculs qu'Anor ne comprendrait pas bien.......
rst.Close cnn.close set cnn = Nothing -------------------------------------------------------------------------------- J-Pierre
"Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message de news:
Salut,
J-Pierre : | Bonjour tout le monde, | | Je parcours en ADO un très gros RecordSet et j'affiche une barre de | progression. Mais malgré un DoEvents, la barre ne progresse pas, elle | passe à 1%, 2%, jusqu'à 10%, puis plus rien, et à la fin du | recordSet, elle affiche 63%.Toute idée (qui ne freine pas l'exécution | du code) est la bienvenue | | Merci | J-Pierre
as tu essayé avec une barre de progression standard :
Dim NbTotal as Long, No as long
NbTotal = adomachin.count Do while not adomachin.eof No=No + 1 SysCmd acSysCmdInitMeter, "Traitement en cours " & _ Int((No / NbTotal) * 100) & "%", NbTotal SysCmd acSysCmdUpdateMeter, No 'Traitement parcours ADO adomachin.movenext Loop SysCmd acSysCmdClearStatus
ps : puisque tu manipules ADO, tu as aussi le droit de donner des bouts de code. ça m'intéresserait d'apprendre les bases car ça manque un peu sur le forum, et comme pour ma part j'apprends avec le forum, si personne ne publie de bouts de code simples, on ne va pas beaucoup avancer.
-- à+ Arnaud -------------------------------------------------- Avant toute chose : http://users.skynet.be/mpfa/ Access Memorandum - http://memoaccess.free.fr ## Réponses souhaitées sur ce forum, merci. ## --------------------------------------------------
Encore moi,
Je sens que vous êtes tous impatient d'admirer la qualité de mon code :o)
Moi, j'utilise le contrôle ActiveX, mais je ferai comme Anor, pourquoi faire simple quand on peut faire compliqué ????
Bon, voilà la bête
-------------------------------------------------------------
Dim strgSQL, strgINS, Wreference, Wdesignation, WtexteArt, WtexteTot As String
Dim WachatsTotal, WpercentArt, WpercentTot As Double
Dim WrecordsAffected, WachatsLignes, Wlignes, Wstep As Long
Dim rst As New ADODB.Recordset
Dim cnn As New ADODB.Connection
'calcul du total du montant HT et contrôles de validité------------------------
If IsNull(DSum("[Montant HT]", "[Achats]")) Then
MsgBox "Aucune donnée importée", vbOKOnly, "TRAITEMENT DES DONNEES"
Exit Sub
End If
If WachatsTotal = 0 Then
MsgBox "Le total des achats est ZERO, êtes-vous sûr de vouloir continuer ?", _
vbOKOnly, "TRAITEMENT DES DONNEES"
Exit Sub
End If
DoCmd.Hourglass True
'----------------------------------------------------------------------------------------
'ça roule, pour chaque article, calculer le pourcentage et le pourcentage total
'----------------------------------------------------------------------------------------
strgSQL = "SELECT Importation_cumul_par_article.* FROM Importation_cumul_par_article " & _
"ORDER BY MontantHT DESC;"
'MsgBox strgSQL
rst.Open strgSQL, cnn, adOpenForwardOnly, adLockReadOnly
If rst.BOF And rst.EOF Then
MsgBox "Petit problème, ça ne marche pas.....", vbOKOnly + vbCritical, _
"JE SENS QUE VOUS ALLEZ RÂLER........"
rst.Close
cnn.Close
Set cnn = Nothing
Exit Sub
End If
Do Until rst.EOF
Wlignes = Wlignes + 1
If Me.CtlActiveX5.Value < (Wlignes Wstep) Then
Me.CtlActiveX5.Value = (Wlignes Wstep)
DoEvents
End If
'ICI, des calculs qu'Anor ne comprendrait pas bien.......
rst.Close
cnn.close
set cnn = Nothing
--------------------------------------------------------------------------------
J-Pierre
"Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message de news:ePSYUl1qDHA.2404@TK2MSFTNGP12.phx.gbl...
Salut,
J-Pierre <pas.de.pub.jpberchtold@hotmail.com> :
| Bonjour tout le monde,
|
| Je parcours en ADO un très gros RecordSet et j'affiche une barre de
| progression. Mais malgré un DoEvents, la barre ne progresse pas, elle
| passe à 1%, 2%, jusqu'à 10%, puis plus rien, et à la fin du
| recordSet, elle affiche 63%.Toute idée (qui ne freine pas l'exécution
| du code) est la bienvenue
|
| Merci
| J-Pierre
as tu essayé avec une barre de progression standard :
Dim NbTotal as Long, No as long
NbTotal = adomachin.count
Do while not adomachin.eof
No=No + 1
SysCmd acSysCmdInitMeter, "Traitement en cours " & _
Int((No / NbTotal) * 100) & "%", NbTotal
SysCmd acSysCmdUpdateMeter, No
'Traitement parcours ADO
adomachin.movenext
Loop
SysCmd acSysCmdClearStatus
ps : puisque tu manipules ADO, tu as aussi le droit de donner des bouts de code.
ça m'intéresserait d'apprendre les bases car ça manque un peu sur le forum,
et comme pour ma part j'apprends avec le forum, si personne ne publie de bouts de code simples,
on ne va pas beaucoup avancer.
--
à+
Arnaud
--------------------------------------------------
Avant toute chose : http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
## Réponses souhaitées sur ce forum, merci. ##
--------------------------------------------------
Je sens que vous êtes tous impatient d'admirer la qualité de mon code :o) Moi, j'utilise le contrôle ActiveX, mais je ferai comme Anor, pourquoi faire simple quand on peut faire compliqué ????
Bon, voilà la bête ------------------------------------------------------------- Dim strgSQL, strgINS, Wreference, Wdesignation, WtexteArt, WtexteTot As String Dim WachatsTotal, WpercentArt, WpercentTot As Double Dim WrecordsAffected, WachatsLignes, Wlignes, Wstep As Long Dim rst As New ADODB.Recordset Dim cnn As New ADODB.Connection
'calcul du total du montant HT et contrôles de validité------------------------
If IsNull(DSum("[Montant HT]", "[Achats]")) Then MsgBox "Aucune donnée importée", vbOKOnly, "TRAITEMENT DES DONNEES" Exit Sub End If
If WachatsTotal = 0 Then MsgBox "Le total des achats est ZERO, êtes-vous sûr de vouloir continuer ?", _ vbOKOnly, "TRAITEMENT DES DONNEES" Exit Sub End If
DoCmd.Hourglass True
'---------------------------------------------------------------------------------------- 'ça roule, pour chaque article, calculer le pourcentage et le pourcentage total '----------------------------------------------------------------------------------------
strgSQL = "SELECT Importation_cumul_par_article.* FROM Importation_cumul_par_article " & _ "ORDER BY MontantHT DESC;" 'MsgBox strgSQL rst.Open strgSQL, cnn, adOpenForwardOnly, adLockReadOnly
If rst.BOF And rst.EOF Then MsgBox "Petit problème, ça ne marche pas.....", vbOKOnly + vbCritical, _ "JE SENS QUE VOUS ALLEZ RÂLER........" rst.Close cnn.Close Set cnn = Nothing Exit Sub End If
Do Until rst.EOF
Wlignes = Wlignes + 1
If Me.CtlActiveX5.Value < (Wlignes Wstep) Then Me.CtlActiveX5.Value = (Wlignes Wstep) DoEvents End If
'ICI, des calculs qu'Anor ne comprendrait pas bien.......
rst.Close cnn.close set cnn = Nothing -------------------------------------------------------------------------------- J-Pierre
"Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message de news:
Salut,
J-Pierre : | Bonjour tout le monde, | | Je parcours en ADO un très gros RecordSet et j'affiche une barre de | progression. Mais malgré un DoEvents, la barre ne progresse pas, elle | passe à 1%, 2%, jusqu'à 10%, puis plus rien, et à la fin du | recordSet, elle affiche 63%.Toute idée (qui ne freine pas l'exécution | du code) est la bienvenue | | Merci | J-Pierre
as tu essayé avec une barre de progression standard :
Dim NbTotal as Long, No as long
NbTotal = adomachin.count Do while not adomachin.eof No=No + 1 SysCmd acSysCmdInitMeter, "Traitement en cours " & _ Int((No / NbTotal) * 100) & "%", NbTotal SysCmd acSysCmdUpdateMeter, No 'Traitement parcours ADO adomachin.movenext Loop SysCmd acSysCmdClearStatus
ps : puisque tu manipules ADO, tu as aussi le droit de donner des bouts de code. ça m'intéresserait d'apprendre les bases car ça manque un peu sur le forum, et comme pour ma part j'apprends avec le forum, si personne ne publie de bouts de code simples, on ne va pas beaucoup avancer.
-- à+ Arnaud -------------------------------------------------- Avant toute chose : http://users.skynet.be/mpfa/ Access Memorandum - http://memoaccess.free.fr ## Réponses souhaitées sur ce forum, merci. ## --------------------------------------------------