** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Mover registro de Formulario desde Subformulario
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Mover registro de Formulario desde Subformulario

 Responder Responder
Autor
Mensaje
ibcaja Ver desplegable
Nuevo
Nuevo


Unido: 29/Julio/2019
Localización: España
Estado: Sin conexión
Puntos: 14
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita ibcaja Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Mover registro de Formulario desde Subformulario
    Enviado: 16/Octubre/2019 a las 17:45
Hola, me gustaría encontrar la mejor solución a este problema utilizando subformularios.

Tengo un Formulario principal sobre una tabla de Facturas en la que tengo entre otros campos Fecha y NumeroFactura. Un Subformulario en modo vista hoja de datos con un listado de facturas con la fecha seleccionada en el campo Fecha del formulario principal, por lo que formulario y subformulario están vinculados por el campo Fecha.
Al seleccionar en el subformulario una determinada factura pretendo que el formulario principal mueva el registro a esa determinada factura.
He pensado en utilizar el evento OnCurrent del subformulario, pero no sé si hay una alternativa mejor ya que al mover el registro principal, el subformulario vuelve al primer registro, entre otros problemas y no me acaba de convencer.

Saludos.

Editado por ibcaja - 16/Octubre/2019 a las 17:46
Arriba
VIMIPAS Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Enero/2006
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 5437
Opciones de entrada Opciones de entrada   Gracias (1) Gracias(1)   Cita VIMIPAS Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Octubre/2019 a las 22:15
Hola Ibcaja.

Normalmente los "sub" están contenidos en el "Formulario" y dependen de este "Formulario", todo lo que el "Formulario haga" así será entendido por el "sub".

Si pretendes lo contrario te va a dar muchos problemas. Access está pensado para las relaciones. Las relaciones van de la Fecha del formulario, según tu dices, a la fecha del subformulario.....

Analiza esto con detenimiento:

yo creo que deberían estar relacionadas por el número de factura, que es único en toda contabilidad y no por la fecha, ya que no es única y puede haber varias fechas iguales, teniendo misma fechas varias facturas.... ¿parece un sin sentido lo que pretendes?

¿Cómo lo ves tú, ya que Access lo suele ver como te he explicado?.

Saludos.
Gracias
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 13722
Opciones de entrada Opciones de entrada   Gracias (1) Gracias(1)   Cita xavi Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Octubre/2019 a las 22:33
Si te he entendido (y no estoy muy seguro de haberlo hecho al 100%) lo que estas haciendo con el sunformulario yo lo haria con un cuadro de lista.

En el evento Current del formulario principal crearia una SQL para obtener todos los registros de la fecha y, al hacer clic sobre un registro del cuadro de lista, posicionaria el formulario en el registro adecuado. Dado que (parece) la fecha es la misma y (tambien parece) quieres que el valor seleccionado en el cuadro de lista no se mueva, almacena previamente la posición ya que el evento Current al reposicionar el formulario recalcularia el cuadro de lista.

No se si me explicado....

Xavi, un minyó de Terrassa

Mi web
Arriba
ibcaja Ver desplegable
Nuevo
Nuevo


Unido: 29/Julio/2019
Localización: España
Estado: Sin conexión
Puntos: 14
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita ibcaja Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Octubre/2019 a las 17:13
Gracias por vuestra respuestas. Quizás no me expliqué del todo bien. El subformulario con todas las facturas de un dia es la parte mas importante de todo, aparecen varios campos relativos a cada una de las facturas, algunos calculados, como impuestos, y todo en modo vista hoja de calculo. Su fin no es solo el de seleccionar una determinada factura, eso es secundario.
Junto a ese formulario hay otros dos, uno con datos de totalizaciones de todas esas facturas: totales, cantidad de facturas y rango de numeración, impuestos totales.
El otro subformulario ofrece el detalle de cada una de las lineas de la factura seleccionada, y ese subformulario si está vinculado al principal mediante el número de factura. Ahí viene lo que busco, que con solo pinchar en la linea de determinada factura el formulario principal, basado en tabla cabecera de factura, cambie al registro de esa factura y arrastre al subformulario de detalle de la factura.
De esta manera, el usuario al inicio selecciona la fecha del dia que le interesa, ve las facturas de ese dia y tiene disponible un conjunto de datos tanto en conjunto como por cada una de las facturas. Si le interesa ver el detalle de alguna factura concreta, pinchando sobre la linea esa factura apareceria en el otro sub las lineas de detalle de la factura.

