OVH Cloud OVH Cloud

problemme vitesse execution

1 réponse
Avatar
lou
bonjour

sur clic je dois executer ce code dans une proc avec plusieurs if
le problemme c'esr que c'est tres lent

y a t'il possibilté d'accelerer la procedure
avec select case ou je sais pas moi
car pas tres expert en code
voici le code


'''''''''''case1
If Me.CODE = 0 And Me.AJOUTkm = False And Me.O488 = True Then
Me.Désignation1 = Null
Me.PrixUnitaire1 = 0
Me.QTE1 = 0
Me.TOTAL1 = 0
Me.Désignation3 = Null
Me.QTE3 = 0
Me.PrixUnitaire3 = 0
Me.TOTAL3 = 0
Me.PrixUnitaire4 = 0
Me.QTE4 = 0
Me.Désignation4 = Null
Me.TOTAL4 = 0
Me.Désignation6 = Null
Me.QTE6 = 0
Me.PrixUnitaire6 = 0
Me.TOTAL6 = 0
Me.majo6.Enabled = True
Me.AJOUTkm3.Enabled = True
Me.majoDcte.Enabled = True
Me.majoDc = False
Me.majo1 = False
If Me.AJOUTkm1 = True Or Me.AJOUTkm2 = True Or Me.AJOUTkm3 = True And
Me.majo3 = True Then
Me.majo3 = Me.majo3
End If
If Me.AJOUTkm1 = True Or Me.AJOUTkm2 = True Or Me.AJOUTkm3 = True And
Me.majo4 = True Then
Me.majo4 = Me.majo4
End If
If Me.AJOUTkm1 = False And Me.AJOUTkm2 = False And Me.AJOUTkm3 = False And
Me.majo3 = True Then
Me.majo3 = False
End If
If Me.AJOUTkm1 = False And Me.AJOUTkm2 = False And Me.AJOUTkm3 = False And
Me.majo4 = True Then
Me.majo4 = False
End If
FR = majoration.MAJO100()
FR2 = majoration.MAJO50()
FT = factur.calc2
End If






''''''''''''''''''''''''''''''''''''''''''case'''2
If Me.CODE = 0 And Me.AJOUTkm = True And Me.O488 = True Then
SqlR = "SELECT TarifsClient.TarifKM2 AS A, TarifsClient.TarifSC2 AS B,
TarifsClient.TarifGRUE2 AS C, TarifsClient.TarifGARDIENNAGE2 AS D,
TarifsClient.TarifMainOeuvre2 AS E, TarifsClient.TarifSCamionette2 AS F,
TarifsClient.KMdeduction2 AS G, TarifsClient.Garddeduction2 AS H FROM
TarifsClient;"
Set RstR = CurrentDb.OpenRecordset(SqlR)
If RstR.EOF = True Then '....Vérifie ci la table n'est pas vide
MsgBox "Aucunes Données", vbCritical, "Table Vide"
Else
RstR.MoveFirst
Me.PrixKM = RstR.A ''''''''''''''''''''''''km
Me.PrixKM1 = RstR.A ''''''''''''''''''''''km
Me.TarifGARD = RstR.D ''''''''''''''''''''gardiennage
Me.PrixUnitaire1 = RstR.B '''''''''''''''sortie camion
Me.Désignation1 = "Sortie Camion"
Me.QTE1 = 1
Me.TOTAL1 = Me.QTE1 * Me.PrixUnitaire1
Me.PrixUnitaire3 = RstR!C ''''''''''''''''''''grue ou treuil
Me.Désignation3 = "Travail Grue ou Treuil " & Format(PrixUnitaire3,
"###0.00") & " " & Me.Modifiable209 & " le 1/4 h"
Me.QTE3 = 1
Me.TOTAL3 = Me.PrixUnitaire3 * Me.QTE3
Me.PrixUnitaire4 = RstR!E ''''''''''''''''''''''main oeuvre

If Me.gg = 1 Or Me.gg = 2 Or Me.gg = 3 Then
Me.QTE4 = 4
Else
Me.QTE4 = gg
End If

Me.Désignation4 = "Main d'oeuvre " & Me.PrixUnitaire4 & " " &
Me.Modifiable209 & " le 1/4 h"
Me.TOTAL4 = QTE4 * PrixUnitaire4
Me.TotalKM = KMAR - KMDEP
Me.Désignation6 = "Déplacement Km"
Me.QTE6 = TotalKM
Me.PrixUnitaire6 = Me.PrixKM
Me.TOTAL6 = Me.QTE6 * Me.PrixKM
Me.majo6.Enabled = False
Me.AJOUTkm3.Enabled = False
Me.majoDcte.Enabled = False
FR = majoration.MAJO100()
FR2 = majoration.MAJO50()
FT = factur.calc2
Exit Sub
While RstR.EOF = False
RstR.MoveNext
Wend
DoCmd.GoToRecord , , acFirst
Exit Sub
End If
End If

''''''''''''''''''''''''''''''case 3
If Me.CODE = 0 And Me.AJOUTkm = False And Me.AJOUTkm1 = True And Me.O488 =
True Then
SqlR = "SELECT TarifsClient.TarifKM2 AS A, TarifsClient.TarifSC2 AS B,
TarifsClient.TarifGRUE2 AS C, TarifsClient.TarifGARDIENNAGE2 AS D,
TarifsClient.TarifMainOeuvre2 AS E, TarifsClient.TarifSCamionette2 AS F,
TarifsClient.KMdeduction2 AS G, TarifsClient.Garddeduction2 AS H FROM
TarifsClient;"
Set RstR = CurrentDb.OpenRecordset(SqlR)
If RstR.EOF = True Then '....Vérifie ci la table n'est pas vide
MsgBox "Aucunes Données", vbCritical, "Table Vide"
Else
RstR.MoveFirst
Me.PrixKM = RstR.A ''''''''''''''''''''''''km
Me.PrixKM1 = RstR.A ''''''''''''''''''''''km
Me.TarifGARD = RstR.D ''''''''''''''''''''gardiennage
Me.PrixUnitaire1 = RstR.B '''''''''''''''sortie camion
Me.PrixUnitaire3 = RstR!C ''''''''''''''''''''grue ou treuil
Me.Désignation3 = "Travail Grue ou Treuil " & Format(PrixUnitaire3,
"###0.00") & " " & Me.Modifiable209 & " le 1/4 h"
Me.QTE3 = 1
Me.TOTAL3 = Me.PrixUnitaire3 * Me.QTE3
Me.PrixUnitaire4 = RstR!E ''''''''''''''''''''''main oeuvre

