Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Extraer mes de un combobox (https://www.clubdelphi.com/foros/showthread.php?t=56115)

lKinGl 07-05-2008 21:45:46

Extraer mes de un combobox
 
Buenas amigos foristas...

tengo una búsqueda sql que funciona con radio groups perfectamente
tengo un combobox1 = Meses(Enero, Febrero, Marzo, Abril.......Diciembre).
Tengo un spinedit1 = aqui el usuario pone el año (2009).

y necesito que cuando el usuario seleccione en el combobox1 Enero y en el spinedit1 seleccione 2009

y luego pulse el boton buscar me muestre en el dbgrid1 los registros del mes Enero 2009.

uso bases de datos paradox7
Delphi 7.

PD: ya use la opcion buscar en los foros y no logré encontrar nada :o

gracias adelantadas :D

lKinGl 07-05-2008 21:54:17

plissssssssssss

Delphius 07-05-2008 22:26:05

Hola lKinGl,
Veamos si te entiendo...
Tienes un ComboBox en donde seleccionas el mes.
Tienes además, un TSpinEdit en donde seleccionas el año.
¿Y luego, al dar clic en un botón deseas realizar una consulta de modo tal que devuelva los registros que coincidan con dichos criterios?

Si es eso, te entendí.
Ahora, mi duda, sobre tu dilema... ¿en que parte tienes problemas?¿En el SQL?

Tu SQL debería ser más o menos así:

Código Delphi [-]
Query1.Sql.Add('select TUS_CAMPOS');
Query1.Sql.Add('from TU_TABLA');
Query1.Sql.Add('where CAMPO_MES = ' + Quoted(ComboBox1.Text));
Query1.Sql.Add(' and CAMPO_ANIO = ' + SpinEdit.Value );
Query1.Open;

Puede que tenga errores, no tengo Delphi a mano... pero creo que por allí va la mano.

Aunque recomiendo que sería mejor el uso de parámetros:

Código SQL [-]
select TUS_CAMPOS from TU_TABLA ehere CAMPO_MES = :MES and CAMPO_ANIO = :ANIO;

Código Delphi [-]
Query1.Params.ParamByName('MES').AsString := ComboBox.Text;
Query1.Params.ParamByName('ANIO').AsInteger := SpinEdit1.Value;
Query1.Open;

Si buscas sobre ParamByName y/o parámetros vas a encontrar información de como se maneja.

No se que componentes usas... si los indicaras te podría indicar un código más exacto... Puesto que estoy dudando si es Query1.Params.ParamByName o Query1.ParamByName.

Como dije, lo escribí al vuelo, pero creo que puede andar.

Saludos,

marcoszorrilla 07-05-2008 22:33:09

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.close;
Query1.Sql.Clear;
Query1.Sql.Add('Select * From Factura');
Query1.Sql.Add('Where Extract(Year from Fecha)= '+QuotedSTR(Edit1.Text));
Query1.Sql.Add('And Extract(Month from Fecha) = '+QuotedSTr(IntToStr(combobox1.itemindex+1)));
Query1.Open;
end

Aquí tienes otro ejemplo.

Un Saludo.

BlueSteel 07-05-2008 22:53:49

Hola lKinGl

creo que tambien debieras aclarar como tienes almacenado los meses y los años... por que si lo tienes todo junto en un campo de tipo date... o datetime... lo anterior no te va a servir...

solo dices que tienes un combobox con los meses de enero a diciembre.... y otro donde ingresas el año....

Aclara esto de la estructura de la tabla donde realizas la consulta...


Salu2:p:D


La franja horaria es GMT +2. Ahora son las 22:41:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi