Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-09-2003
CI>140 CI>140 is offline
Miembro
 
Registrado: ago 2003
Ubicación: Boca del Rio Veracruz
Posts: 17
Poder: 0
CI>140 Va por buen camino
Unhappy 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
Responder Con Cita
  #2  
Antiguo 12-09-2003
Avatar de champy
champy champy is offline
Miembro
 
Registrado: sep 2003
Ubicación: Alicante, España
Posts: 75
Poder: 21
champy Va por buen camino
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

Última edición por champy fecha: 12-09-2003 a las 00:23:47.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:46:25.


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
Copyright 1996-2007 Club Delphi