If Me.gg = 1 Or Me.gg = 2 Or Me.gg = 3 Then
Me.QTE4 = 4
Else
Me.QTE4 = gg
End If

Me.Désignation4 = "Main d'oeuvre " & Me.PrixUnitaire4 & " " &
Me.Modifiable209 & " le 1/4 h"
Me.TOTAL4 = QTE4 * PrixUnitaire4
Me.TotalKM = KMAR - KMDEP
Me.Désignation1 = Null
Me.QTE1 = 0
Me.PrixUnitaire1 = 0
Me.TOTAL1 = 0
Me.Désignation6 = Null
Me.QTE6 = 0
Me.PrixUnitaire6 = 0
Me.TOTAL6 = 0
Me.majo6.Enabled = True
Me.majoDc = False
Me.majo1 = False
Me.TotMAJjourFérié = 0
Me.TotMAJsamedi = 0
FR = majoration.MAJO100()
FR2 = majoration.MAJO50()
FT = factur.calc2
Exit Sub
While RstR.EOF = False
RstR.MoveNext
Wend
DoCmd.GoToRecord , , acFirst
Exit Sub
End If
End If

'''''''''''''''''''''case ''''4
If Me.CODE = 0 And Me.AJOUTkm = True And Me.AJOUTkm1 = False And Me.O488 =
True Then
SqlR = "SELECT TarifsClient.TarifKM2 AS A, TarifsClient.TarifSC2 AS B,
TarifsClient.TarifGRUE2 AS C, TarifsClient.TarifGARDIENNAGE2 AS D,
TarifsClient.TarifMainOeuvre2 AS E, TarifsClient.TarifSCamionette2 AS F,
TarifsClient.KMdeduction2 AS G, TarifsClient.Garddeduction2 AS H FROM
TarifsClient;"
Set RstR = CurrentDb.OpenRecordset(SqlR)
If RstR.EOF = True Then '....Vérifie ci la table n'est pas vide
MsgBox "Aucunes Données", vbCritical, "Table Vide"
Else
RstR.MoveFirst
Me.PrixKM = RstR.A ''''''''''''''''''''''''km
Me.PrixKM1 = RstR.A ''''''''''''''''''''''km
Me.TarifGARD = RstR.D ''''''''''''''''''''gardiennage
Me.PrixUnitaire1 = RstR.B '''''''''''''''sortie camion
Me.PrixUnitaire3 = RstR!C ''''''''''''''''''''grue ou treuil
Me.Désignation3 = "Travail Grue ou Treuil " & Format(PrixUnitaire3,
"###0.00") & " " & Me.Modifiable209 & " le 1/4 h"
Me.QTE3 = 1
Me.TOTAL3 = Me.PrixUnitaire3 * Me.QTE3
Me.PrixUnitaire4 = RstR!E ''''''''''''''''''''''main oeuvre

If Me.gg = 1 Or Me.gg = 2 Or Me.gg = 3 Then
Me.QTE4 = 4
Else
Me.QTE4 = gg
End If

Me.Désignation4 = "Main d'oeuvre " & Me.PrixUnitaire4 & " " &
Me.Modifiable209 & " le 1/4 h"
Me.TOTAL4 = QTE4 * PrixUnitaire4
Me.TotalKM = KMAR - KMDEP
Me.Désignation1 = Null
Me.QTE1 = 0
Me.PrixUnitaire1 = 0
Me.TOTAL1 = 0
Me.Désignation6 = Null
Me.QTE6 = 0
Me.PrixUnitaire6 = 0
Me.TOTAL6 = 0
Me.majo6.Enabled = True
Me.majoDc = False
Me.majo1 = False
Me.TotMAJjourFérié = 0
Me.TotMAJsamedi = 0
FR = majoration.MAJO100()
FR2 = majoration.MAJO50()
FT = factur.calc2
Exit Sub
While RstR.EOF = False
RstR.MoveNext
Wend
DoCmd.GoToRecord , , acFirst
Exit Sub
End If
End If

''''''''''''''''''''''''''''''''case 5
If Me.CODE = 0 And Me.AJOUTkm = False And Me.AJOUTkm2 = True And Me.O488 =
True Then
SqlR = "SELECT TarifsClient.TarifKM2 AS A, TarifsClient.TarifSC2 AS B,
TarifsClient.TarifGRUE2 AS C, TarifsClient.TarifGARDIENNAGE2 AS D,
TarifsClient.TarifMainOeuvre2 AS E, TarifsClient.TarifSCamionette2 AS F,
TarifsClient.KMdeduction2 AS G, TarifsClient.Garddeduction2 AS H FROM
TarifsClient;"
Set RstR = CurrentDb.OpenRecordset(SqlR)
If RstR.EOF = True Then '....Vérifie ci la table n'est pas vide
MsgBox "Aucunes Données", vbCritical, "Table Vide"
Else
RstR.MoveFirst
Me.PrixKM = RstR.A ''''''''''''''''''''''''km
Me.PrixKM1 = RstR.A ''''''''''''''''''''''km
Me.TarifGARD = RstR.D ''''''''''''''''''''gardiennage
Me.PrixUnitaire1 = RstR.B '''''''''''''''sortie camion
Me.PrixUnitaire3 = RstR!C ''''''''''''''''''''grue ou treuil
Me.Désignation3 = "Travail Grue ou Treuil " & Format(PrixUnitaire3,
"###0.00") & " " & Me.Modifiable209 & " le 1/4 h"
Me.QTE3 = 1
Me.TOTAL3 = Me.PrixUnitaire3 * Me.QTE3
Me.PrixUnitaire4 = RstR!E ''''''''''''''''''''''main oeuvre
If Me.gg = 1 Or Me.gg = 2 Or Me.gg = 3 Then
Me.QTE4 = 4
Else
Me.QTE4 = gg
End If
Me.Désignation4 = "Main d'oeuvre " & Me.PrixUnitaire4 & " " &
Me.Modifiable209 & " le 1/4 h"
Me.TOTAL4 = QTE4 * PrixUnitaire4
Me.TotalKM = KMAR - KMDEP
Me.Désignation1 = Null
Me.QTE1 = 0
Me.PrixUnitaire1 = 0
Me.TOTAL1 = 0
Me.Désignation6 = Null
Me.QTE6 = 0
Me.PrixUnitaire6 = 0
Me.TOTAL6 = 0
Me.majo6.Enabled = True
Me.majoDc = False
Me.majo1 = False
Me.TotMAJjourFérié = 0
Me.TotMAJsamedi = 0
FR = majoration.MAJO100()
FR2 = majoration.MAJO50()
'MsgBox "7"
FT = factur.calc2
Exit Sub
While RstR.EOF = False
RstR.MoveNext
Wend
DoCmd.GoToRecord , , acFirst
Exit Sub
End If
End If
'''''''''''''''''''''''''''''''''case 5
If Me.CODE = 0 And Me.AJOUTkm = True And Me.AJOUTkm2 = False And Me.O488 =
True Then
SqlR = "SELECT TarifsClient.TarifKM2 AS A, TarifsClient.TarifSC2 AS B,
TarifsClient.TarifGRUE2 AS C, TarifsClient.TarifGARDIENNAGE2 AS D,
TarifsClient.TarifMainOeuvre2 AS E, TarifsClient.TarifSCamionette2 AS F,
TarifsClient.KMdeduction2 AS G, TarifsClient.Garddeduction2 AS H FROM
TarifsClient;"
Set RstR = CurrentDb.OpenRecordset(SqlR)
If RstR.EOF = True Then '....Vérifie ci la table n'est pas vide
MsgBox "Aucunes Données", vbCritical, "Table Vide"
Else
RstR.MoveFirst
Me.PrixKM = RstR.A ''''''''''''''''''''''''km
Me.PrixKM1 = RstR.A ''''''''''''''''''''''km
Me.TarifGARD = RstR.D ''''''''''''''''''''gardiennage
Me.PrixUnitaire1 = RstR.B '''''''''''''''sortie camion
Me.PrixUnitaire3 = RstR!C ''''''''''''''''''''grue ou treuil
Me.Désignation3 = "Travail Grue ou Treuil " & Format(PrixUnitaire3,
"###0.00") & " " & Me.Modifiable209 & " le 1/4 h"
Me.QTE3 = 1
Me.TOTAL3 = Me.PrixUnitaire3 * Me.QTE3
Me.PrixUnitaire4 = RstR!E ''''''''''''''''''''''main oeuvre
If Me.gg = 1 Or Me.gg = 2 Or Me.gg = 3 Then

Me.QTE4 = 4
Else
Me.QTE4 = gg
End If

Me.Désignation4 = "Main d'oeuvre " & Me.PrixUnitaire4 & " " &
Me.Modifiable209 & " le 1/4 h"
Me.TOTAL4 = QTE4 * PrixUnitaire4
Me.TotalKM = KMAR - KMDEP
Me.Désignation1 = Null
Me.QTE1 = 0
Me.PrixUnitaire1 = 0
Me.TOTAL1 = 0
Me.Désignation6 = Null
Me.QTE6 = 0
Me.PrixUnitaire6 = 0
Me.TOTAL6 = 0
Me.majo6.Enabled = True
Me.majoDc = False
Me.majo1 = False
Me.TotMAJjourFérié = 0
Me.TotMAJsamedi = 0
FR = majoration.MAJO100()
FR2 = majoration.MAJO50()
FT = factur.calc2
Exit Sub
While RstR.EOF = False
RstR.MoveNext
Wend
DoCmd.GoToRecord , , acFirst
Exit Sub
End If
End If

voila
si quelqu'un a une idée pour que ça roule plus vite
merci
lou

1 réponse

Avatar
Raymond [mvp]
Bonjour.

Comment veux-tu qu'on puisse tester les performances avec autant de code. Si
on prend le premier case on peut noter:
If Me.AJOUTkm1 = True Or Me.AJOUTkm2 = True Or Me.AJOUTkm3 = True And
Me.majo3 = True Then
Me.majo3 = Me.majo3
End If
If Me.AJOUTkm1 = True Or Me.AJOUTkm2 = True Or Me.AJOUTkm3 = True And
Me.majo4 = True Then
Me.majo4 = Me.majo4
End If
ces lignes ne servent à rien car la valeur Me.majo4 ne changera jamais

