vicelow5901
Messages postés27Date d'inscriptionvendredi 27 octobre 2006StatutMembreDernière intervention 7 mars 2008
-
13 juin 2007 à 09:01
vicelow5901
Messages postés27Date d'inscriptionvendredi 27 octobre 2006StatutMembreDernière intervention 7 mars 2008
-
13 juin 2007 à 10:51
Bonjours à tous,
J'ai un petit problème et j'espère que vous allez pouvoir m'aider. Pour commencer je vais vous expliquer le sujet. Je dois faire un programme de gestion des absences et quand j'enregistre une absence, je saisi la date de début de l'absence et la date de fin. Mon problème se situ au moment de la visualisation des absences mensuelles (afficher toutes les absences du mois) et les absences annuelles (afficher toutes les absences de l'année). Pour cela, je saisis biensur avant, dans deux textbox différentes, le mois et l'année pour les recherches mensuelles et l'année pour les recherches annuelles. Donc pour cela, dans ma requête, je dois séparer chaque partie de ma date pour n'utiliser que le mois ou l'année pour les comparer avec l'année et le mois saisis dans mes textbox. Avant d'écrire ce message sur le forum, j'ai essayé avec : Year (ma date) = '" & datebox.text & "' et Month pour le mois, mais cela ne marche pas.
Pour finir je voulais savoir si c'était possible d'afficher les absences hebdomadaire et si oui, comment.
Merci d'avance et j'espère avoir était clair dans mon énonciation.
Vicelow5901.
A voir également:
Utiliser qu'une partie d'une date dans une requête SQL
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 13 juin 2007 à 10:30
Nicko11 : en effet, tu peux agrémenter ta clause WHERE avec des appels de fonctions SQL, c'est pas un soucis ;)
Pour vicelow5901 : regarde tu côté de la fonction Format. Il me semble que ca donne :
Pour une recherche sur numéro de semaine :
Format("ww", tonChamp) = NumeroDeSemaine
Pour une recherche sur le jour :
Format("dddd", tonChamp) = NomDuJour
ex :
Format("dddd", tonChamp) = 'lundi'
vicelow5901
Messages postés27Date d'inscriptionvendredi 27 octobre 2006StatutMembreDernière intervention 7 mars 2008 13 juin 2007 à 09:15
Pour etre plus précis et pour etre corrigé, voila ma requête :
Private Sub BTrechercher_Click()
Dim sql As String
Set Rcd = New ADODB.Recordset
If mensuelle.Value = Checked Then
' Préparation de la requête
sql = "Select * From absence where Month(dat_debut) >= " & Text1.Text & " and Year(dat_debut) = " & Text2.Text & " and Month(dat_fin) <= " & Text1.Text & " and Year(dat_fin) = " & Text2.Text & " Order by nom_salarie ;"
' Connexion à la base de données
cnx.CursorLocation = adUseClient
Rcd.CursorLocation = adUseClient
' Exécution de la requête
Rcd.Open sql, cnx
' Affichage dans le datagrid
Set DataGrid1.DataSource = Rcd
DataGrid1.Refresh
ElseIf annuelle.Value = Checked Then
' Préparation de la requête sql "Select * From absence where Year(dat_debut) " & Text2.Text & " and Year(dat_fin) = " & Text2.Text & " Order by nom_salarie ;"
' Connexion à la base de données
cnx.CursorLocation = adUseClient
Rcd.CursorLocation = adUseClient
' Exécution de la requête
Rcd.Open sql, cnx
' Affichage dans le datagrid
Set DataGrid1.DataSource = Rcd
DataGrid1.Refresh
vicelow5901
Messages postés27Date d'inscriptionvendredi 27 octobre 2006StatutMembreDernière intervention 7 mars 2008 13 juin 2007 à 09:23
Je me suis trompé dans ma requête, même si sa n'a rien changé, j'ai toujours un bug, pour dat_debut c'est <= et non pas >= et vice versa pour la dat_fin.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 13 juin 2007 à 10:03
Salut,
je suis pas sur mais dans une clause Where, tu dois forcement faire reference a un des champs de ta table.
Or Ici, Year(dat_debut) est une fonction et pas un champ.
"Select * From absence where Absence_date_debut" & Text2.Text & " and Absence_date_Fin " & Text2.Text & " Order by nom_salarie ;"
Absence_date_debut et Absence_date_Fin sont les champs de ta table.
vicelow5901
Messages postés27Date d'inscriptionvendredi 27 octobre 2006StatutMembreDernière intervention 7 mars 2008 13 juin 2007 à 10:23
Pour répondre à nicko11
, le Year et le month servent à sélectionner que l'année ou le mois de mon champs date_debut ou date_fin (d'ailleur faut-il vraiment utilisé cela) et pour répondre à darksidious
, elle est vraiment bonne ma requête, je viens de vérifier et c'est bien un des champs qui était mal saisi mais je ne l'ai pas remarqué tout de suite car j'était certain que mes champs était bon, c'est un amis qui me la fait remarqué. Comme quoi il faut toujours vérifier les évidences en informatique! ;-)
Par contre, peut etre que vous pouvez m'aider encore une fois, je ne sait pas faire une recherche hebdomadair :-s.