Liste du mois + année [Résolu]

Messages postés
9
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
10 mars 2006
- - Dernière réponse : elicec77
Messages postés
9
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
10 mars 2006
- 1 avril 2005 à 10:31
Je suis étudiante en bts et je souhaite faire une liste au format date qui comprend uniquement le mois et l'année, sans utiliser le DateTimePicker pour pouvoir l'utiliser comme condition dans une requête SQL.
merci de votre aide !!!!
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
1270
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
3
Merci
ok c'est un peu plus clair, tout ça :)

type
TMois = 1..12 ;
TAnnees = 2003..9000 ;


procedure TForm1.Button1Click(Sender: TObject);
const
NOM_MOIS : array[TMois] of string =
( 'Janvier '
, 'Février '
, 'Mars '
, 'Avril '
, 'Mai '
, 'Juin '
, 'Juillet '
, 'Août '
, 'Septembre '
, 'Octobre '
, 'Novembre '
, 'Décembre '
) ;


var
Liste : TStrings ;
Annee, Mois : Integer ;


begin
Liste := TStringList .Create ;
try
// Création de la liste
for Annee := Low(TAnnees) to High(TAnnees) do
begin
for Mois := Low(TMois) to High(TMois) do
begin
Liste.Add( NOM_MOIS[Mois] + IntToStr( Annee ) ) ;
end ;
end ;


// Ajout de la liste à un ComboBox
ComboBox1.Items.Assign(Liste);


finally
Liste.Free ;
end ;
end;

Je modifierais également la requete SQL :
Au lieu de :
table.SQL.Add('and datet=:b') ;
// N.B. ' au lieu de " et =: au lieu de = !! Est ce bien de Delphi dont-il sagit ici ????
J'ecrirais :
with ComboBox1 do
begin
table.SQL.Add("and datet=" + Items[ItemIndex] ) ;
end ;

P.S. Euh Janvier 2003 .. Décembre 9000, d'ici là les employés seront tous décédés et ton programme aussi bon soit -il sera obsolète, remplacé et oublié depuis fort longtemps :oP

Cordialement.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de WhiteHippo
Messages postés
1270
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
0
Merci
Un peu plus de précision nous serais, je pense nécessaire ;)

Tu veux une liste toute simple ressemblant à celle ci ?
01/2005
02/2005
03/2005

La liste doit être mise dans un ListBox, un TStrings, ... ?

Les mois representent-ils uniquement ceux de l'année en cours, ou bien plutot 10 derniers mois .. 10 prochains mois (plage flottante), etc... ?

Le résultat de la liste doit-il être directement exploitable par le SQL, au quel cas quel format souhaites tu ? ( Un exemple de requête serait le bien venu :)

Cordialement.
Commenter la réponse de WhiteHippo
Messages postés
9
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
10 mars 2006
0
Merci
Je souhaite une liste du type Janvier 2003
Février 2003.....
jusqu'à Décembre9000!!!!
en fait mon programme consiste à faire un comptage d'heure passer par des employer d'une société, à l'aide d'un compteur ; et ensuite je dois traiter les information par mois j'effectue une requête du type

//requête num_cli
cli.SQL.Clear;
cli.SQL.Add('select Num_cli');
cli.SQL.Add('From CLIENT');
cli.SQL.Add('where Lib_cli=:x');
cli.Params[0].AsString:= DBLookupComboBox1.Text;
cli.Open;


//Affichage des info dans le dbgrid
table.SQL.Clear;
table.SQL.Add('SELECT Num_tache, datet as [date], Nbre_heure as [temps de travail], Nom_employer as [Par qui]');
table.SQL.Add('FROM TACHE, EMPLOYER');
table.SQL.Add('Where EMPLOYER.Num_employer= TACHE.Num_employer');
table.SQL.Add('and Num_cli=:a') ;
table.SQL.Add('and datet=:b') ;
table.Params[0].Asinteger:=cli.Fields[0].AsInteger;
table.Params[1].Asdate:=dateta;
table.Open;

petite précision, ma base de donnée est access! et j'ai du mal a traiter les type date avec!!

merci de ton aide, cordialement.
Commenter la réponse de elicec77
Messages postés
9
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
10 mars 2006
0
Merci
Merci de ton aide pour la liste c'est juste ce qu'il me fallait! mais pour la requête ca marche pas!je vais étudier la question!
au fait décembre 9000 c'étais de l'ironie!
cordialement.
Commenter la réponse de elicec77