¿Cómo trabajar con subformularios?

Tengo un formulario(Multa) y un subformulario(Infracciones). Supongamos que una multa tiene varias infracciones. Yo quiero poder agregar infracciones al subformulario a través de un botón agregar. Que me vayan apareciendo en el subformulario pero que no se guarden en la tabla. ¿Por qué? Porque la idea seria guardar esos registros única y exclusivamente cuando se presione el botón guardar del formulario(Multa). ¿Qué me sugiere?

1 respuesta

Respuesta
1
Lamento comentarte que el comportamiento predeterminado de Access es guardar registro desde el momento en que abandonas (por el motivo que sea) ese registro. Y, hasta donde yo sé, eso no se puede cambiar. Es decir, cada vez que creas una línea nueva en el subformulario Access te está guardando el registro anterior.
Imagino que estás viendo el subformulario en vista Hoja de Datos, si no has tocado el diseño predeterminado que te gestiona Access. Una posible solución sería cambiar la vista del subformulario a formularios continuos y añadir un botón de eliminación de registro (te saldrán los registros en fila, uno debajo de otro, cada uno con un botón). Así, antes de cerrar el formulario principal o añadir un nuevo registro (en el form principal) podrás eliminar todos aquellos del subformulario que, finalmente, no desees.
Si te parece bien la solución pero no sabes cómo desarrollarla me lo comentas y te explico cómo se hace.
Respecto a no guardar registros no hay solución (que yo conozca): Access es así, en este aspecto.
Ya me dirás.
Buenos días, gracias por su ayuda.
Tengo un formulario(Multa) y un subformulario(Infracciones). Supongamos que una multa tiene varias infracciones. Yo quiero poder agregar infracciones al subformulario a través de un botón agregar. Que me vayan apareciendo en el subformulario pero que no se guarden en la tabla. ¿Por qué? Porque la idea seria guardar esos registros única y exclusivamente cuando se presione el botón guardar del formulario(Multa). ¿Qué me sugiere?
Muchas gracias, de verdad que me ha causado muchos problemas la forma de trabajar de access, ya que estoy acostumbrado a trabajar con visual de forma independiente. Supongamos que ya no importa que guarde al momento, porque como me dices, Access trabaja así. ¿Cómo manejas la relación de uno a varios en access? ¿Con subformularios? Me gustaría que me expliques un poco sobre esto. Para así ver más claro como se manejan las cosas en acccess.
El manejo de la relación de uno a varios depende un poco del sistema de introducción de datos que se vaya a utilizar. Me explico (lo comento un poco en abstracto, pero creo que cogerás la idea):
Por ejemplo, imagínate un programa de facturación, lo que implica que existe un número de factura (UNO) con unas líneas de factura (VARIOS). Es decir:
.- Factura: 24
.- Líneas de factura 24:
.--Producto 1
.--Producto 2
.--Producto 3
OK. Cuando creas esa factura 24 necesitas crear las líneas de factura en ese momento concreto. Es decir, que necesitas crear el UNO y, acto seguido necesitas crear sus líneas (VARIOS) (hablo de un proceso "normal", lógicamente).
La mejor manera de gestionar lo anterior es a través de formulario (datos de la factura) y subformulario (líneas de la factura).
---
El siguiente caso se produce cuando NO necesitas esa simultaneidad en la entrada de datos. Por ejemplo, una BD donde tenemos a un trabajador (UNO) y un control de absentismo (VARIOS).
En este caso lo mejor es crear dos formularios, uno para cada tabla. Así, cuando el trabajador empieza a trabajar en la empresa lo damos de alta y le asignamos un identificador (por ejemplo, trabajador 44). No necesitamos la tabla absentismo en ese momento (y evidentemente es imposible saber, en ese momento, cuándo se pondrá enfermo o cuando no acudirá al trabajo).
Luego llega el día que ese trabajador no aparece en su trabajo. Ahí sí que necesitaremos el formulario Absentismo, donde tendremos un identificador del registro (VARIOS), un identificador del trabajador (que será el UNO) y las fechas de ausencia y motivo.
En este caso, como ya te comentaba, lo más práctico es trabajar con dos formularios, sin subformulario alguno.
---
Conclusión: hay que examinar cada caso. E incluso el criterio de simultaneidad o no de entrada de datos que te he puesto, aunque, en mi caso, suele ser mi sistemática de trabajo "normal", ello no quiere decir que, según el supuesto, se pueda aplicar una solución u otra.
Por ejemplo, una consulta de un médico, donde, por los motivos que sean, interesa ver el historial de visitas de un paciente. Podríamos crear el formulario donde se den de alta los datos del paciente (UNO) y después, cuando el paciente requiera una visita, damos de alta en otro formulario la visita y motivo (VARIOS). Eso sería según el criterio de simultaneidad. Pero como queremos ver el historial de visitas al darle una nueva fecha de visita lo ideal sería utilizar el sistema de formulario-subformulario (abriendo el principal filtrando por paciente). Así conseguiríamos nuestro propósito al poder ver todas las visitas realizadas a través del subformulario (si está en vista hoja de datos o formularios continuos, claro).
Bueno. Espero que mi explicación "sacada de la chistera" (je, je...) te haya sido de utilidad.
No sé qué conocimientos tendrás de Access, pero, si tienes algún "momento de ocio", te invito a echar un vistazo a mi web. Verás que hay unos apartados de "teoría sobre diferentes elementos de Access" (si se puede con ejemplos y trucos) y quizá puedas "pillar" alguna cosa que te interese (lo de las relaciones se explica en el artículo sobre las tablas, aunque tiene un enfoque diferente a lo que me estás pidiendo aquí). La dirección la podrás encontrar en la firma de este o el anterior mensaje.
Para lo que necesites, encantado a tu disposición.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas