Filtrage de dates dans deux differentes colonnes: conflits
divin1975
Messages postés81Date d'inscriptionmardi 7 juin 2011StatutMembreDernière intervention 9 novembre 2013
-
11 avril 2013 à 10:35
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 2015
-
25 avril 2013 à 16:55
Salut!
Ces codes fonctionnent bien quand je fais la recherche dans une seule colonne "data_entrada".
Curieusement quand je veux faire une recherche sur differentes colonnes Ca ne marche pas. Voici ce qui ne marche pas:
Client.filter:='Data_entrada>='''+D+'''and Data_saida<='''+F+'''' + ' and ' +'matricule=' +quotedstr(edtmatricule.Text);
var F,D:string;
begin
D:=datetostr(debut.Date);
F:=datetostr(fin.Date);
Client.Last;
Client.filter:='Data_entrada>='''+D+'''and Data_entrada<='''+F+'''' + ' and ' +'matricule=' +quotedstr(edtmatricule.Text);
Client.filtered:= True;
if Client.Eof then
begin
showMessage('Pedido não encontrado. Obrigado!');
end
else begin
QRFiche_technique.Preview;
A voir également:
Filtrage de dates dans deux differentes colonnes: conflits
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 11 avril 2013 à 14:49
Salut,
A première vue, pas d'erreur dans ton code. Elle doit plutôt être dans la composition de ton filtre.
Ajoute un showmessage(Client.Filter) après la ligne "Client.filtered:= True;". Tu vas voir ton filtre apparaître et tu peux contrôler si c'est vraiment les données que tu cherches à récupérer.
Quand tu dis "ça ne marche pas", ça veut dire que tu as le message 'Pedido não encontrado. Obrigado!' qui s'affiche ou bien as tu un message d'erreur ? (pense à le préciser lors de tes prochaines interventions, on n'est pas devant ton écran, donc si tu veux une résolution rapide, donne de suite plus de détails... )
divin1975
Messages postés81Date d'inscriptionmardi 7 juin 2011StatutMembreDernière intervention 9 novembre 2013 11 avril 2013 à 16:34
Merci pour cette intervention.
Du moins, j'ai mis cette ligne showmessage(Client.Filter) après Client.filtered:= True;
En faisant le filtre par exemple de la date 09-04-2013 se trouvant dans la colonne 'Data_entrada' et 11-04-2013 dans la colonne 'Data_saida'. Ce message apparait: Data_entrada>='09-04-2013'and 'Data_saida'<='11-04-2013'
Malgré tout le filtrage est 'tordu' c'est dire qu'il n'affiche pas les données filtrées entre les deux colonnes.
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 11 avril 2013 à 16:45
Les dates ne correspondent pas, c'est ça ?
Est-ce que ça ne viendrait pas de ton séparateur de date ?
Essaie en rajoutant :
DateSeparator := '/';
entre le begin et
D:=datetostr(debut.Date);
F:=datetostr(fin.Date);
divin1975
Messages postés81Date d'inscriptionmardi 7 juin 2011StatutMembreDernière intervention 9 novembre 2013 15 avril 2013 à 15:51
@simonpelloquin
je ne sais pas si c'est moi qui ne comprends pas ou c'est peut être ma table.
As-tu aussi essayé pour voire si les dates de deux colonnes differentes ne posent aucun problème lors du filtrage?
Merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 17 avril 2013 à 11:54
ah alors il me semble que le format de date est différent sous access...
Essaie en mettant un "#" avant et après ta date :
Data_entrada >= #09/04/2013# and Data_saida <= #11/04/2013#
petite remarque, j'ai l'impression que tu as deux apostrophes en trop :
Data_entrada>='09-04-2013'and '
Data_saida'
<='11-04-2013'
cs_yanb
Messages postés271Date d'inscriptionlundi 27 octobre 2003StatutMembreDernière intervention 7 juillet 202214 17 avril 2013 à 12:47
Salut,
Avec les composants ADO + ODBC le format doit être de souvenir #yyyy-mm-dd#
Avec les composants BDE + ODBC le format doit être de souvenir {d 'yyyy-mm-dd'}
Autres piste Ici et Ici @+
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 25 avril 2013 à 16:55
Avant le "Client.filtered:= True;", fais un showmessage(Client.filter) et poste le contenu du message ici. Comment tu veux qu'on devine les dates que tu as choisies ???
Mais je pense que l'erreur est ailleurs... Relis mon dernier message, ce n'est pas sur les noms de champs que je t'ai dit de mettre des "#" !!!!