Voilà je suis en terminale GSI et j'ai un problème avec mon projet. Donc je dois créer un formulaire de saisie des intervenants par projet et par activité. Je vous met une image de mon formulaire :
En cliquant sur le bouton Ok celà doit me remplir les cases nom projet, numéro client et code pole. Et en choisissant une activité de la liste déroulante celà doit m'afficher le nom des inscrits par projet.
Je doit également pouvoir rajouter des intervenants en cliquant sur > et celà doit se rajouter dans la table PARTICIPER.
Voici ma base de données :
Et voici mon code VBA :
Formulaire:
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 Module : Option Compare Database Public Function getInfosProjet(ByVal p_CodeProjet As String, ByRef rsInfosProjet As DAO.Recordset) As Boolean '--- requête pour récupérer les informations de la session correspondant au numéro --- Dim requete As String requete = "SELECT * from PROJET,ACTIVITE,PARTICPER" requete = requete & "where PROJET.CodeProjet = ACTIVITE.CodeProjet" requete = requete & "and ACTIVITE.NumActivite = PARTICIPER.NumActivite" requete = requete & "and PROJET.CodeProjet=" & p_CodeProjet & ";" Set rsSession = CurrentDb.OpenRecordset(requete) '--- retourne un booléen indiquant si la requete a donné ou non un résultat --- If rsInfosProjet.EOF Then getInfosProjet = False Else getInfosProjet = True Else getInfosProjet = False End If End Function
Quand je clique sur le bouton "OK" ou "Quitter" celà m'affiche :
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 Option Compare Database '********************************************************************************************* ' MODULES EVENEMENTIELS '********************************************************************************************* '--------------------------------------------------------------------------------------------- ' sur le clic du bouton "Ok" : à partir du numero de projet saisi, rempli le reste du formulaire '--------------------------------------------------------------------------------------------- Private Sub btn_OK_Click() Dim rsInfosProjet As DAO.Recordset '--- récupère les infos du projet correspondant au numéro --- If getInfosProjet(Me.txt_numprojet, rsInfosProjet) Then '--- rempli les champs à partir des informations récupérées --- Me.txt_nomprojet = rsInfosProjet("PROJET.NomProjet") Me.txt_NumClient = rsInfosProjet("PROJET.NumClient") Me.txt_CodePole = rsInfosProjet("PROJET.CodePole") Else MsgBox "Numéro de projet incorrect !" End If End Sub '--------------------------------------------------------------------------------------------- ' sur le clic du bouton ">" : ajoute l'intervenant sélectionné (liste de gauche) '--------------------------------------------------------------------------------------------- Private Sub btn_ajout_click() '--- controle si un agent a été sélectionné (liste de gauche) --- If Me.lst_intervenants.ItemsSelected.Count = 1 Then '--- récupère le numéro de l'intervenant à insérer --- Dim numEmploye As String numEmploye = Me.lst_intervenants '--- insère l'intervenant dans la table participer (pour ce projet et cette activité) --- DoCmd.SetWarnings False DoCmd.RunSQL "insert into PARTICIPER(numEmploye,numActivite) values (" & Me.lst_intervenants & ",'" & ldr_Activite & "');" DoCmd.SetWarnings True '--- réinitialise les listes et incrémente le nombre d'inscrits --- Me.lst_intervenants.Requery Me.lst_inscrits.Requery Me.lst_inscrits = numEmploye End If End Sub '--------------------------------------------------------------------------------------------- ' sur le clic du bouton "<" : supprime l'intervenant sélectionné (liste de droite) '--------------------------------------------------------------------------------------------- Private Sub btn_supprim_Click() '--- controle si un inscrit a été sélectionné (liste de droite) --- If Me.lst_inscrits.ItemsSelected.Count = 1 Then '--- récupère le numéro de l'intervenant à supprimer --- Dim numEmploye As String numEmploye = Me.lst_inscrits '--- supprime l'inscription de cet agent dans la table participer (pour ce projet et cette activité) --- DoCmd.SetWarnings False DoCmd.RunSQL "delete from PARTICIPER where numActivite =" & Me.ldr_Activite & " and numEmploye='" & numEmploye & "';" DoCmd.SetWarnings True '--- réinitialise les listes et décrémente le nombre d'inscrits --- Me.lst_intervenants.Requery Me.lst_inscrits.Requery Me.lst_intervenants = numEmploye End If End Sub Private Sub btn_quitter_Click() DoCmd.Close End Sub
$
Aucun bouton ne fonctionne. Alors si pouviez m'aider ce serait sympa.Merçi
Partager