Bonjour à vous

J'ai une erreur d’exécution quand j'ouvre mon formulaire de recherche.

Erreur d’exécutions '3021':
aucun enregistrement en cours
Quand je clique sur débogage il me donne :

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
63
64
65
66
Option Compare Database
Option Explicit
 
Function OuvrirQuoi(MonFormulaire)
' Cette fonction est appelée quand on clique sur un bouton.
' intBtn indique quand on clique sur un bouton.
 
' Constantes pour les commandes ne pouvant être exécutées.
    Const conCmdGotoSwitchboard = 1
    Const conCmdOpenFormAdd = 2
    Const conCmdOpenFormBrowse = 3
    Const conCmdOpenReport = 4
    Const conCmdCustomizeSwitchboard = 5
    Const conCmdExitApplication = 6
    Const conCmdRunMacro = 7
    Const conCmdRunCode = 8
 ' Erreur de case.
    Const conErrDoCmdCancelled = 2501
 
Dim remarque, NomFormulaire
Dim a As Long
 
remarque = Forms(MonFormulaire)!ListeOption.Column(3) 'Argument
NomFormulaire = Forms(MonFormulaire)!ListeOption.Column(2)
 
Select Case Forms(MonFormulaire)!ListeOption.Column(1)
 Case "Form"
        Select Case Val(Forms(MonFormulaire)!ListeOption.Column(3))
        ' Ouvre un formulaire en mode ajout.
            Case conCmdOpenFormAdd
                DoCmd.OpenForm Forms(MonFormulaire)!ListeOption.Column(2), , , , acAdd, , "A"
        ' Ouvre un formulaire en mode normal.
            Case conCmdOpenFormBrowse
                DoCmd.OpenForm Forms(MonFormulaire)!ListeOption.Column(2)
        End Select
    Forms(NomFormulaire).Tag = remarque
    Forms(NomFormulaire).Caption = Forms(MonFormulaire)!ListeOption.Column(0)
 
 Case "Report"
   DoCmd.OpenReport Forms(MonFormulaire)!ListeOption.Column(2), acPreview
 Case "Function"
   DoCmd.RunMacro Forms(MonFormulaire)!ListeOption.Column(2)
 End Select
 
End Function
 
Function RassembleDisciplinesParPersonnes(v_clefpersonne) As String
Dim rst As Recordset
Dim MonSQL As String
Dim i
Dim temp As String
 
MonSQL = "SELECT SousDiscipline FROM SousDisciplines INNER JOIN T_Lien_DisciplinePersonne "
MonSQL = MonSQL & "ON SousDisciplines.ClefSousDiscipline = T_Lien_DisciplinePersonne.ClefSousDiscipline WHERE (ClefPersonne=" & v_clefpersonne & ")"
Set rst = CurrentDb.OpenRecordset(MonSQL)
rst.MoveLast
rst.MoveFirst
    For i = 0 To rst.RecordCount - 1
        temp = temp & rst!SousDiscipline
        temp = temp & ","
        rst.MoveNext
    Next
rst.Close
If Right(temp, 1) = "," Then temp = Left(temp, Len(temp) - 1)
RassembleDisciplinesParPersonnes = temp
End Function
rst.MoveLast (ligne 56) est souligné en jaune.

Comment régler mon problème ?

Bonne soirée.