Bonjour à tous,
Je suis actuellement en stage et je dois développer une application avec une base de données.
Mon problème se situe au niveau d’une requête.
Contexte :
Je possède un Crystal Report qui doit m’afficher une liste d’expédition. Jusque là rien de bien compliqué. Mais je voudrai que cette liste soit faite en fonction d’une date choisie par l’utilisateur dans un datetimepicker.
J’ai donc fait une requête paramétré avec une date dans le tableadapter que j’ai créé pour l’état. Je récupère la date et j’envoi la requête pour afficher les bons résultats.
Seulement voila le datetimepicker lors des enregistrements d’une expédition, enregistre la date sous un format « JJ/MM/AAAA hh :mm » dans ma base de donnée. Donc lors de ma requête il ne trouvé pas de résultats d’expéditions avec la date = celle choisie, car l’heure « dérangé » si je puis dire.
J’ai donc pensé mettre en place un LIKE à la place du = afin « d’ignoré » l’heure entré dans la base par le datetimepicker.
J’ai donc établie la requête suivante :
Ici je rentre la date en dure pour tester la requête directement sous Access. Impeccable cela me retourne tous les résultats attendus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT Client.nom, Client.adresse, Client.CP, Client.ville, Expedition.date, Expedition.nbTotalColis, Expedition.nbTotalPortes FROM Client INNER JOIN Expedition ON Client.nCompteClient = Expedition.numCompteClient WHERE Expedition.date LIKE '*13/02/2009*';
Je rentre donc cette même requête dans Visual Studio (dans mon table adapter) comme ceci :
:datechoisie étant le nom de ma variable paramétré. Je teste dans mon état à l’aide du code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part WHERE Expedition.date LIKE :datechoisie;
VS n’accepte pas la requete
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 'recupere la date datechoisie = dtpdatechoix.Value.Date 'avec parametre de la combo box myadapter.Fill(dataset.ExpEditTab, datechoisie) 'creer objet etat MonEtat = New CRExpTabEdit 'source de donnee MonEtat.SetDataSource(dataset) 'affecter l'etat au controle viewer ViewerExpTabEdit.ReportSource = MonEtat
Ma question est donc comment passé en parametre la date en « ignaurant » l’heure ?
Sinon puis-je configurer le datetimepicker pour qu’il n’enregistre que la date sans l’heure dans ma base de données, et comment ?
J’ai essayé de faire en sorte que mon parametre datechoisie soit directement sous la forme avec les cotes et les asterisques comme ma requête sous access :
mais sans succes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 datechoisie = "'*" & datechoisie & "*'" myadapter.Fill(dataset.ExpEditTab, datechoisie)
J’ai testé datechoisie en format date ou string, rien ne marche
J’ai l’impression que mon LIKE est ignauré sous VB alors qu’il marche sous Access.
merci d'avance pour votre aide.
Partager