PDA

Ver la Versión Completa : pasar un dato de una tabla a otra


betty_loo
07-11-2007, 22:27:21
hola
mi problema es el siguiente yo tengo que pasar un registro de un dbedit que es una llave a otra forma, pero antes de salir de la primer forma guardo el registro y al salir de la forma1 el dbedit se queda vacio y por lo tanto al llamarlo a la segunda forma me aprece el bdedit vacio, tienen alguna idea para poder llamar el registro.

gracias.

eduarcol
07-11-2007, 22:34:50
Y porq no usas una variable y almacenas el valor antes de guardar???

Caral
07-11-2007, 22:39:14
Hola
El wiki del club (http://wiki.clubdelphi.com/wiki/index.php/Especial:Popularpages) ha sido creado para solucionar estas dudas y otras, en el encontrares ejemplos de muchas cosas, revisalo, veras que aqui (http://wiki.clubdelphi.com/wiki/index.php/Codigo_en_Delphi_%28Peque%C3%B1os_Ejemplos%29_DESCARGAS#Pasar_datos_de_un_Form_a_otro) hay exactamente lo que buscas.
Saludos

betty_loo
07-11-2007, 23:09:32
hola
gracias por la idea pero ya lo hice y si se guarda pero al llamarlo a la tercer forma la variable trae un valor nulo tienes alguna otra idea?

courtois
09-11-2007, 02:47:51
al cerrar tu forma la liberas?
en donde pusiste la variable que devuelve nulo?

eduarcol
09-11-2007, 13:24:25
hola
gracias por la idea pero ya lo hice y si se guarda pero al llamarlo a la tercer forma la variable trae un valor nulo tienes alguna otra idea?

si se me ocurren muchas ideas, pero por que no posteas el codigo para ver si podemos ayudarte sin adivinar.

betty_loo
12-11-2007, 20:48:30
este es el codigo que utilizo para llamar el dato de la otra forma
tbodtodt = es el nombre de la forma 1
descripcion es la forma 2

SIGODT := tbodtodt.value;
pac := tbodtodt.value;
sw:=0;
showmessage(inttostr(pac)) ;
showmessage(floattostr(sigodt));
descripcion.DBEdit1.Text := (inttostr(pac));

Caral
12-11-2007, 20:58:19
Hola
Yo me pregunto, viste el ejemplo del wiki que te mencione?.
Por que hace eso que pides, me extraña que sigas con el problema.
Saludos

betty_loo
12-11-2007, 21:11:39
si lo cheque y es lo que yo tengo

eduarcol
12-11-2007, 21:24:39
no entendi para nada tu codigo, podrias explicar cuales son variables y cuales estan en que formulario?

betty_loo
12-11-2007, 22:51:35
tengo una forma que tiene un boton de agregar
En el botón de agrega r tengo este código

application.createform(todtedi,odtedi);
odtedi.show;
odt.hide;
a:= 1;
odtedi.show;
odtedi.add;
query1.close;
query1.open;

y manda a llamar a otra forma

Al ingresar los datos doy clic en el botón siguiente que tiene este codigo

var cia:double;
begin
SIGODT := tbodtodt.value;
pac := tbodtodt.value;
sw:=0;

showmessage(inttostr(pac)) ;
showmessage(floattostr(sigodt));

descripcion.DBEdit1.Text := (inttostr(pac));
SIGODT := tbodtodt.value;
pac := tbodtodt.value;
sw:=0;
descripcion.DBEdit1.Text := dbedit1.text;
begin
if tbodt.State in[dsinsert] then
valida;
if tbodt.State in[dsedit] then
begin

tbodt.post;
showmessage('*** El registro Se Modifico ***');
sw := 0;
end;
if tbodt.State in[dsinsert] then
begin
if sw = 0 then
begin
if tbodt.state in[dsinsert] then
begin
tbodt.post;
tbodt.Insert;
odtedi.hide;
descripcion.add;
descripcion.DBEdit1.Text := odtedi.DBEdit1.text;
// application.createform(tdescripcion,descripcion);
descripcion.show;
end;
end
end;
sw:=0;
end;

y se guarda y borra todo el contenido de los dbedit’s y no guarda valor del dbedit que quiero que pase a la otra pantalla,

El valor que quiero conservar es el de odt nº que es el campo que viene al principio en ambas pantallas y es la clave principal de las dos tablas
http://www.clubdelphi.com/foros/images/misc/progress.gif

egostar
12-11-2007, 23:10:48
No entiendo mucho tu código, pero por lo que comentas, no creo que pase el dato a la tercera ventana ya que no veo ninguna variable que estes usando para conservar el valor, recuerda que cuando cierras las tablas todo dato que contenga se "pierde".

Yo lo que haría es usar una variable en la tercera ventana donde quede almacenado ese dato que requieres antes de cerrar las tablas.

Salud OS