Liste du mois + année

Résolu
elicec77 Messages postés 9 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 10 mars 2006 - 29 mars 2005 à 16:21
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 !!!!

4 réponses

WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
31 mars 2005 à 15:54
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.
3
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
30 mars 2005 à 22:15
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.
0
elicec77 Messages postés 9 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 10 mars 2006
31 mars 2005 à 08:27
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.
0
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
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.
0
Rejoignez-nous