Comparaison de date en Sql avec access
Bonjour a tous.
Pour un projet professionnel, je dois extraire d'une base de donnée access dans la table absence les absences d'employés qui commence ou se termine entre deux date déterminées par l'utilisateur.
Voici mon code pour l'instant:
Code:
1 2 3 4 5 6 7
| Sql_Cmd = "SELECT nom_technicien, date_debut, date_fin FROM absence, technicien " & _
"WHERE id_technicien = absence.technicien " & _
"AND (((date_debut >= DateSerial(Year(""" & Debut_Semaine & """),Month(""" & Debut_Semaine & """),Day(""" & Debut_Semaine & """))) " & _
"AND (date_debut <= DateSerial(Year(""" & Fin_Semaine & """),Month(""" & Fin_Semaine & """),Day(""" & Fin_Semaine & """)))) " & _
"OR ((date_fin >= DateSerial(Year(""" & Debut_Semaine & """),Month(""" & Debut_Semaine & """),Day(""" & Debut_Semaine & """))) " & _
"AND (date_fin <= DateSerial(Year(""" & Fin_Semaine & """),Month(""" & Fin_Semaine & """),Day(""" & Fin_Semaine & """))))) " & _
"AND nom_technicien LIKE """ & Name & """ ORDER BY date_debut;" |
Or, malgré les <= placé pour la comparaison avec fin semaine, il ne me prend jamais les dates correspondant au dernier jour de mon intervalle. Il n'y a pourtant aucun problème pour le début de semaine avec un >=. Auriez vous une idée ?
J'ai déjà fait des Msgbox de Debut_Semaine et Fin_Semaine juste avant l’exécution, ils correspondent respectivement au 22/08/2011 et au 26/08/2011. Mais dans mes résultats je n'ai que les absences du 22 au 25 inclus. Pas le 26.
Merci par avance a ceux qui auront l'astuce toute bête qui me débloquera certainement.