PDA

Ver la Versión Completa : Extraer mes de un combobox


lKinGl
07-05-2008, 21:45:46
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í:

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:

select TUS_CAMPOS from TU_TABLA ehere CAMPO_MES = :MES and CAMPO_ANIO = :ANIO;

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
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