Bonjour à tous
Lorsque je recopie cette fonction dans le module d'une nouvelle version de ma bdd, il me réclame de déclarer "n" alors que j'avais pas besoin dans le module d'origine puis plante à l’exécution.
Je déclare "n" en tant qu'integer et il me sert au comptage des lignes.
J'aimerai comprendre pourquoi cette boucle plante et pourquoi dans l'autre base il ne me demande pas de déclarer "n" svp... Mystère ?
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
50
51
52
53
54
55
56
57
58
59
60
61
62 Public Function OuvrirListeActionsClient() 'Ouvre la liste des actions à facturer au client et l'insère dans le champ description de la ligne de facture ou bien le libellé de celle ci DoCmd.OpenForm ("sf groupes interventions"), , , "[numcontact]=screen.activeform.numcontact" Forms![sf groupes interventions].BtnAppliquerEtFermer.Visible = True 'Efface toute sélection antérieure DoCmd.SetWarnings False DoCmd.RunSQL ("update t_rendezvous set t_rendezvous.sélectionner=false") DoCmd.SetWarnings True Forms![sf groupes interventions].AllowAdditions = False MsgBox ("Veuillez sélectionner les actions à inclure dans ce document"), vbOKOnly End Function Public Function SélectionListeActionsPourEcriture() DoCmd.RefreshRecord Dim Sélection As Recordset Dim ListeSélection As Variant Dim i As Integer 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 For i = 1 To n i = 1 + n ListeSélection = ListeSélection & "- i" & DateValue(Sélection("horairedebut")) & " > " & Sélection("TypeAction") & " " & " de " & Format(TimeValue(Sélection("horairedebut")), "hh:mm") & " à " & Format(TimeValue(Sélection("horairefin")), "hh:mm") & " (" & Sélection("duréeaction") & " min.)" & "<br>" Sélection.MoveNext Next i Wend ListeSélection = Left(ListeSélection, Len(ListeSélection) - 1) Forms("devis et factures").Libellé = Forms("devis et factures").Libellé & "<br>" & ListeSélection 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