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
| Private Sub cmdRechercher_Click()
' Crée la requête en fonction des critères saisis
If cboEmploye <> "" Then
' Tables formations et participants
strSQL = "SELECT FOR_IDFORM, FOR_INTITULE, " _
& "FOR_IDDOM, FOR_IDORGA, FOR_DATEDEB, FOR_DATEFIN, " _
& "PART_IDEMP FROM FORMATIONS INNER JOIN PARTICIPANTS " _
& "ON FORMATIONS.FOR_IDFORM = PARTICIPANTS.PART_IDFORM"
Else
' Table formation
strSQL = "SELECT FOR_IDFORM, FOR_INTITULE, " _
& "FOR_IDDOM, FOR_IDORGA, " _
& "FOR_DATEDEB, FOR_DATEFIN FROM FORMATIONS "
End If
' Prépare la clause Where de la requête SQL
' en concaténant les critères
p_strCond = ""
p_lngEmp = 0
If cboDomaine <> "" Then
p_strCond = p_strCond _
& " AND FOR_IDDOM = " & cboDomaine
End If
If cboOrganisme <> "" Then
p_strCond = p_strCond _
& " AND FOR_IDORGA = " & cboOrganisme
End If
If cboage <> "" Then
p_strCond = p_strCond _
& " AND FOR_AGEFOMAT = " & cboage
End If
If cboEmploye <> "" Then
p_strCond = p_strCond _
& " AND PART_IDEMP = " & cboEmploye
p_lngEmp = cboEmploye
End If
' Critères sur les dates
If cboOperat1 <> "" And txtDateDeb <> "" Then
p_strCond = p_strCond & " AND (FOR_DATEDEB " & cboOperat1 _
& " #" & Format(DateValue(txtDateDeb), "MM/DD/YY") & "#)"
End If
If cboOperat2 <> "" And txtDateFin <> "" Then
p_strCond = p_strCond & " AND (FOR_DATEFIN " & cboOperat2 _
& " #" & Format(DateValue(txtDateFin), "MM/DD/YY") & "#)"
End If
' Suppression du 1er AND
If p_strCond <> "" Then
p_strCond = Right(p_strCond, (Len(p_strCond) - 4))
End If
' Affecte la requête SQL au sous-formulaire
If p_strCond <> "" Then
strSQL = strSQL & " WHERE " & p_strCond & " ORDER BY FOR_DATEDEB"
Else
strSQL = strSQL & " ORDER BY FOR_DATEDEB"
End If
SFrmFormations.Form.RecordSource = strSQL
SFrmFormations.Form.Requery
End Sub |
Partager