Bonjour,
mon problème est le suivant : quand je double clique sur une liste cette dernière va exécuter la fonction "RemplirRch" présent dans son module associé. Dans ce code je fais un test pour savoir quel "Lieu d'hébergement" est concerné. Selon ce lieu soit l’exécution du code de la fonction se poursuit, soit il renvoie vers l'autre module grâce au code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
    DoCmd.OpenForm "FormProduitHebergement", , , , , , NiveauSecurite
 
    Call FonctionProduitHebergement.TriListeProduitRch(Form_FormProduit.Rch.Value, order)
    FonctionProduitHebergement.RemplirRch (NoHebergement)
 
    DoCmd.Close acForm, "FormProduit"
Grâce à des "msgbox" je constate que tout se déroule bien, les ".Value" se remplissent bien et avec les bonnes valeurs (que ce soit dans mon "TriListeProduitRch" ou le "RemplirRch"). Le formulaire en question est bien ouvert mais reste dans son état à l'ouverture, c'est à dire avec les champs visibles mais vides.

Quelqu'un sait il pourquoi ?
A noter que ce problème n'arrive que lorsque le code ci dessus est exécuté, dans l'autre cas tout va bien.

voici le code de la fonction "TriListeProduitRch" :

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
 
Sub TriListeProduitRch(sql, order)
 
    Form_FormProduitHebergement.ListeResRchHebergement.RowSource = ""
    sql = sql & "Order By " & order & ";"
    Set rs = CurrentDb.OpenRecordset(sql)
    nb = rs.RecordCount
    If nb = 0 Then
        MsgBox "L'hébergement n'a pas été trouvé."
    Else
        rs.MoveLast
        nb = rs.RecordCount
        rs.MoveFirst
 
        For i = 1 To nb
            sqlC = "Select LibelleClassification from Classification where NoClassification = " & rs("ClassificationProduit") & ";"
            Set rsC = CurrentDb.OpenRecordset(sqlC)
 
            sqlF = "Select NomFournisseur from Fournisseur where Nofournisseur = """ & rs("FournisseurProduit") & """;"
            Set rsF = CurrentDb.OpenRecordset(sqlF)
 
            Form_FormProduitHebergement.ListeResRchHebergement.AddItem (rsF("NomFournisseur") & ";" & rs("NomProduit") & ";" & rsC("LibelleClassification") & ";" & rs("AdresseHebergement") & ";" & rs("VilleHebergement") & ";" & rs("PaysHebergement") & ";" & rs("TelHebergement") & ";" & rs("MailHebergement") & ";" & rs("NoProduit"))
            rs.MoveNext
            Next
    End If
End Sub
Et le code de "RemplirRch" :
(je ne vous met pas le code des différentes fonctions appelés par celle-ci, j'ai essayé de supprimer ces appels et ça n'a rien changé, je suppose donc que le problème ne vient pas de là)
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
 
Sub RemplirRch(NoHebergement)
 
    Form_FormProduitHebergement.BTNNouvelHebergement_Click
    Form_FormProduitHebergement.HEBERGEMENT.Caption = ""
 
    sql = "Select * from Produit where NoProduit = """ & NoHebergement & """;"
    Set rs = CurrentDb.OpenRecordset(sql)
 
    sqlF = "select NomFournisseur from Fournisseur where Nofournisseur = """ & rs("FournisseurProduit") & """;"
    Set rsF = CurrentDb.OpenRecordset(sqlF)
 
    sqlC = "Select LibelleClassification from Classification where Noclassification = " & rs("ClassificationProduit")
    Set rsC = CurrentDb.OpenRecordset(sqlC)
 
    Form_FormProduitHebergement.ListeFournisseurHebergement.Value = rsF("NomFournisseur")
    Form_FormProduitHebergement.ListeClassificationHebergement.Value = rsC("LibelleClassification")
    Form_FormProduitHebergement.TexteNomHebergement.Value = rs("NomProduit")
    Form_FormProduitHebergement.AfficheNoHebergement.Caption = rs("NoProduit")
    Form_FormProduitHebergement.TexteResumHebergement.Value = rs("ResumeProduit")
 
    sql = "Select * from hebergement where NoHebergement = """ & NoHebergement & """;"
    Set rs = CurrentDb.OpenRecordset(sql)
 
    sqll = "Select * From LieuHebergement where NoLieuHebergement = " & rs("LieuHebergement") & ";"
    Set rsl = CurrentDb.OpenRecordset(sqll)
 
    If rs("TelHebergement") <> "" Then
        fixe = Split(rs("TelHebergement"), " ")
        Form_FormProduitHebergement.ListePrefixTelHebergement.Value = fixe(0)
        Form_FormProduitHebergement.TexteTelephoneHebergement.Value = fixe(1)
    End If
 
    If rs("FaxHebergement") <> "" Then
        fixe = Split(rs("TelHebergement"), " ")
        Form_FormProduitHebergement.ListePrefixFaxHebergement.Value = fixe(0)
        Form_FormProduitHebergement.TexteFaxHebergement.Value = fixe(1)
    End If
 
    Form_FormProduitHebergement.OptionHandicape.Value = rs("AccesHandicapeHebergement")
    Form_FormProduitHebergement.TexteAdresseHebergement.Value = rs("AdresseHebergement")
    Form_FormProduitHebergement.ListeCPHebergement.Value = rs("CPHebergement")
    Form_FormProduitHebergement.ListeRegionHebergement.Value = rs("RegionHebergement")
    Form_FormProduitHebergement.ListeVilleHebergement.Value = rs("VilleHebergement")
    Form_FormProduitHebergement.ListePaysHebergement.Value = rs("PaysHebergement")
    Form_FormProduitHebergement.TexteMailHebergement.Value = rs("MailHebergement")
    Form_FormProduitHebergement.TexteInternetHebergement.Value = rs("SiteInternetHebergement")
    Form_FormProduitHebergement.TexteCAHebergement.Value = rs("CAHebergement")
 
    If rsl("LibelleLieuHebergement") <> "Hôtel classique" And rsl("LibelleLieuHebergement") <> "Hôtel club" Then
 
        Form_FormProduitHebergement.ListeLieuHebergement.Value = rsl("LibelleLieuHebergement")
        Form_FormProduitHebergement.ListeLieuHebergement_Click
 
        sql = "select * from TypeHebergementHebergement where NoAssocHebergement = """ & NoHebergement & """;"
        Set rs = CurrentDb.OpenRecordset(sql)
        nb = rs.RecordCount
        If nb > 0 Then
            rs.MoveLast
            nb = rs.RecordCount
            rs.MoveFirst
            For i = 1 To nb
                e = rs("NoAssocTypeHebergement") - 1
                Form_FormProduitHebergement.ListeTypeHebergement.Selected(e) = True
 
                sql1 = "Select LibelleTypeHebergement from TypeHebergement where NoTypeHebergement = " & rs("NoAssocTypeHebergement") & ";"
                Set rs1 = CurrentDb.OpenRecordset(sql1)
 
                sql2 = "Select LibelleClasseHebergement From ClasseHebergement where NoClasseHebergement = " & rs("NoAssocClasseHebergement") & ";"
                Set rs2 = CurrentDb.OpenRecordset(sql2)
 
                If rs1("LibelleTypeHebergement") <> "Chambre" Then
 
                    If rs1("LibelleTypeHebergement") = "Appartement" Then
                        Heberg = "Appart"
                    Else
                        Heberg = rs1("LibelleTypeHebergement")
                    End If
 
                    sql3 = "Select * From PieceTypeHebergement where NoAssocHebergement = """ & NoHebergement & """ and NoAssocClasseHebergement = " & rs("NoAssocClasseHebergement") & " and NoAssocTypeHebergement = " & rs("NoAssocTypeHebergement") & ";"
                    Set rs3 = CurrentDb.OpenRecordset(sql3)
                    nb3 = rs3.RecordCount
                    If nb3 > 0 Then
                        LPI = "ListePiece" & rs2("LibelleClasseHebergement") & Heberg
 
                        If Form_FormProduitHebergement.HEBERGEMENT.Caption <> rs("NoAssocTypeHebergement") Then
                            Form_FormProduitHebergement.Controls(LPI).Visible = True
                        End If
 
                        rs3.MoveLast
                        nb3 = rs3.RecordCount
                        rs3.MoveFirst
                        For Pi = 1 To nb3
                            sql4 = "Select * From Piece where NoPieceHebergement = " & rs3("NoAssocPiece")
                            Set rs4 = CurrentDb.OpenRecordset(sql4)
 
                            TPI = "TexteNb" & rs2("LibelleClasseHebergement") & Heberg & "Piece" & rs3("NoAssocPiece")
 
                            If Form_FormProduitHebergement.HEBERGEMENT.Caption <> rs("NoAssocTypeHebergement") Then
                                Form_FormProduitHebergement.Controls(TPI).Visible = True
                            End If
 
                            Form_FormProduitHebergement.Controls(TPI).Value = rs3("NbPiece")
                            Form_FormProduitHebergement.Controls(LPI).Value = rs4("LibellePieceHebergement")
 
                            rs3.MoveNext
                            Next
                    End If
 
                    sql5 = "Select * From ParticulariteTypeHebergement where NoAssocHebergement = """ & NoHebergement & """ and NoAssocClasseHebergement = " & rs("NoAssocClasseHebergement") & " and NoAssocTypeHebergement = " & rs("NoAssocTypeHebergement") & ";"
                    Set rs5 = CurrentDb.OpenRecordset(sql5)
                    nb5 = rs5.RecordCount
                    If nb5 > 0 Then
                        LPI = "ListeParticularite" & rs2("LibelleClasseHebergement") & Heberg
 
                        If Form_FormProduitHebergement.HEBERGEMENT.Caption <> rs("NoAssocTypeHebergement") Then
                            Form_FormProduitHebergement.Controls(LPI).Visible = True
                        End If
 
                        rs5.MoveLast
                        nb5 = rs5.RecordCount
                        rs5.MoveFirst
                        For Pa = 1 To nb5
                            sql6 = "Select * From Particularite where NoParticularite = " & rs5("NoAssocParticularite")
                            Set rs6 = CurrentDb.OpenRecordset(sql6)
 
                            TPI = "TexteParticularite" & rs6("NoParticularite") & rs2("LibelleClasseHebergement") & Heberg
 
                            If Form_FormProduitHebergement.HEBERGEMENT.Caption <> rs("NoAssocTypeHebergement") Then
                                Form_FormProduitHebergement.Controls(TPI).Visible = True
                            End If
                            Form_FormProduitHebergement.Controls(TPI).Value = rs5("NbParticularite")
                            Form_FormProduitHebergement.Controls(LPI).Value = rs6("LibelleParticularite")
 
                            rs5.MoveNext
                            Next
                    End If
 
                    LI = "ListeClasse" & Heberg
                    LO = "TexteNb" & rs2("LibelleClasseHebergement") & Heberg
                    Form_FormProduitHebergement.Controls(LO).Value = rs("NombreHebergement")
 
                    If Form_FormProduitHebergement.HEBERGEMENT.Caption <> rs("NoAssocTypeHebergement") Then
 
                        Form_FormProduitHebergement.HEBERGEMENT.Caption = rs("NoAssocTypeHebergement")
                        Form_FormProduitHebergement.Controls(LI).Value = rs2("LibelleClasseHebergement")
                        Form_FormProduitHebergement.Controls(LI).Visible = True
                        Form_FormProduitHebergement.Controls(LO).Visible = True
                    End If
                End If
                rs.MoveNext
                Next
        End If
 
 
        sql = "Select NoAssocCuisine from CuisineHebergement where NoAssocHebergement = """ & NoHebergement & """;"
        Set rs = CurrentDb.OpenRecordset(sql)
        nb = rs.RecordCount
        If nb > 0 Then
            rs.MoveLast
            nb = rs.RecordCount
            rs.MoveFirst
            For i = 1 To nb
                e = rs("NoAssocCuisine") - 1
                Form_FormProduitHebergement.ListeCuisineHebergement.Selected(e) = True
                rs.MoveNext
                Next
        End If
 
        sql = "Select NoAssocAqua from EspaceAquaHebergement where NoAssocHebergement = """ & NoHebergement & """;"
        Set rs = CurrentDb.OpenRecordset(sql)
        nb = rs.RecordCount
        If nb > 0 Then
            rs.MoveLast
            nb = rs.RecordCount
            rs.MoveFirst
            For i = 1 To nb
                e = rs("NoAssocAqua") - 1
                Form_FormProduitHebergement.ListeAquaHebergement.Selected(e) = True
                rs.MoveNext
                Next
        End If
 
        sql = "Select NoAssocSport from EquipementSportifHebergement where NoAssocHebergement = """ & NoHebergement & """;"
        Set rs = CurrentDb.OpenRecordset(sql)
        nb = rs.RecordCount
        If nb > 0 Then
            rs.MoveLast
            nb = rs.RecordCount
            rs.MoveFirst
            For i = 1 To nb
                e = rs("NoAssocSport") - 1
                Form_FormProduitHebergement.ListeSportHebergement.Selected(e) = True
                rs.MoveNext
                Next
        End If
 
        sql = "Select NoAssocAnim from AnimHebergement where NoAssocHebergement = """ & NoHebergement & """;"
        Set rs = CurrentDb.OpenRecordset(sql)
        nb = rs.RecordCount
        If nb > 0 Then
            rs.MoveLast
            nb = rs.RecordCount
            rs.MoveFirst
            For i = 1 To nb
                e = rs("NoAssocAnim") - 1
                Form_FormProduitHebergement.ListeAnimHebergement.Selected(e) = True
                rs.MoveNext
                Next
        End If
 
        sql = "Select NoAssocProximite from ProximiteHebergement where NoAssocHebergement = """ & NoHebergement & """;"
        Set rs = CurrentDb.OpenRecordset(sql)
        nb = rs.RecordCount
        If nb > 0 Then
            rs.MoveLast
            nb = rs.RecordCount
            rs.MoveFirst
            For i = 1 To nb
                e = rs("NoAssocProximite") - 1
                Form_FormProduitHebergement.ListeProximiteHebergement.Selected(e) = True
                rs.MoveNext
                Next
        End If
 
        sql = "Select NoAssocTheme from ThemeHebergement where NoAssocHebergement = """ & NoHebergement & """;"
        Set rs = CurrentDb.OpenRecordset(sql)
        nb = rs.RecordCount
        If nb > 0 Then
            rs.MoveLast
            nb = rs.RecordCount
            rs.MoveFirst
            For i = 1 To nb
                e = rs("NoAssocTheme") - 1
                Form_FormProduitHebergement.ListeThemeHebergement.Selected(e) = True
                rs.MoveNext
                Next
        End If
 
        Form_FormProduitHebergement.BTNValiderHebergement.Visible = False
        Form_FormProduitHebergement.BTNConfirmerHebergement.Visible = True
        MsgBox Form_FormProduitHebergement.Controls(LPI).Value
    Else
 
        If Form_FormProduit.param.Caption = "" Or Form_FormProduit.param.Caption = " " Then
            order = 1
        Else
            order = Form_FormProduit.param.Caption
        End If
 
        DoCmd.OpenForm "FormProduit", , , , , , NiveauSecurite
 
        Form_FormProduitHebergement.Rch.Value = Form_FormProduitHebergement.Rch.Value
        Form_FormProduit.Rch.Value = Form_FormProduitHebergement.Rch.Value
 
        Call FonctionProduit.TriListeProduitRch(Form_FormProduitHebergement.Rch.Value, order)
        FonctionProduit.RemplirRch (NoHebergement)
 
    DoCmd.Close acForm, "FormProduitHebergement"
    End If
 
End Sub
En espérant que vous trouverez le temps de m'aider,
Cordialement