OVH Cloud OVH Cloud

Macro ou VBA

3 réponses
Avatar
larnoum
Bonjour,
Tout d'abord mes meilleurs voeux pour 2007.
J'ai une macro sous Access97 qui est hyper longue : près de 2heures de
calcul sur 78000 enregistrements
UPDATE Fme_T SET VOLCT_TOT_FME = DSum("[VOLCT]","Fme_T","FME = '"&[FME]&"'")
N'y aurait-il pas la possibilité d'optimiser celle-ci soit en l'écrivant
sous VBA (mais je n'y arrive pas, si vous pouviez m'aider) soit par un autre
moyen ???
Merci par avance.
--
Pierre

3 réponses

Avatar
ze Titi
Bonjour larnoum et meilleurs voeux à toi aussi !

Je ne sais pas si ça serait plus rapide en VBA mais dans le doute, le
code suivant devrait donner le même résultat:

dim rs as DAO.Recordset
Set rs=Currentdb.OpenRecordset("Fme_T",dbOpenDynaset)
rs.MoveLast
rs.MoveFirst
While not rs.EOF
rs!VOLCT_TOT_FME=DSum("VOLCT","Fme_T","FME='" & rs!FME & "'")
rs.Update
rs.MoveNext
Wend
rs.Close
set rs=Nothing



Dans ton message
Bonjour,
Tout d'abord mes meilleurs voeux pour 2007.
J'ai une macro sous Access97 qui est hyper longue : près de 2heures de
calcul sur 78000 enregistrements
UPDATE Fme_T SET VOLCT_TOT_FME = DSum("[VOLCT]","Fme_T","FME = '"&[FME]&"'")
N'y aurait-il pas la possibilité d'optimiser celle-ci soit en l'écrivant
sous VBA (mais je n'y arrive pas, si vous pouviez m'aider) soit par un autre
moyen ???
Merci par avance.


--
Voilou !
Cordialement,

Ze Titi

Avatar
larnoum
Merci pour ze Titi pour ta réponse rapide.
Je teste ce soir et te donne réponse.
--
Pierre



Bonjour larnoum et meilleurs voeux à toi aussi !

Je ne sais pas si ça serait plus rapide en VBA mais dans le doute, le
code suivant devrait donner le même résultat:

dim rs as DAO.Recordset
Set rs=Currentdb.OpenRecordset("Fme_T",dbOpenDynaset)
rs.MoveLast
rs.MoveFirst
While not rs.EOF
rs!VOLCT_TOT_FME=DSum("VOLCT","Fme_T","FME='" & rs!FME & "'")
rs.Update
rs.MoveNext
Wend
rs.Close
set rs=Nothing



Dans ton message
Bonjour,
Tout d'abord mes meilleurs voeux pour 2007.
J'ai une macro sous Access97 qui est hyper longue : près de 2heures de
calcul sur 78000 enregistrements
UPDATE Fme_T SET VOLCT_TOT_FME = DSum("[VOLCT]","Fme_T","FME = '"&[FME]&"'")
N'y aurait-il pas la possibilité d'optimiser celle-ci soit en l'écrivant
sous VBA (mais je n'y arrive pas, si vous pouviez m'aider) soit par un autre
moyen ???
Merci par avance.


--
Voilou !
Cordialement,

Ze Titi






Avatar
larnoum
Merci ze Titi pour ta réponse rapide.
Je teste ce soir et te donne réponse.
--
Pierre



Bonjour larnoum et meilleurs voeux à toi aussi !

Je ne sais pas si ça serait plus rapide en VBA mais dans le doute, le
code suivant devrait donner le même résultat:

dim rs as DAO.Recordset
Set rs=Currentdb.OpenRecordset("Fme_T",dbOpenDynaset)
rs.MoveLast
rs.MoveFirst
While not rs.EOF
rs!VOLCT_TOT_FME=DSum("VOLCT","Fme_T","FME='" & rs!FME & "'")
rs.Update
rs.MoveNext
Wend
rs.Close
set rs=Nothing



Dans ton message
Bonjour,
Tout d'abord mes meilleurs voeux pour 2007.
J'ai une macro sous Access97 qui est hyper longue : près de 2heures de
calcul sur 78000 enregistrements
UPDATE Fme_T SET VOLCT_TOT_FME = DSum("[VOLCT]","Fme_T","FME = '"&[FME]&"'")
N'y aurait-il pas la possibilité d'optimiser celle-ci soit en l'écrivant
sous VBA (mais je n'y arrive pas, si vous pouviez m'aider) soit par un autre
moyen ???
Merci par avance.


--
Voilou !
Cordialement,

Ze Titi