Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Guardar y Filtrar en una Tabla (https://www.clubdelphi.com/foros/showthread.php?t=41607)

Sr.Scorpion 20-03-2007 20:02:53

Guardar y Filtrar en una Tabla
 
Hola:

No se si lo que estoy preguntando es una burrada pero... tengo una Tabla (Access) en la q guardo datos y los modifico a traves de un DBGrid y en la misma quiero filtrar etc a traves del mismo DBGrid, estoy trabajando con la propiedad Filter del ADOTable y no me convence.... cuando tengo que sumar los campos de la tabla me los suma todos y no los filtrados... algo bien logico ya que el filtro lo hago con el ADOTable... en fin existe alguna forma mas potable, legible y menos engorrosa para en el mismo formulario a parte de entrar los datos a traves del DBGrid pueda filtrarlos y cosas por el estilo

Saludos

Caral 20-03-2007 20:35:35

Hola Sr.Scorpion
Practicamente es lo mismo que el otro hilo, la verdad no se porque te complicas con el adotable, usa el adoquery y podras hacer mas cosas el cambio es simple.
Saludos

Caral 20-03-2007 20:43:23

Te lo voy a poner mas facil
Aqui: ftp://196.40.62.225/ esta un archivo que se llama ejemplo.zip
ademas de otros, esta en access, lo hice precisamente para explicar lo de los filtros.
bajalo y me dices.
Saludos

Sr.Scorpion 20-03-2007 22:22:45

Vengaaaaa !!!!!!!

El hombre mientras mas se perfecciona mas se embrutece..... disculpen a todos no estaba usando el ADOQuery porque creia que mediante el no podia insertar y borrar una tabla :eek: no se porque habre pensado eso pero bueno asi fue

Caral 20-03-2007 22:25:14

Y Bueno, te sirvio? no te sirvio?, bajaste el ejemplo?, lo provaste?
Ahora quedan las dudas.:D
Saludos

Sr.Scorpion 20-03-2007 23:02:26

No baje el ejemplo, no probe el ejemplo, no hice nada con el ejemplo... porque con el ADOQuery resolvi sin el ejemplo :D

Caral 21-03-2007 00:56:56

Bueno me alegro de que no necesites del ejemplo, pero segun veo en otro hilo sigues con dudas en cuanto a sumas por filtro, Dudas que se eliminan cuando se ve el ejemplo, bueno tu sabras si lo ves o no.
Esto :
Cita:

porque con el ADOQuery resolvi sin el ejemplo
No se que puede significar, la verdad es que el que no quiere ayuda, no la encuentra.
Saludos

Sr.Scorpion 22-03-2007 16:15:52

Carnal... no he podido bajar tu ejemplo.zip.... me da error en el FTP

Saludos

Lepe 22-03-2007 16:55:38

Yo lo acabo de bajar sin problemas.

Saludos

Sr.Scorpion 22-03-2007 17:05:10

Cita:

Empezado por Lepe
Yo lo acabo de bajar sin problemas.

Saludos

Pues a mi me dice Can't open data conection... de ser posible si me lo pueden mandar a [email protected] lo agradezco =

Caral 22-03-2007 19:14:11

Hola
Me parece muy extraño que no puedas ver el programa.
De todos modos ya te lo envie por correo.
Saludos

Sr.Scorpion 22-03-2007 19:28:07

No me ha llegado todavia.... repito el correo por si algo

[email protected]

Caral 22-03-2007 19:30:47

Hola estaba revisando y aparentemete no me envia bien a tu correo.
No se que pueda ser.
Pero bueno, hay que atacar el problema.
Me puedes explicar en que parte de todo el problema estas.?
Saludos

Caral 22-03-2007 19:33:51

Intenta otra vez aqui: ftp://196.40.62.225/Ejemplo.zip
Saludos

Sr.Scorpion 22-03-2007 19:39:31

La cuestion en si es hacer una suma a una Tabla despues de filtrada..... tengo un Query1 q me filtra y un Query2 q me suma, sumo y me da un valor, filtro y me da el mismo valor...

PD: Se esta bajando el ejemplo leeeeentamente pero bajando :D

Caral 22-03-2007 19:49:00

Bueno si bajas el ejemplo veras que se enlaza a access.
Si no lo puedes bajar o si puedes veras que hay un codigo que filtra y otro que suma en dos query en el form2 asi:
Uso un combobox para esto:
Código Delphi [-]
procedure TForm2.ComboBox1Change(Sender: TObject);
begin
  ADOQuery2.Active:= False;
  ADOQuery2.SQL.Text:= 'SELECT * From TuTabla';
  ADOQuery2.SQL.Add('WHERE (((TuTabla.TuCampo)="'+Combobox1.Text+'"))');
  ADOQuery2.Active:= True;
  ADOQuery1.Active:= False;
  ADOQuery1.SQL.Text:= 'SELECT DISTINCTROW TuTabla.TuCampo1, Sum(TuTabla.TuCampo2) AS [Suma De tuCampo2],'+
                       ' Sum(TuTabla.TuCampo3) AS [Suma De TuCampo3]'+
                       ' FROM TuTabla '+
                       'WHERE (((TuTabla.TuCampo)="'+Combobox1.Text+'"))'+
                       'GROUP BY TuTabla.TuCampo1';
 ADOQuery1.Active:= True;
end;
Bueno mas claro imposible.
Espero te sirva.
Saludos

Sr.Scorpion 22-03-2007 20:12:46

Funciono a las mil maravillas...... Gracias

Jemp 23-03-2007 00:29:06

Crear un Mantenimiento
 
Cita:

Empezado por Sr.Scorpion
Funciono a las mil maravillas...... Gracias

Hey excuseme pero soy un novato y estoy haciendo algo para la universidad
sucede que tengo un formulario de mantenimiento donde creo algunos registros uso dos dbedit uno para el codigo del registro y otro para el nombre y quiero que si el codigo esta vacio o es cero me tome del ultimo registro el siguiente y me da error
estoy usando estas instrucciones :

insertar : string;
xpaquete : integer;
nombre : string;
begin
dbenombre.SetFocus;
dbetipo.Text := '';
if dbetipo.Text = '' then
dbetipo.Text := '0';
xpaquete := Strtoint(dbetipo.Text);
if dbetipo.Text = null or 0 then
begin
showmessage('nulo');
insertar := 'select max(paquete) + 1 from tipopaquetes';
qtipos.SQL.Add(insertar);
qtipos.Active := True;
qtipos.Open;
xpaquete := qtipos.Recordset.Fields[0].value;
end;
nombre := dbenombre.Text;
insertar := 'insert into tipopaquetes (paquete, nombre) values (';
insertar := insertar + intToStr(xpaquete) + ',';
insertar := insertar + chr(39)+ nombre + chr(39) + ')';
showmessage(insertar);
qtipos.SQL.Add(insertar);
qtipos.ExecSQL;

ayudenme please :o

Lepe 23-03-2007 00:46:23

Código Delphi [-]
 
insertar : string;
 xpaquete : integer;
 nombre : string;
begin
   dbenombre.SetFocus;
   dbetipo.Text := '';
   if dbetipo.Text = '' then
   dbetipo.Text := '0';
   xpaquete := Strtoint(dbetipo.Text);
    if dbetipo.Text = null or 0 then
       begin
       showmessage('nulo');
       insertar := 'select max(paquete) + 1 from tipopaquetes';
       qtipos.SQL.Add(insertar);
       qtipos.Active := True;
       qtipos.Open;
       xpaquete := qtipos.Recordset.Fields[0].value;
    end;

    qtipos.Close;  // *******************
    qtipos.sql.Clear;// *******************

    nombre := dbenombre.Text;
    insertar := 'insert into tipopaquetes (paquete, nombre) values (';
    insertar := insertar + intToStr(xpaquete) + ',';
    insertar := insertar + chr(39)+ nombre + chr(39) + ')';
    showmessage(insertar);
    qtipos.SQL.Add(insertar);
    qtipos.ExecSQL;

Saludos

Jemp 23-03-2007 17:14:44

Me da un error mas grande
 
Gracias lepe, pero me da un error de duplicate entry porque se me guarda en el registro cero. Pueden ayudarme este es mi correo [email protected] y [email protected] please. Gracias :rolleyes:


La franja horaria es GMT +2. Ahora son las 01:33:35.

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