Problème date Sql

Cas-Lu Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
jondev Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -
Salut tout le monde,
Je suis face à un problème basique de SQL, donc SVP, soyez conciliant.

Je souhaite (grâce a une requête) afficher les heures supplémentaires selon l'id du salarié, le mois actuel et l'année actuel.
Ma requête se présente ainsi :
SELECT ...(ligne très longue de ce que je veux afficher)
FROM Hsupp
WHERE Hsupp.IDSalarié=1(Jusqu'ici ca va) and Hsupp.Jours="**/01/2017";

La ligne soulignée est le problème.

Access m'affiche lors de l’exécution "Type de données incompatible dans l'expression du critère.".
Cependant, il me semble avoir vu en 1ere année de BTS SIO qu'on utilise les "*" pour définir les données qui peuvent changer.
Par exemple, dans mon cas j'aimerais afficher les heures supplémentaires du service Finance pendant le mois de Janvier (01) 2017 de n'importe quel jours (d'ou mon **/01/2017).

Merci de bien vouloir m'indiquer ou se situent mes erreurs et me proposer des correctifs.
A voir également:

1 réponse

jondev Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   9
 
Bonjour Cas-Lu,

Dans "Access" vous ne pouvez pas effectuer une recherche sur un champ de type "DateTime" en utilisant une chaîne de caractères d'où le message "Type de données incompatible dans l'expression du critère.".

Pour cela il faut utiliser la fonction "format"

La syntaxe est la suivante : format(NomDuChamp,"FormatSouhaité")

Dans votre cas pour une recherche sur tout le mois de janvier, la requête est la suivante :
SELECT * FROM Hsupp WHERE Hsupp.IDSalarie=1 and format(Hsupp.Jours,"mm/yyyy") = "01/2017";

Pour une recherche sur un jour donné, la requête sera :
SELECT * FROM Hsupp WHERE Hsupp.IDSalarie=1 and format(Hsupp.Jours,"dd/mm/yyyy") = "01/01/2017";

En espérant avoir pu vous aider.

Bonne continuation pour votre développement.

JonDev
0