ce genre de procédure:
If Me.AJOUTkm1 = False And Me.AJOUTkm2 = False And Me.AJOUTkm3 = False And
Me.majo3 = True Then
Me.majo3 = False
End If
peut se réduire à :
Me.majo3 = not ((notMe.AJOUTkm1) And (not Me.AJOUTkm2) And (not
Me.AJOUTkm3) And (Me.majo3))

je pense qu'il faudrait déja réduire ton code ce qui devrait accélérer
grandement la vitesse.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"lou" a écrit dans le message de
news:4035eda0$0$7035$
bonjour

sur clic je dois executer ce code dans une proc avec plusieurs if
le problemme c'esr que c'est tres lent

y a t'il possibilté d'accelerer la procedure
avec select case ou je sais pas moi
car pas tres expert en code
voici le code


'''''''''''case1
If Me.CODE = 0 And Me.AJOUTkm = False And Me.O488 = True Then
Me.Désignation1 = Null
Me.PrixUnitaire1 = 0
Me.QTE1 = 0
Me.TOTAL1 = 0
Me.Désignation3 = Null
Me.QTE3 = 0
Me.PrixUnitaire3 = 0
Me.TOTAL3 = 0
Me.PrixUnitaire4 = 0
Me.QTE4 = 0
Me.Désignation4 = Null
Me.TOTAL4 = 0
Me.Désignation6 = Null
Me.QTE6 = 0
Me.PrixUnitaire6 = 0
Me.TOTAL6 = 0
Me.majo6.Enabled = True
Me.AJOUTkm3.Enabled = True
Me.majoDcte.Enabled = True
Me.majoDc = False
Me.majo1 = False
If Me.AJOUTkm1 = True Or Me.AJOUTkm2 = True Or Me.AJOUTkm3 = True And
Me.majo3 = True Then
Me.majo3 = Me.majo3
End If
If Me.AJOUTkm1 = True Or Me.AJOUTkm2 = True Or Me.AJOUTkm3 = True And
Me.majo4 = True Then
Me.majo4 = Me.majo4
End If
If Me.AJOUTkm1 = False And Me.AJOUTkm2 = False And Me.AJOUTkm3 = False And
Me.majo3 = True Then
Me.majo3 = False
End If
If Me.AJOUTkm1 = False And Me.AJOUTkm2 = False And Me.AJOUTkm3 = False And
Me.majo4 = True Then
Me.majo4 = False
End If
FR = majoration.MAJO100()
FR2 = majoration.MAJO50()
FT = factur.calc2
End If






''''''''''''''''''''''''''''''''''''''''''case'''2
If Me.CODE = 0 And Me.AJOUTkm = True And Me.O488 = True Then
SqlR = "SELECT TarifsClient.TarifKM2 AS A, TarifsClient.TarifSC2 AS B,
TarifsClient.TarifGRUE2 AS C, TarifsClient.TarifGARDIENNAGE2 AS D,
TarifsClient.TarifMainOeuvre2 AS E, TarifsClient.TarifSCamionette2 AS F,
TarifsClient.KMdeduction2 AS G, TarifsClient.Garddeduction2 AS H FROM
TarifsClient;"
Set RstR = CurrentDb.OpenRecordset(SqlR)
If RstR.EOF = True Then '....Vérifie ci la table n'est pas vide
MsgBox "Aucunes Données", vbCritical, "Table Vide"
Else
RstR.MoveFirst
Me.PrixKM = RstR.A ''''''''''''''''''''''''km
Me.PrixKM1 = RstR.A ''''''''''''''''''''''km
Me.TarifGARD = RstR.D ''''''''''''''''''''gardiennage
Me.PrixUnitaire1 = RstR.B '''''''''''''''sortie camion
Me.Désignation1 = "Sortie Camion"
Me.QTE1 = 1
Me.TOTAL1 = Me.QTE1 * Me.PrixUnitaire1
Me.PrixUnitaire3 = RstR!C ''''''''''''''''''''grue ou treuil
Me.Désignation3 = "Travail Grue ou Treuil " & Format(PrixUnitaire3,
"###0.00") & " " & Me.Modifiable209 & " le 1/4 h"
Me.QTE3 = 1
Me.TOTAL3 = Me.PrixUnitaire3 * Me.QTE3
Me.PrixUnitaire4 = RstR!E ''''''''''''''''''''''main oeuvre

If Me.gg = 1 Or Me.gg = 2 Or Me.gg = 3 Then
Me.QTE4 = 4
Else
Me.QTE4 = gg
End If

Me.Désignation4 = "Main d'oeuvre " & Me.PrixUnitaire4 & " " &
Me.Modifiable209 & " le 1/4 h"
Me.TOTAL4 = QTE4 * PrixUnitaire4
Me.TotalKM = KMAR - KMDEP
Me.Désignation6 = "Déplacement Km"
Me.QTE6 = TotalKM
Me.PrixUnitaire6 = Me.PrixKM
Me.TOTAL6 = Me.QTE6 * Me.PrixKM
Me.majo6.Enabled = False
Me.AJOUTkm3.Enabled = False
Me.majoDcte.Enabled = False
FR = majoration.MAJO100()
FR2 = majoration.MAJO50()
FT = factur.calc2
Exit Sub
While RstR.EOF = False
RstR.MoveNext
Wend
DoCmd.GoToRecord , , acFirst
Exit Sub
End If
End If

''''''''''''''''''''''''''''''case 3
If Me.CODE = 0 And Me.AJOUTkm = False And Me.AJOUTkm1 = True And Me.O488 > True Then
SqlR = "SELECT TarifsClient.TarifKM2 AS A, TarifsClient.TarifSC2 AS B,
TarifsClient.TarifGRUE2 AS C, TarifsClient.TarifGARDIENNAGE2 AS D,
TarifsClient.TarifMainOeuvre2 AS E, TarifsClient.TarifSCamionette2 AS F,
TarifsClient.KMdeduction2 AS G, TarifsClient.Garddeduction2 AS H FROM
TarifsClient;"
Set RstR = CurrentDb.OpenRecordset(SqlR)
If RstR.EOF = True Then '....Vérifie ci la table n'est pas vide
MsgBox "Aucunes Données", vbCritical, "Table Vide"
Else
RstR.MoveFirst
Me.PrixKM = RstR.A ''''''''''''''''''''''''km
Me.PrixKM1 = RstR.A ''''''''''''''''''''''km
Me.TarifGARD = RstR.D ''''''''''''''''''''gardiennage
Me.PrixUnitaire1 = RstR.B '''''''''''''''sortie camion
Me.PrixUnitaire3 = RstR!C ''''''''''''''''''''grue ou treuil
Me.Désignation3 = "Travail Grue ou Treuil " & Format(PrixUnitaire3,
"###0.00") & " " & Me.Modifiable209 & " le 1/4 h"
Me.QTE3 = 1
Me.TOTAL3 = Me.PrixUnitaire3 * Me.QTE3
Me.PrixUnitaire4 = RstR!E ''''''''''''''''''''''main oeuvre

If Me.gg = 1 Or Me.gg = 2 Or Me.gg = 3 Then
Me.QTE4 = 4
Else
Me.QTE4 = gg
End If

Me.Désignation4 = "Main d'oeuvre " & Me.PrixUnitaire4 & " " &
Me.Modifiable209 & " le 1/4 h"
Me.TOTAL4 = QTE4 * PrixUnitaire4
Me.TotalKM = KMAR - KMDEP
Me.Désignation1 = Null
Me.QTE1 = 0
Me.PrixUnitaire1 = 0
Me.TOTAL1 = 0
Me.Désignation6 = Null
Me.QTE6 = 0
Me.PrixUnitaire6 = 0
Me.TOTAL6 = 0
Me.majo6.Enabled = True
Me.majoDc = False
Me.majo1 = False
Me.TotMAJjourFérié = 0
Me.TotMAJsamedi = 0
FR = majoration.MAJO100()
FR2 = majoration.MAJO50()
FT = factur.calc2
Exit Sub
While RstR.EOF = False
RstR.MoveNext
Wend
DoCmd.GoToRecord , , acFirst
Exit Sub
End If
End If

'''''''''''''''''''''case ''''4
If Me.CODE = 0 And Me.AJOUTkm = True And Me.AJOUTkm1 = False And Me.O488 > True Then
SqlR = "SELECT TarifsClient.TarifKM2 AS A, TarifsClient.TarifSC2 AS B,
TarifsClient.TarifGRUE2 AS C, TarifsClient.TarifGARDIENNAGE2 AS D,
TarifsClient.TarifMainOeuvre2 AS E, TarifsClient.TarifSCamionette2 AS F,
TarifsClient.KMdeduction2 AS G, TarifsClient.Garddeduction2 AS H FROM
TarifsClient;"
Set RstR = CurrentDb.OpenRecordset(SqlR)
If RstR.EOF = True Then '....Vérifie ci la table n'est pas vide
MsgBox "Aucunes Données", vbCritical, "Table Vide"
Else
RstR.MoveFirst
Me.PrixKM = RstR.A ''''''''''''''''''''''''km
Me.PrixKM1 = RstR.A ''''''''''''''''''''''km
Me.TarifGARD = RstR.D ''''''''''''''''''''gardiennage
Me.PrixUnitaire1 = RstR.B '''''''''''''''sortie camion
Me.PrixUnitaire3 = RstR!C ''''''''''''''''''''grue ou treuil
Me.Désignation3 = "Travail Grue ou Treuil " & Format(PrixUnitaire3,
"###0.00") & " " & Me.Modifiable209 & " le 1/4 h"
Me.QTE3 = 1
Me.TOTAL3 = Me.PrixUnitaire3 * Me.QTE3
Me.PrixUnitaire4 = RstR!E ''''''''''''''''''''''main oeuvre

If Me.gg = 1 Or Me.gg = 2 Or Me.gg = 3 Then
Me.QTE4 = 4
Else
Me.QTE4 = gg
End If

Me.Désignation4 = "Main d'oeuvre " & Me.PrixUnitaire4 & " " &
Me.Modifiable209 & " le 1/4 h"
Me.TOTAL4 = QTE4 * PrixUnitaire4
Me.TotalKM = KMAR - KMDEP
Me.Désignation1 = Null
Me.QTE1 = 0
Me.PrixUnitaire1 = 0
Me.TOTAL1 = 0
Me.Désignation6 = Null
Me.QTE6 = 0
Me.PrixUnitaire6 = 0
Me.TOTAL6 = 0
Me.majo6.Enabled = True
Me.majoDc = False
Me.majo1 = False
Me.TotMAJjourFérié = 0
Me.TotMAJsamedi = 0
FR = majoration.MAJO100()
FR2 = majoration.MAJO50()
FT = factur.calc2
Exit Sub
While RstR.EOF = False
RstR.MoveNext
Wend
DoCmd.GoToRecord , , acFirst
Exit Sub
End If
End If

''''''''''''''''''''''''''''''''case 5
If Me.CODE = 0 And Me.AJOUTkm = False And Me.AJOUTkm2 = True And Me.O488 > True Then
SqlR = "SELECT TarifsClient.TarifKM2 AS A, TarifsClient.TarifSC2 AS B,
TarifsClient.TarifGRUE2 AS C, TarifsClient.TarifGARDIENNAGE2 AS D,
TarifsClient.TarifMainOeuvre2 AS E, TarifsClient.TarifSCamionette2 AS F,
TarifsClient.KMdeduction2 AS G, TarifsClient.Garddeduction2 AS H FROM
TarifsClient;"
Set RstR = CurrentDb.OpenRecordset(SqlR)
If RstR.EOF = True Then '....Vérifie ci la table n'est pas vide
MsgBox "Aucunes Données", vbCritical, "Table Vide"
Else
RstR.MoveFirst
Me.PrixKM = RstR.A ''''''''''''''''''''''''km
Me.PrixKM1 = RstR.A ''''''''''''''''''''''km
Me.TarifGARD = RstR.D ''''''''''''''''''''gardiennage
Me.PrixUnitaire1 = RstR.B '''''''''''''''sortie camion
Me.PrixUnitaire3 = RstR!C ''''''''''''''''''''grue ou treuil
Me.Désignation3 = "Travail Grue ou Treuil " & Format(PrixUnitaire3,
"###0.00") & " " & Me.Modifiable209 & " le 1/4 h"
Me.QTE3 = 1
Me.TOTAL3 = Me.PrixUnitaire3 * Me.QTE3
Me.PrixUnitaire4 = RstR!E ''''''''''''''''''''''main oeuvre
If Me.gg = 1 Or Me.gg = 2 Or Me.gg = 3 Then
Me.QTE4 = 4
Else
Me.QTE4 = gg
End If
Me.Désignation4 = "Main d'oeuvre " & Me.PrixUnitaire4 & " " &
Me.Modifiable209 & " le 1/4 h"
Me.TOTAL4 = QTE4 * PrixUnitaire4
Me.TotalKM = KMAR - KMDEP
Me.Désignation1 = Null
Me.QTE1 = 0
Me.PrixUnitaire1 = 0
Me.TOTAL1 = 0
Me.Désignation6 = Null
Me.QTE6 = 0
Me.PrixUnitaire6 = 0
Me.TOTAL6 = 0
Me.majo6.Enabled = True
Me.majoDc = False
Me.majo1 = False
Me.TotMAJjourFérié = 0
Me.TotMAJsamedi = 0
FR = majoration.MAJO100()
FR2 = majoration.MAJO50()
'MsgBox "7"
FT = factur.calc2
Exit Sub
While RstR.EOF = False
RstR.MoveNext
Wend
DoCmd.GoToRecord , , acFirst
Exit Sub
End If
End If
'''''''''''''''''''''''''''''''''case 5
If Me.CODE = 0 And Me.AJOUTkm = True And Me.AJOUTkm2 = False And Me.O488 > True Then
SqlR = "SELECT TarifsClient.TarifKM2 AS A, TarifsClient.TarifSC2 AS B,
TarifsClient.TarifGRUE2 AS C, TarifsClient.TarifGARDIENNAGE2 AS D,
TarifsClient.TarifMainOeuvre2 AS E, TarifsClient.TarifSCamionette2 AS F,
TarifsClient.KMdeduction2 AS G, TarifsClient.Garddeduction2 AS H FROM
TarifsClient;"
Set RstR = CurrentDb.OpenRecordset(SqlR)
If RstR.EOF = True Then '....Vérifie ci la table n'est pas vide
MsgBox "Aucunes Données", vbCritical, "Table Vide"
Else
RstR.MoveFirst
Me.PrixKM = RstR.A ''''''''''''''''''''''''km
Me.PrixKM1 = RstR.A ''''''''''''''''''''''km
Me.TarifGARD = RstR.D ''''''''''''''''''''gardiennage
Me.PrixUnitaire1 = RstR.B '''''''''''''''sortie camion
Me.PrixUnitaire3 = RstR!C ''''''''''''''''''''grue ou treuil
Me.Désignation3 = "Travail Grue ou Treuil " & Format(PrixUnitaire3,
"###0.00") & " " & Me.Modifiable209 & " le 1/4 h"
Me.QTE3 = 1
Me.TOTAL3 = Me.PrixUnitaire3 * Me.QTE3
Me.PrixUnitaire4 = RstR!E ''''''''''''''''''''''main oeuvre
If Me.gg = 1 Or Me.gg = 2 Or Me.gg = 3 Then

Me.QTE4 = 4
Else
Me.QTE4 = gg
End If

Me.Désignation4 = "Main d'oeuvre " & Me.PrixUnitaire4 & " " &
Me.Modifiable209 & " le 1/4 h"
Me.TOTAL4 = QTE4 * PrixUnitaire4
Me.TotalKM = KMAR - KMDEP
Me.Désignation1 = Null
Me.QTE1 = 0
Me.PrixUnitaire1 = 0
Me.TOTAL1 = 0
Me.Désignation6 = Null
Me.QTE6 = 0
Me.PrixUnitaire6 = 0
Me.TOTAL6 = 0
Me.majo6.Enabled = True
Me.majoDc = False
Me.majo1 = False
Me.TotMAJjourFérié = 0
Me.TotMAJsamedi = 0
FR = majoration.MAJO100()
FR2 = majoration.MAJO50()
FT = factur.calc2
Exit Sub
While RstR.EOF = False
RstR.MoveNext
Wend
DoCmd.GoToRecord , , acFirst
Exit Sub
End If
End If

voila
si quelqu'un a une idée pour que ça roule plus vite
merci
lou