Grid no muestra datos

Hola como esta... Tengo un thisformset que contiene dos formularios 1 y 2 en el 1ero mando hablar al 2° que contiene el Grid que me sirve como una consulta de una base de datos, pero en el primero utilizo un botón para borrar un registro que contiene un delete y después un pack cuando acceso el formulario no 2 este ya no me muestra los registros.. Podría indicarme como podría resolver que en el formulario 2 me aparezcan los datos.
Nota: si yo le quito en el botón el pack, la información en el grid me sigue apareciendo.
Gracias!

1 respuesta

Respuesta
1
El pack como ya sabes te elimina los registros que están marcados.
Cuando trabajas en red no puedes darle un pack una tabla que este siendo compartida por que te pide el modo exclusivo, ademas el proceso del pack es tardado y muy personalmente pienso que no es aconsejable utilizarlo mientras se esta usando una tabla.
¿Qué puedes hacer?
Puedes Agregar :
Set Deleted On
Lo que te hace esto es que no te muestra los registros que están marcados para eliminar y no los incluye a la hora de hacer cálculos o un select Sql (consulta) incluso no permite verlos, osea como que no existieran.
Este comando lo puedes incluir en el main de tu programa o el init de tu formulario o formset según sea tu caso en particular.
Ahora si realmente no quieres tener esos registros eliminados en tu tabla, puedes agregar un pack en el final de tu programa o en el evento destroy del formulario para que no se vea, recuerda que la tabla tiene que estar abierta en modo excluisvo...
Ah...! Otra cosa luego de borrar uno o varios registros no olvides refrescar el formulario o formset con la clausula Thisform. Refresh o Thisformset. Refresh según sea tu caso, lo que hace esto es actualizar los datos que tienes en el form contra los que tienes en tu tabla... incluyendo el grid.
Si no te quedo claro o esto no resolvió tu problema mi correo es [email protected]
Bye.
Lo que pasa es que tengo una tabla principal que no me permite en el campo que estoy borrando duplicación por eso uso el pack en tiempo de ejecucionn y no hasta el final, como crees que resolvería este caso... usando el pack y que se mi visualice el grid, cosa que no esta elaborando si ejecuto el pack me muestra el grid en blanco,
Gracias
Gracias
Cuando se ejecuta PACK, Fox copia los registros que no están marcados para borrar a una tabla temporal. Cuando se termine de ejecutar PACK, Fox eliminará la tabla original del disco y cambiará el nombre de la tabla temporal por el nombre de la tabla original.
En el proceso de eliminación de la tabla el grid pierde suu fuente de datos (Recordsource) entonces te lo muestra en blanco por que no hay ninguna tabla vinculada al grid, de manera pues que tienes que volver a indicarle al grid de donde esta sacando sus datos.
Osea:
Delete Next 1
Pack
Thisform.Grid1.RecordSource = "AliasdeTabla"
Te darás cuenta de otros problemitas que esto conlleva como por ejemplo el maquillaje de tu grid... pero eso es el precio de usar el pack.
Si no te quedo claro puedes escribirme a [email protected] por si quieres algunos archivos de ejemplo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas