Duda subformularios (¿Avanzar recordset?)

Versión 2003). Tengo un formulario con un subformulario relacionado por un campo. Al final del formulario principal hay un campo que suma un campo de dicho formulario principal con otro campo del subformulario. Hasta ahí, bien.
El problema es que para que me sume todo necesito activar de alguna manera el subformulario (es decir, que salte el recordset) activando algún campo de dicho subformulario de alguna manera (aunque sea escribiendo una letra): en dicho caso, la suma se realiza.
¿Cómo puedo hacer para no tener que andar activando "manualmente" un campo del subformulario para que me sume todo al final?

2 respuestas

Respuesta
2
Puedes hacerlo en el evento al cambiar de registro.
En modo edición del formulario pulsa Alt + F11
y en el editor de Vba pega el siguiente código cambiando los parámetros que necesites
Subformulario: El nombre de tu subformulario
TuCampoDelSubFormulario: El nombre de un campo del subformulario
MiCampoFormularioPrincipal: el nombre de un campo del formulario Principal.
Private Sub Form_Current()
Me.Form![Subformulario].Form![TuCampoDelSubFormulario].SetFocus
Me.MiCampoFormularioPrincipal.SetFocus
End Sub
Buenos días,
Ante todo, muchas gracias por tu premura y por tu propuesta. No obstante, no me funciona (ya había probado algo parecido). El caso es que aunque le de primero el enfoque a un campo del subformulario, si no escribo nada en el campo no me salta la suma. Es decir, cuando añado un registro nuevo (formulario) y lo cumplimento, aunque cliquee con el ratón en un campo del formulario (recibe enfoque) hasta que no escribo algo (un espacio, una letra...) no me salta el recordset.
El problema, como te decía, es que hay un campo numérico en el formulario principal (ahí no está el problema) y otro campo numérico en el subformulario. Ambos campos tienen valor por defecto de 0, de tal forma que si yo, por ejemplo, quiero poner en el campo "importe" del formulario una cifra-por ejemplo, 30- y no cumplimentar el subformulario, el campo importe del subformulario debería de tener el 0 por defecto y sumarme al final:
30 del formulario + 0 del subformulario (sin ni siquiera abrirlo) = 30
Ahí tengo el problema, por si te puede servir de más ayuda. Formulario y subformulario dependen de tablas distintas que están vinvuladas por un campo en relación uno (formulario) a varios (subformulario).
¡Gracias de antemano y un saludo!
No es lo más correcto pero puedes añadir las siguientes la lineas.
Auxiliar = Me.Form![Subformulario].Form![TuCampoDelSubFormulario].Value
Me.Form![Subformulario].Form![TuCampoDelSubFormulario].Value  = Auxiliar
Me. MiCampoFormularioPrincipal. SetFocus
Gracias nuevamente por tu respuesta.
El caso es que sigue sin irme y me da error. El código que introduzco es para después de actualizar el "campo numero_socio" (formulario principal) a fin de que active el campo "parentesco" del subformulario. Me da error. El código que meto es este:
Private Sub numero_socio_AfterUpdate()
auxiliar = Me.Form![Familiares].Form![parentesco].Value
Me.Form!Familiares.Form![parentesco].Value = auxiliar
Me.numero_socio.SetFocus
End Sub
Gracias de nuevo. La verdad es que me está dando la lata esta tontería :)
Mandame la Bd comprimida a mi correo: [email protected] y la miro directamente, haber si se nos esta pasando algo.
Ya te la he enviado de vuelta. Ya me comentas
La verdad es que además de rápido contestando se ha tomado muchas molestias conmigo. Con expertos así, da gusto recibir ayuda. Totalmente aconsejable.
Respuesta
1
La técnica que utilizo yo suele ser la siguiente: Utilizo un campo calculado para realizar los cálculos en el formulario principal y otro campo calculado para realizar por separado los cálculos del subformulario para luego así poder sumar el contenido del campo calculado del subformulario con la del formulario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas