VB.Net ADO.Net Recherche à partir d'une date plus grande que... [Résolu]

cs_JeffC1977 929 Messages postés vendredi 10 novembre 2000Date d'inscription 10 septembre 2010 Dernière intervention - 10 mai 2010 à 16:02 - Dernière réponse : cs_JeffC1977 929 Messages postés vendredi 10 novembre 2000Date d'inscription 10 septembre 2010 Dernière intervention
- 11 mai 2010 à 21:54
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
Afficher la suite 

Votre réponse

7 réponses

nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 10 mai 2010 à 19:24
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de nhervagault
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 10 mai 2010 à 22:27
+3
Utile
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) & "#' "
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de nhervagault
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 11 mai 2010 à 21:45
+3
Utile
utilses la fonction format autour de la date
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de nhervagault
cs_JeffC1977 929 Messages postés vendredi 10 novembre 2000Date d'inscription 10 septembre 2010 Dernière intervention - 10 mai 2010 à 22:23
0
Utile
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
Commenter la réponse de cs_JeffC1977
cs_JeffC1977 929 Messages postés vendredi 10 novembre 2000Date d'inscription 10 septembre 2010 Dernière intervention - 11 mai 2010 à 15:04
0
Utile
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
Commenter la réponse de cs_JeffC1977
cs_JeffC1977 929 Messages postés vendredi 10 novembre 2000Date d'inscription 10 septembre 2010 Dernière intervention - 11 mai 2010 à 15:09
0
Utile
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
Commenter la réponse de cs_JeffC1977
cs_JeffC1977 929 Messages postés vendredi 10 novembre 2000Date d'inscription 10 septembre 2010 Dernière intervention - 11 mai 2010 à 21:54
0
Utile
merci je venais tout juste de trouver....
Commenter la réponse de cs_JeffC1977

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.