Ir al contenido


Foto

Resta entre campos de una misma tabla Dbgrid en Access


  • Por favor identifícate para responder
2 respuestas en este tema

#1 k_miloram

k_miloram

    Member

  • Miembros
  • PipPip
  • 12 mensajes

Escrito 30 septiembre 2012 - 01:24

Hola amigos, como les va, espero que bien..
vengo aqui porque necesito sus sabios conocimientos
el problema que tengo que es siguiente..

Tengo una Base de datos en Access y quiero hacer lo siguiente..
Necesito restar dos campos y mostrar en otra de la misma tabla

[saldo]=[total]-[entrega]

quisiera hacer eso, pero solo sobre el Dbgrid, osea, sin acción de ningun boton,

la carga de la misma la hago dentro del mismo Dbgrid

Espero sus grandes ayudas.
Un Saludo
Desde ya Muchas gracias  (y)
  • 0

#2 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 30 septiembre 2012 - 07:50

Haber, si tienes un dbGrid, asumo que lo tienes ligado a un dataset (que al tratarse de access debería ser un TADOQuery o unTADOTable), también asumo que ya existen los campos TOTAL y ENTREGA, de ser así entonces haz lo siguiente:

1: Pincha con el botón derecho del ratón sobre el dataset y escoge  New Field, se abrirá un cuadro de diálogo.
2: En Name coloca Saldo, en Type coloca Float o Integer según su necesidad, y en Field Type coloca Calculated.
3: Selecciona el Dataset y ve al inspector de objetos, haz click en la pestaña EVENTS y luego click en OnCalcFields, ahora coloca el siguiente código:



delphi
  1. procedure TForm1.TuDatasetCalcFields(DataSet: TDataSet);
  2. begin
  3.   TuDataset.FieldByName('Saldo').Value := TuDataset.FieldByName('Total').Value -
  4.     TuDataset.FieldByName('Entrega').Value;
  5. end;



Un cordial saludo.
  • 0

#3 k_miloram

k_miloram

    Member

  • Miembros
  • PipPip
  • 12 mensajes

Escrito 30 septiembre 2012 - 08:49

(y) (y) Muchisimas gracias por tu ayuda Wilson  :)
me resulto de buenas a primeras tu respuesta  (b)

Resuelto por Wilson  <:o)  :D
Un saludo
Éxitos
  • 0




IP.Board spam blocked by CleanTalk.