Bonjour,
j'ai un gros souci au niveau de mon code. Il ne veut pas afficher correctement mes données.
En effet, je crée pour moi personnellement une vidéothèque. Mon programme, j'essaye de le faire le plus simple possible mais là je patauge car en plus pour courronner le tout je débute donc je galère pas mal.

Voilà, j'ai créé une feuille me permettant de sélectionner un emprunteur. Le principe de la feuille est celui-ci :
-une listbox fonction permet de regrouper toutes les catégories socio-professionnelle
-une listbox emprunteur permet d'afficher en fonction de la listbox fonction les membres issus d'une catégorie socio-professionnelle.

Un exemple : si je décide de rechercher (dans la listbox fonction ) une personne exerçant la profession de retraitée, la listbox emprunteur m'affichera tous les noms inscrit en tant que retraité et par ordre alphabétique.

Ensuite, ma feuille se compose d'une frame emprunteur qui permet de rappeller les infos d'un membre lorsque l'on choisit un type de fonction.

Après, c'est la que je rame grave. J'ai à nouveau deux frames : une frame sélection film et une frame sélection série

La frame sélection film comporte deux listbox : une permettant d'afficher tous les films figurant dans la bdd (lst_film), la seconde permet d'afficher les films déjà empruntés (lst_filmEmpruntés). Il y a deux boutons commandes : un pour rajouter des films dans la deuxième listbox (autrement dit, si un membre veut un film il sera affiché dans les films empruntés). Le deuxième bouton permet au contraire de retirer des films empruntés pour les remettre dans la listbox film (c'est-à-dire lorsqu'un membre ne veut plus du film on le remet dans la listbox film)

La frame sélection séries fonctionne exactement pareil

Malheureusement, je n'arrive pas à afficher les films dispo de ma bdd dans la listbox films. Et lorsque, je sélectionne un membre selon sa catégorie socio-pro. il ne m'affiche que le n°de référence du film inscrit dans la bdd et non le titre ( ex: si Million dollar baby possède l'identifiant n°1 et bien il m'affiche ceci et non le titre)

j'espère avoir donné un max de renseignements sur ce que je voulais faire et désolé si cela peut paraitre redondant.

Voici, mon code concernant cette feuille, si quelqu'un pouvait me dire le pourquoi de ces erreurs cela serait super.

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
Option Explicit
Dim num As String
 
Public Sub Liste_Fonction()
'début
    'remplissage de la liste des fonctions
    Lst_Fonction.Clear
    sql = "SELECT FONCTION_LIBELLE FROM FONCTION"
    rst_fonction.Open sql, cnx
    If Not (rst_fonction.EOF) Then
        Do
            Lst_Fonction.AddItem rst_fonction.Fields("FONCTION_LIBELLE")
            rst_fonction.MoveNext
        Loop Until rst_fonction.EOF
    End If
    rst_fonction.Close
End Sub
 
Public Sub Liste_Emprunteur()
'début
    'remplissage de la liste des noms Emprunteurs
    Lst_Emprunteur.Clear
    sql = "SELECT EMP_NOM FROM EMPRUNTEUR, FONCTION WHERE EMP_FONCTION = FONCTION_NUM"
    sql = sql & " AND FONCTION_LIBELLE = '" & Lst_Fonction.Text & "'"
 
    rst_emprunteur.Open sql, cnx
 
    If Not (rst_emprunteur.EOF) Then
        Do
            Lst_Emprunteur.AddItem rst_emprunteur.Fields("EMP_NOM")
            rst_emprunteur.MoveNext
        Loop Until rst_emprunteur.EOF
    Else
    End If
    rst_emprunteur.Close
End Sub
 
Public Sub liste_films()
'début
    'remplissage de la liste des films empruntés par une personne
    Lst_Film.Clear
    sql = "SELECT FILMS_TITRE FROM FILMS"
    rst_films.Open sql, cnx
    If Not (rst_films.EOF) Then
        Do
            Lst_Film.AddItem rst_films.Fields("FILMS_TITRE")
            rst_films.MoveNext
        Loop Until rst_films.EOF
    End If
    rst_films.Close
End Sub
 
Public Sub liste_series()
'début
    'remplissage de la liste des séries empruntées par une personne
    Lst_Serie.Clear
    sql = "SELECT SERIES_NOM FROM SERIES"
    rst_series.Open sql, cnx
    If Not (rst_series.EOF) Then
        Do
            Lst_Serie.AddItem rst_series.Fields("SERIES_NOM")
            rst_series.MoveNext
        Loop Until rst_series.EOF
    End If
    rst_series.Close
End Sub
Private Sub Cmd_Attribuer_Click()
MsgBox "Les dvd ont bien été attribués"
End Sub
 
Private Sub Cmd_Fermer_Click()
    Unload Me
End Sub
 
Private Sub Cmd_RetirerFilm_click()
'début
    'rechercher le code du dvd
    sql = "SELECT FILMS_NUM FROM FILMS WHERE FILMS_TITRE = '" & Lst_FilmEmprunté & "'"
    rst_films.Open sql, cnx
    If Not rst_films.EOF Then
        num = rst_films.Fields("FILMS_NUM")
 
        'suppression du dvd dans la table utiliserdvd
        sql = "DELETE FROM UTILISERDVD"
        sql = sql & " WHERE UTI_FILMS = '" & num & "'"
        sql = sql & " AND UTI_EMPRUNTEUR " & Val(Lbl_NumEmprunteur.Caption)
        cnx.Execute sql
 
        'enlever à présent le dvd de la liste
        i = Lst_FilmEmprunté.ListIndex
        Lst_FilmEmprunté.RemoveItem (i)
    End If
    rst_films.Close
End Sub
 
Private Sub Cmd_AjouterFilm_click()
'début
    If Lst_Film.Text <> "" Then
    'vérifier d'abord si le dvd existe bien
    verifDVD
 
        If verifok Then
            'insérer le dvd dans la liste films_emprunté
            Lst_FilmEmprunté.AddItem Lst_Film.Text
            'rechercher ensuite le code du dvd
            sql = " SELECT FILMS_NUM FROM FILMS WHERE FILMS_TITRE = '" & Lst_Film & "' "
            rst_films.Open sql, cnx
            If Not rst_films.EOF Then
                num = rst_films.Fields("FILMS_NUM")
                'enregistrer à présent le dvd dans la bdd (son emprunt)
                sql = " INSERT INTO UTILISERDVD (UTI_FILMS, UTI_EMPRUNTEUR)"
                sql = sql & " VALUES ( '" & num & "', " & Val(Lbl_NumEmprunteur) & ")"
                cnx.Execute sql
            End If
            rst_films.Close
        End If
    End If
End Sub
 
'Private Sub verifDVD()
''debut
'    verifok = True
'    i = 0
'    If Lst_FilmEmprunté.ListCount > 0 Then
'        Do
'            If Lst_FilmEmprunté.List(i) = Lst_Film.Text Then
'                verifok = False
'            End If
'            i = i + 1
'        Loop Until (i = Lst_FilmEmprunté.ListCount) Or (verifok = False)
'    End If
'End Sub
 
Private Sub verifDVD()
' debut
    sql = "SELECT * FROM UTILISERDVD "
    sql = sql + " WHERE UTI_FILMS = '" & num & "'"
    sql = sql + " AND UTI_EMPRUNTEUR = " & Val(Lbl_NumEmprunteur)
    rst_films.Open sql, cnx
    If rst_films.EOF Then
        verifok = True
    Else
        verifok = False
    End If
    rst_films.Close
End Sub
 
Private Sub Form_Load()
'début
    'connexion avec la bdd pour alimenter les listbox
    Connec
     ' alimenter les labels de l'emprunteur dans la frame emprunteur
     If NomFonction <> "" Then
        Lbl_NumEmprunteur.Caption = NumEmp
        Lbl_NomEmprunteur.Caption = NomEmp
        Lbl_PrenomEmprunteur.Caption = PrenomEmp
 
        ' alimenter la fonction
        Lbl_FonctionEmprunteur.Caption = NomFonction
        Lst_Fonction.AddItem NomFonction
        Lst_Fonction.Text = NomFonction
 
        ' alimenter les films déjà utilisés
        Liste_FilmEmpruntés
 
        'alimenter les séries déjà utilisées
        Liste_SérieEmpruntées
 
    Else
        Liste_Fonction
    End If
 
    'remplir la liste des dvd empruntés
'    Liste_DvdEmprunteur
 
    'remplir la liste fonction
    Liste_Fonction
End Sub
 
Private Sub Lst_Emprunteur_Click()
'début
    'd'abord alimenter la frame emprunteur
     ' alimenter la frame de l'emprunteur
     sql = "SELECT * FROM EMPRUNTEUR WHERE EMP_NOM = '" & Lst_Emprunteur.Text & "'"
     rst_emprunteur.Open sql, cnx
 
     If Not (rst_emprunteur.EOF) Then
        Lbl_NumEmprunteur.Caption = rst_emprunteur.Fields("Emp_Num")
        Lbl_NomEmprunteur.Caption = rst_emprunteur.Fields("Emp_Nom")
        Lbl_PrenomEmprunteur.Caption = rst_emprunteur.Fields("Emp_Prenom")
        Lbl_FonctionEmprunteur.Caption = Lst_Fonction.Text
     End If
        rst_emprunteur.Close
 
        ' afficher tous les films empruntés
        Liste_FilmEmpruntés
 
        ' afficher les séries empruntées
        Liste_SérieEmpruntées
 
        ' afficher tous les dvd empruntés
        'liste_DVDEmprunté
 
End Sub
Private Sub Lst_Fonction_Click()
' debut
    ' alimenter la liste emprunteurs
     Liste_Emprunteur
 
End Sub
 
Private Sub Liste_FilmEmpruntés()
' debut
        Lst_FilmEmprunté.Clear
        sql = " SELECT UTI_FILMS FROM UTILISERDVD"
        sql = sql & " WHERE UTI_EMPRUNTEUR = " & Val(Lbl_NumEmprunteur.Caption)
        rst_films.Open sql, cnx
        If Not (rst_films.EOF) Then
            Do
                Lst_FilmEmprunté.AddItem rst_films.Fields("UTI_FILMS")
                rst_films.MoveNext
            Loop Until rst_films.EOF
        End If
        rst_films.Close
End Sub
 
Private Sub Liste_SérieEmpruntées()
'début
        Lst_SérieEmpruntée.Clear
        sql = "SELECT UTI_SERIES FROM UTILISERDVD"
        sql = sql & " WHERE UTI_EMPRUNTEUR = " & Val(Lbl_NumEmprunteur.Caption)
        rst_series.Open sql, cnx
        If Not (rst_series.EOF) Then
            Do
                Lst_SérieEmpruntée.AddItem rst_series.Fields("UTI_SERIES")
                rst_series.MoveNext
            Loop Until rst_series.EOF
        End If
        rst_series.Close
End Sub