VB.Net ADO.Net Recherche à partir d'une date plus grande que...

Résolu
Signaler
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
-
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
-
Bonjour à tous

J'utilise un BD Acces que je fais afficher dans un DatagridView.


Je cherche à faire une recherche multiple avec la possibilité de rechercher avec une date plus petite que 2 mois à partir de la date d'aujourd'hui.

Exemple nous somme le 11 mai donc de faire afficher tous les résultats X entre le 11 mars et le 11 mai.

Voici mon problème
Je cherche un prix (23.18) et je veux chercher ce prix qui est dans les 2 derniers mois Voici ma requête SQL

RequeteSQL = "select Paiements.* from Paiements where [Prix] like '%" & txtRecherche.Text & "%' AND [Date] > '%" & DateAdd("d", -60, DateTime.Now.ToShortDateString) & "%' "


Résultat de la requête dans le Debug
select Paiements.* from Paiements where [Prix] like '%23.18%' AND [Date] > '%3/11/2010%'

Vous devinerez que ca bug. Qu'est ce que je ne fais pas de correct dans ma requête.


Merci d'avance de votre aide

7 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
37
Salut

L'operateur % est pour les like et donc les chaines de caracteres

Testes ta requete faites a l'execution en posant un point d'arret,
dans access.

select Paiements.* from Paiements where [Prix] like '%TOTO%' AND [Date] > '%01/01/2010%' "


Pour eviter ce genre de probleme utilise des requetes parametrees.

Bon dev
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
37
En direct dans access c'est avec des # il me semble.
et pas des % pour les dates.
Comm j'ai dis dans mon premier post

RequeteSQL "select Paiements.* from Paiements where [Prix] " & txtRecherche.Text & " AND [Date] > '#" & DateAdd("d", -60, DateTime.Now.ToShortDateString) & "#' "
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
37
utilses la fonction format autour de la date
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
4
Bonjour

et bien je savais que le % était pour les caractères mais pour une raison que j'ignore j'utilisais cette requête et tout fonctionne correctement

RequeteSQL = "select Paiements.* from Paiements where [Prix] like '%" & txtRecherche.Text & "%' "


J'ai essayé un truic du genre et hj'ai toujours le même bug

 RequeteSQL "select Paiements.* from Paiements where [Prix] " & txtRecherche.Text & " AND [Date] > '%" & DateAdd("d", -60, DateTime.Now.ToShortDateString) & "%' "



P.S. j'ai aucune idée de comment on peut mettre un point d'arrêt dans Acces

J'utilise VS2005 avec Access 97

merci de ton aide
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
4
Rebonjour

Effectivement tu as raison, pour les dates c'est bien les #

Entre les deux messages j'avais essayer les # mais j'ai toujours le message:

Type de données incompatible dans l'expression du critère.


Dans Access, ma colonne Prix est du numérique et ma colonne Date est Date/Heure

Merci d'avance
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
4
Encore moi

Ma variable "Add("d", -60, DateTime.Now.ToShortDateString)" me renvoi un résultat Mois/Jour/Années

Dans Acces mon format de colonne est Date/Heure
Date, abrégé Année/Mois/Jour

Mon problème doit venir de là....

Si tel ets le cad,
Donc comment formater une date afin qu'elle ait le format Année/Mois/Jour


merci de ton aide
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
4
merci je venais tout juste de trouver....