![]() |
Ayuda con una tabla y sus consultas
Es que deplano no me doy idea para esto
Mi duda es la siguiemnte y espero me puedan ayudar cuento con una base que tiene 14 campos que son: Clave, Partida,Concepto,Enero,Febrero,Marzo...,Diciembre tuvo que ser asi por ciertos problemas de diseño ahora necesito realizar la busqueda con respecto a los parametros Clave, Partida y alguno de los meses. ejemplo Clave Partida Concepto Enero Febrero ... Diciembre 1234 0001 XXX $0 $10 $5 1234 0002 yyy $5 $15 $0 1234 0003 zzz $0 $3 $7 2345 0001 XXX $0 $10 $5 2345 0002 yyy $5 $15 $0 2345 0003 zzz $0 $3 $7 Tengo un combobox que me muestra las claves que las toma por medio de un Table y los filtro con un bucle para que no se repita 3 veces el 1234 y 3 veces el 2345, de ahi en el evento Exit de ese combobox hace que se cambie otro combobox y muestre las partidas contenidas en ese evento, ahora por medio de un TDATETIME jalo el mes y de ahi no se como hacerle para que se dirija al campo deseado. ejemplo Combobox1 = 1234 automaticamente el Combobox2 obtiene 0001,0002 y 0003 selecciono el 0002 y de ahi con el TDATETIME = Febrero deberia devolverme el valor de ese campo que es $15 hacia una variable o label, se aceptan sugerencias, si con Table, Query o como, no se que utilizar y menos de que manera tengo una base llamada presupuesto.db y esta hecha asi Clave String 12 Partida String 4 Concepto String 30 Enero Money Febrero Money Marzo Money ... ... Diciembre Money ahora cuento con unos datos ya almacenados asi Clave Partida Concepto Enero Febrero ... Diciembre 1234 0001 XXX $0 $10 $5 1234 0002 yyy $5 $15 $0 1234 0003 zzz $0 $3 $7 2345 0001 XXX $0 $10 $5 2345 0002 yyy $5 $15 $0 2345 0003 zzz $0 $3 $7 ahora por medio de un Table1 y DataSource1 hago que se llene un combobox1 con las claves, con ese ejemplo el combo solo tiene dos claves, la 1234 y la 2345 porque ocupo un buccle para que no cargue los repetidos, ahora de igual manera lo hace para las partidas qe estas aparecen en un combobox2 una vez que yo cambio el combobox1, cuando escojo ejemplo la clave 2345 el combobox2 se llena con 0001, 0002 y 0003, ahora necesito que cuando yo escoja 2345 (combobox1) y 0002 (del combobox2) mas por medio de TDATETIME pueda saber el mes actual y se busque en la base el campo y me arroje el contenido, espero poder darmre a entender y que me ayuden, msn ajurado@hotmail.com |
Te haces entender perfectamente, lo único que no entiendo del todo es el tema del TDateTime, TDateTime es un tipo de dato no un componente, ¿Qué quiere decir?, ¿Elijes tu el mes en algún sitio o quieres cojer el mes actual?... supondre que lo que quieres es el mes actual y te pondre un ejemplo
Creo que lo más sencillo que puedes usar es un TQuery, le das la propiedad DataBaseName si conectas por medio de un TDatabase o el Alias y escribes la SQL de busqueda que necesites, tengo la sensación y corrijeme si me equivoco de que no tienes mucha idea de SQL, te recomiendo que te documentes, en fin, seria algo asi... Procedure LOQUESEA; Var Mes : Integer; MesStr : String; Begin //Primero sacamos el mes actual en un entero Mes := StrToInt ( FormatDateTime('mm', now) ); Ese numero de mes... ¿a que campo de la tabla corresponde? Case mes of 1: MesStr := 'enero'; 2: MesStr := 'febrero'; 3: MesStr := 'marzo'; 4: MesStr := 'abril'; 5: MesStr := 'mayo'; 6: MesStr := 'junio'; 7: MesStr := 'julio'; 8: MesStr := 'agosto'; 9: MesStr := 'septiembre'; 10: MesStr := 'octubre'; 11: MesStr := 'noviembre'; 12: MesStr := 'diciembre'; end; Se supone que la clave primaria la tenemos guardada en los Strings Clave y Partida Escribimos la sentencia SQL TQuery.Sql.Text := "select "+MesStr+" from presupuesto where clave = "+Clave+" and Partida = "+Partida; Abrimos la SQL y ponemos el valor donde sea que lo queremos TQuery.Open; TLabel.Caption := TQuery.FieldByName(MesStr).AsString; TQuery.Close; Es asi de sencillo y así de complicado, espero que te sirva de ayuda y si te queda alguna duda no tengas reparos en preguntar Salu2 a To2 |
La franja horaria es GMT +2. Ahora son las 23:46:32. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi