Bonjour à tous
Dans le code ci-desous une erreur 3021 apparaît en signalant la ligne :
et pourtant si je mets un debug.print dans la boucle le comptage se fait bien je ne vois donc pas pourquoi apparaît cette erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part CompteurTemps = CompteurTemps + Sélection("duréeaction")
Merci d'avance pour vos éclaircissements
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 Public Function SélectionListeActionsPourFacture() DoCmd.RefreshRecord Dim Sélection As Recordset Dim ListeSélection As Variant Dim NumLigne As Integer Dim CompteurTemps As Integer CompteurTemps = 0 NumLigne = 1 Set Sélection = CurrentDb.OpenRecordset("SELECT t_rendezvous.horairedebut, t_rendezvous.horairefin, t_rendezvous.[sélectionner], t_rendezvous.DuréeAction, [Types actions].TypeAction FROM [Types actions] INNER JOIN t_rendezvous ON [Types actions].NumTypeAction = t_rendezvous.TypeAction WHERE (((t_rendezvous.[Sélectionner]) = True))ORDER BY t_rendezvous.horairedebut DESC;") If Sélection.BOF = True Then MsgBox "Aucun élément sélectionné", vbCritical Exit Function End If Sélection.MoveFirst ListeSélection = "" While Not Sélection.EOF ListeSélection = ListeSélection & "- " & NumLigne & ". " & Sélection("TypeAction") & " le " & Format(DateValue(Sélection("horairedebut")), "dd mmm yyyy") & " > " & " " & " de " & Format(TimeValue(Sélection("horairedebut")), "hh \h\ mm") & " à " & Format(TimeValue(Sélection("horairefin")), "hh \h\ mm") & " (" & Sélection("duréeaction") & " min.)" & "<br>" Sélection.MoveNext NumLigne = NumLigne + 1 CompteurTemps = CompteurTemps + Sélection("duréeaction") Wend ListeSélection = Left(ListeSélection, Len(ListeSélection) - 1) Forms("devis et factures").Libellé = Forms("devis et factures").Libellé & "Détail des actions facturées : " & "<br>" & "<br>" & ListeSélection & "<br>" & "<br>" & "Soit un total de : " & CompteurTemps Sélection.Close Set Sélection = Nothing DoCmd.Close 'Attribue le numéro de facture actuel aux actions sélectionnées et change l' état de l'action à "facturé" DoCmd.RunSQL ("update t_rendezvous set t_rendezvous.numfacture = forms![devis et factures]![numdocument],t_rendezvous.etataction='5' where (t_rendezvous.numcontact=forms![devis et factures]![numcontact] and t_rendezvous.sélectionner=true);") 'Annule toute sélection antérieure DoCmd.RunSQL ("update t_rendezvous set t_rendezvous.sélectionner=false") End Function
Partager