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
| 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 "
SQL2 = "SELECT Synthèse_Intermediaire.matricule, Synthèse_Intermediaire.nom_machine, Synthèse_Intermediaire.date_synthèse_intermediaire, Domaine.libelle_domaine, Synthèse_Intermediaire.commentaire_intermediaire FROM Opérateur INNER JOIN (Domaine INNER JOIN Synthèse_Intermediaire ON Domaine.numero_domaine = Synthèse_Intermediaire.numero_domaine) ON Opérateur.matricule = Synthèse_Intermediaire.matricule "
SQL3 = "SELECT Synthèse_Globale.matricule, Synthèse_Globale.nom_machine, Synthèse_Globale.date_synthèse, Opérateur.nom, Opérateur.prenom, Synthèse_Globale.nom_machine, Synthèse_Globale.code_notation, Synthèse_Globale.commentaire FROM Opérateur INNER JOIN Synthèse_Globale ON Opérateur.matricule = Synthèse_Globale.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 & "')"
SQL2 = SQL2 & connecteur & "(Opérateur!nom = '" & Me.txtNom.Value & "')"
SQL3 = SQL3 & connecteur & "(Opérateur!nom = '" & Me.txtNom.Value & "')"
connecteur = " AND "
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 & "')"
SQL2 = SQL2 & connecteur & "(Opérateur!prenom = '" & Me.cmbprenom.Value & "')"
SQL3 = SQL3 & connecteur & "(Opérateur!prenom = '" & Me.cmbprenom.Value & "')"
connecteur = " AND "
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 & "')"
SQL2 = SQL2 & connecteur & "(Synthèse_Intermediaire!nom_machine = '" & Me.cmbMachine.Value & "')"
SQL3 = SQL3 & connecteur & "(Synthèse_Globale!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;"
SQL2 = SQL2 & " ORDER BY Synthèse_Intermediaire.matricule, Synthèse_Intermediaire.date_synthèse_intermediaire, Synthèse_Intermediaire.nom_machine, Domaine.apparition_domaine; "
SQL3 = SQL3 & " ORDER BY Synthèse_Globale.matricule, Synthèse_Globale.date_synthèse; "
'on affecte à la liste de résultats la requête SQL
Me.lstResultsEvaluation.RowSource = SQL
Me.lstResultsSynthese.RowSource = SQL2
Me.lstResults.RowSource = SQL3
'cette commande permet enfin d'exécuter la requête et d'afficher les réponses
Me.lstResultsEvaluation.Requery
Me.lstResultsSynthese.Requery
Me.lstResults.Requery |
Partager