bonjour tout le monde,
voila j'aimerais savoir comment faire pour avoir aprés une recherche par exemple les résultats dans mon dbgrid trié du plus récent(lors de son insertion dans la table) vers le plus ancien
merciiiiiiiii
bonjour tout le monde,
voila j'aimerais savoir comment faire pour avoir aprés une recherche par exemple les résultats dans mon dbgrid trié du plus récent(lors de son insertion dans la table) vers le plus ancien
merciiiiiiiii
Salut
il suffit que ta requête soit du genre :
j'ai supposé que ta table a un champ date Date_recrutement tu peux le remplacer à ta guise pourvu que le DBGrid soit rattacher au bon ensemble de données.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Select * From taTable Order by Date_recrutement dsc
Bonne chance.
salut just;
je pense que ça ce que elle veux
donc normalement c'est en fonction de numéro d'enregistrement.plus récent(lors de son insertion dans la table) vers le plus ancien
+1 sam83 faut me pardonner je suis enrhumé ! mais dans tout état de cause elle doit ajouter le mot clé desc dans sa requête puisqu'il est fait pour ça...
pardon encore une fois et merci à toi sam83.
y a aucun souci just pour moi tu est tj le meilleur
@lila si ta table contient un champ auto-incrémenté tu peut ordonné ta requête sur ce champ sinon il suffit de créer un et son qu'il soit affiché dans votre dbgrid
bon rétablissement just soft !!!
DESC se palce ou dans la requete ???
merci a vous deux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 query1.Active:=false; query1.SQL.Clear; query1.SQL.Add(' select * from mouvement where code='''+edit11.Text+''' and type_mouv='''+edit2.Text+''' '); query1.Open; if (query1.Recordcount=0) then showmessage('La recherche na donnée aucun résultat !') else begin dbgrid1.Visible:=true; query1.First; while not query1.eof do begin query1.Next; end; end;
merci.
normalement là :remplace tonChamp par le champ responsable du tri; par exemple si tu veux les afficher par ordre chronologique et ton champ s'appelle date_MAJ alors tu fais ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 query1.SQL.Add(' select * from mouvement where code='''+edit11.Text+''' and type_mouv='''+edit2.Text+' 'Order by tonChamp Desc''');
@lila23 : faut faire des essais et ne jamais oublier la touche F1 et la FAQ.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 query1.SQL.Add(' select * from mouvement where code='''+edit11.Text+''' and type_mouv='''+edit2.Text+' 'Order by date_MAJ Desc''');
Bonne chance
remplace
par ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part showmessage('La recherche na donnée aucun résultat !')
Code : Sélectionner tout - Visualiser dans une fenêtre à part showmessage('La recherche n''a donné aucun résultat !')
merci just soft pour ta réponse et je n'oublie pas la faq et l'aide de delphi mais cette derniére est en anglais alors je comprend pas bien et puis j'essaye d'appliquer parfois quand je trouve mais ca marche pas surtout la syntaxe
merci issam pour ta remarque pour le showmessage et enfin merci chh pour le lien je vais essayer de tout lire!!!!
heuresement que vous etes la!!!!
vous parlez du champ incrémentable non j'en ai pas un et je ne veux pas en créer un je sui deja assez perdu avec cette appliaction je veux pas me perdre encore plus!!!!
merci samy
lila tu veux trié ton dbgrid suivant l'ordre d'insertion c'est. et les données affiché dans cet DBGrid sont le résultat d'une requête SQL. donc je pense qu'il te faut un champ auto-inc pour connaitre l'ordre d'insertion non ?
je veux essayer de m'en passer car j'ai des dates ma table donc je vais essayer d'ordonner mes enregistrements d'aprés une date !!!
non pas pour un employé et pour un de ces mouvment genre congé absence !!! c'est gentil a vous vous pensez au moindre détail pour m'aider merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 procedure TPrincipal.DBGrid1TitleClick(Column: TColumn); begin if Table.IndexFieldNames <> '' then DBGrid1.Columns[data.Personnel.FieldByName( Table.IndexFieldNames).Index].Title.Color := DBGrid1.fixedColor; if not (Column.Field.DataType in [ftBlob,ftMemo]) then begin Table.IndexFieldNames := Column.FieldName; end; end;
dsl pour mon ignorance mais chh2008 je n'ai pas bien saisi votre code!!!
merci
je vais essayer de le commenter espérant que j'y arriverais à quelque chose:
espérant toujours que c'est ça mais Lila23 la seule chose qui permet de savoir si ce code peut te satisfaire c'est de l'essayer....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 procedure TPrincipal.DBGrid1TitleClick(Column: TColumn); begin // si l'index n'est pas vide donc la table a déjà un index //en cours d'utilisation if Table.IndexFieldNames <> '' then // on récupére la couleur de la colonne fixe //et on la transmet à la colonne à trier DBGrid1.Columns[data.Personnel.FieldByName( Table.IndexFieldNames).Index].Title.Color := DBGrid1.fixedColor; // si le type de champ à trier et autre que Blob ou Memo, //logique non pas de tri sur des memo et blob if not (Column.Field.DataType in [ftBlob,ftMemo]) then begin // index en cours doit être la colonne à trier Table.IndexFieldNames := Column.FieldName; end; end;
Bonne chance.
ah enfin just soft vous etes la!!!
oui c'est vrai j'aurais du essayer mais comme je ne l'ai pas bien compris je me suis dit que c'était pas ce que je cherché !!
moi je veux avoir aprés la recherche avoir l'enregistrement le plus récent lors de son insertion dans la table vers le plus anciens!!!
merciiiiii
il te suffit de mettre un compteur qui s'incremente a chaque insertion puis de trier ta table suivant se compteur.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager