PDA

Ver la Versión Completa : Error al pasar datos de un form a otro


jcfonsecar
12-07-2006, 01:08:40
Que tal, a ver si alguien me puede ayudar. Estoy haciendo una aplicacion de facturación. Al capturar una factura mando llamar al formulario de clientes, selecciono el cliente y trato de pasar los datos al primer formulario, hago lo mismo con el catalogo de artículos, y al hacer referencia a la tabla en donde quiero poner los datos me manda un error en tiempo de ejecucion que dice: "Access violation at ...." Espero alguien tenga algun tip para poder hacer este proceso.

De antemano gracias.

lucasarts_18
12-07-2006, 01:14:04
Hola:

Generalmente estos errores suceden cuando el objeto que se hace referencia no ha sido creado, intenta poner un poco del código de la operación que llevas a cabo. :)

Hasta Luego -

jcfonsecar
12-07-2006, 01:25:29
Tienes razón, para que se vea más claramente:


FactComp.IBTTemp.Edit;
FactComp.IBTTemp['Id_articulo']:=FDM.IBDSArt['Id_articulo'];
FactComp.IBTTemp['Descripcion']:=FDM.IBDSArt['Descripcion'];
FactComp.IBTTemp['UM']:=FDM.IBDSArt['UM'];


con este codigo trato de pasar los datos del catálogo de artículos la tabla de factura la cual se encuentra en el formulario FactComp.

Si no me explico por favar hazmelo saber

dec
12-07-2006, 02:05:11
Hola,

Pon unos cuantos puntos de ruptura en el código fuente y trata de averiguar la línea en que se procede el error que comentas. Del código que muestras poco se puede averiguar como no sea que el objeto "FDM" no esté creado cuando tratas de acceder al mismo... pero, insisto con los puntos de ruptura.

Desde luego, como te ha dicho ya el compañero, ese tipo de errores se produce al tratar de acceder a un objeto (a sus propiedades, métodos, etc.) sin que este esté disponible o luego de haber sido destruido.

jcfonsecar
12-07-2006, 02:13:17
Gracias por tomar un poco de tiempo en contestar mi pregunta, te comento que ya puse los puntos de ruptura, el error se produce excatamente en la linea:
FactComp.IBTTemp.Edit;

Tambien te comento que el objeto FDM es un modulo de datos, en donde tengo todos los componentes de mi base de datos. Ojala sea un poco mas claro para ustedes.

dec
12-07-2006, 02:19:02
Hola,

¿No hay ninguna línea justo antes de la que mencionas? Generalmente los errores se producen en realidad una línea antes de la que se "resalta" en el editor de código cuando se produce un error.

En todo caso... "FactComp.IBTTemp.Edit;" no sé qué es, pero, ¿está disponible "FactComp"? ¿Lo creas en tiempo de ejecución? Si es así (y aunque sea redundante), ¿seguro que está disponible el objeto de marras?

lucasarts_18
12-07-2006, 02:22:22
Hola:

Al parecer estás intentando ingresar un nuevo registro por lo tanto el método a usar es un insert y no un edit, salvo que la tabla está vacía ya que es ese caso llama automaticamente al método insert, por lo tanto tú código debe ser algo así:




Table1.Insert;
Table1.FieldByName('QUANTITY').AsInteger := StrToInt(Edit1.Text);
Table1.Post;






Hasta Luego -