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
| Private Sub chkNom_Click()
Me.txtNom.Visible = Not Me.txtNom.Visible
If txtNom.Visible = True Then Me.txtNom.SetFocus
txtNom.Value = Null
RefreshQuery
Call listerPrenom
Call listerMachine
End Sub
Private Sub chkMachine_Click()
Me.cmbMachine.Visible = Not Me.cmbMachine.Visible
If cmbMachine.Visible = True Then Me.cmbMachine.SetFocus
cmbMachine.Value = Null
RefreshQuery
Call listerMachine
End Sub
Private Sub chkPrenom_Click()
Me.cmbprenom.Visible = Not Me.cmbprenom.Visible
If cmbprenom.Visible = True Then Me.cmbprenom.SetFocus
cmbprenom.Value = Null
RefreshQuery
Call listerPrenom
Call listerMachine
End Sub
'*********************************************************************************************************************
'ces procédures permettent de lancer RefreshQuery lorsque les données contenues dans les zones de texte on été modifiées
Private Sub txtNom_BeforeUpdate(Cancel As Integer)
cmbMachine.Value = Null
cmbprenom.Value = Null
Call listerPrenom
Call listerMachine
End Sub
Private Sub cmbprenom_BeforeUpdate(Cancel As Integer)
cmbMachine.Value = Null
Call listerMachine
End Sub
Private Sub cmbMachine_BeforeUpdate(Cancel As Integer)
RefreshQuery
End Sub
Private Sub RefreshQuery()
'cette procédure permet d'afficher le résultat de la recherche dans la zone de texte
Dim SQL As String ' contient la requête SQL qui sera utilisée pour afficher les évaluations
Dim connecteur As String
If (Me.chkMachine And Me.chkNom) Or (Me.chkMachine And Me.chkPrenom) Then
' on récupère en premier lieu toutes les lignes de la table
SQL = "SELECT Opérateur.matricule, Evaluer.nom_machine, Evaluer.date, Domaine.libelle_domaine, Designation.libelle_designation, Evaluer.code_notation FROM Opérateur INNER JOIN (Sous_Domaine RIGHT JOIN ((Domaine INNER JOIN Designation ON Domaine.numero_domaine = Designation.numero_domaine) INNER JOIN Evaluer ON Designation.numero_designation = Evaluer.numero_designation) ON Sous_Domaine.numero_sous_domaine = Designation.numero_sous_domaine) ON Opérateur.matricule = Evaluer.matricule "
connecteur = " WHERE "
' si la case Nom est cochée, on sélectionne seulement les lignes dont le nom est celui donné en entrée
If Me.chkNom Then
SQL = SQL & connecteur & "(Opérateur!nom = '" & Me.txtNom.Value & "')"
End If
' si la case prenom est cochée, on sélectionne seulement les lignes dont le prénom est celui donné en entrée.
If Me.chkPrenom Then
SQL = SQL & connecteur & "(Opérateur!prenom = '" & Me.cmbprenom.Value & "')"
End If
'si la case machine est cochée, on sélectionne seulement les lignes dont le nom de la machine est celle donnée en entrée.
If Me.chkMachine Then
SQL = SQL & connecteur & "(Evaluer!nom_machine = '" & Me.cmbMachine.Value & "')"
End If
'on ajoute un point virgule à la fin de la requête (nécessaire pour signaler qu'une requête est finie
'et on classe les résultats par ordre alphabétique
SQL = SQL & " ORDER BY Evaluer.matricule, Evaluer.date, Evaluer.nom_machine, Domaine.apparition_domaine, Sous_Domaine.apparition_sous_domaine, Designation.apparition_designation;"
'on affecte à la liste de résultats la requête SQL
Me.lstResultsEvaluation.RowSource = SQL
'cette commande permet enfin d'exécuter la requête et d'afficher les réponses
Me.lstResultsEvaluation.Requery
Else
SQL = "SELECT Opérateur.matricule, Evaluer.date, Domaine.libelle_domaine, Designation.libelle_designation, Evaluer.code_notation FROM Opérateur INNER JOIN (Sous_Domaine RIGHT JOIN ((Domaine INNER JOIN Designation ON Domaine.numero_domaine = Designation.numero_domaine) INNER JOIN Evaluer ON Designation.numero_designation = Evaluer.numero_designation) ON Sous_Domaine.numero_sous_domaine = Designation.numero_sous_domaine) ON Opérateur.matricule = Evaluer.matricule WHERE Opérateur.matricule = 0 ;"
Me.lstResultsEvaluation.RowSource = SQL
Me.lstResultsEvaluation.Requery
End If
End Sub |
Partager