Ayer estuve por varias horas leyendo y experimentando con el evento OnCurrent (del subformulario) y creo que ha funcionado. La dificultad está en que no solo es ir al registro con un FindRecord. El evento Oncurrent se activa con el evento OnEnter y se desactiva con OnExit. Una vez dentro de OnCurrent primero hay que desactivar ambos eventos porque si no se volverian a ejecutar sin haber acabado el evento actual. Guardar posicion del registro de subformulario porque al volver te posiciona en el primer registro. Habilitar y enfocar el campo Numero de factura del formulario principal y hacer el FindRecord, luego hay que deshacer los pasos anteriores, volver a activar eventos, deshabilitar campo y recuperar registro de subform.

A esto le veo dos problemas menores. Uno lo que ya preguntaba ayer, no sé si hay una manera más fácil de hacer esto.
El otro es algo curioso; cuando selecciono fecha y aparecen la hoja con todas las facturas, está seleccionada la primera, incluso enfocado el Numero de factura, debido a un SetFocus; pero cuando pinchas con el raton en otra factura no ocurre nada, solo en un segundo click se selecciona, a partir de ahí si funciona cada click de manera normal. Es como si fuera necesario un primer click solo para activar el subformulario.
Esto no parece importante pero puede a inducir a errores al usuario, ya que cree estar trabajando con una determinada factura cuando en realidad está haciendolo sobre la primera.

Ha quedado un poco largo, pero espero haberme explicado.
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3391
Opciones de entrada Opciones de entrada   Gracias (1) Gracias(1)   Cita prga Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Octubre/2019 a las 19:47
Hola.
Una posible solución, sí he entendido bien,  pasaría por:
1º.- Crear un formulario contenedor sin origen de datos y dentro de él un cuadro combinado con las fechas que tienen factura. Sería una manera de elegir la fecha y que tenga facturas
2º.-Un subformulario con el formulario con todos los resúmenes de las facturas, evidentemente enlazados por el valor primario del cuadro combinado anterior y el campo fecha de las facturas.
3º.-Un subformulario con los resúmenes del día. También enlazado como el anterior.
4º.-Subformulario con los detalles de la factura pinchada en el punto 2º. Aquí hay que hacer:
A) Crear en el formulario contenedor (encabezado de ese formulario) un cuadro de texto cuyo origen de datos es el cuadro de texto numerofactura del subformulario del punto 3º ( lo puede hacer el asistente de expresiones)
B)Enlazar  el subformulario del punto 4º a ese cuadro de texto del punto A)

Con lo anterior se puede solucionar el problema sin código, sólo sería necesario para efectos estéticos iniciales, ya que el cuadro combinado de fechas no selecciona ningún elemento por defecto

Espero que no líe más el asunto.
Ya comentas.
Un saludo a todos
Arriba
ibcaja Ver desplegable
Nuevo
Nuevo


Unido: 29/Julio/2019
Localización: España
Estado: Sin conexión
Puntos: 14
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita ibcaja Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Octubre/2019 a las 20:48
Es una buena solución, te lo agradezco, pero la veo más para empezar desde cero. O, como dices, si no quieres/puedes usar código. Pero no es mi caso.
De mi manera ahorro un cuadro de texto y queda más intuitivo pinchar directamente sobre el numero de factura.

Ahora lo que ando es googleando sobre el tema del click en el subformulario y no veo nada con distinto tipo de búsquedas.

Saludos.
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3391
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita prga Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 17/Octubre/2019 a las 21:05
Es que hay que pinchar en el registro  y el cuadro de texto, para ir bien,  hay que dejarlo como visible=false
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable