Como ejecutar antes de actualizar desde otro formulario en access

Tengo una duda como puedo ejecutar lo que tengo en una cuadro combinado en el evento

txtCampo_BeforeUpdate

pero desde otro formulario logro hacer lo que es 

txtCampo_AfterUpdate

de la siguiente forma

Forms!frm_from1!frm_from2!txtCampo.Requery

Y actualiza lo que esta en el evento txtCampo_AfterUpdate

Quiero hacerlo de la misma forma pero con el evento txtCampo_BeforeUpdate

1 respuesta

Respuesta
2

Lo primero que tienes que hacer es cambiar el ámbito de actuación del evento, de Private a Public, es decir, donde tienes Private Sub txtCampo_BeforeUpdate(Cancel As Integer) poner Public Sub txtCampo_BeforeUpdate(Cancel As Integer). 

Lo segundo, en el otro formulario lo llamas así:

Forms!frm_from1!frm_from2! TxtCampo_BeforeUpdate False

Por último, entiendo que el control txtCampo está en un subformulario del formulario donde pones el código. Si no fuera así, el formulario que contiene a txtCampo tiene que estar abierto.

Y yo te recomendaría seguir el mismo sistema para llamar al evento "Después de actualizar" y no hacer el requery.

Un saludo.


Forms!frm_from1!frm_from2! TxtCampo_BeforeUpdate False

me manda un erro no encuentra el  campo txtcampo desde el from que quiereo ejecutar lo que esta dentro de 

TxtCampo_BeforeUpdate

Si con

Forms!frm_from1!frm_from2!txtCampo.Requery

no te da ningún problema,

Forms!frm_from1!frm_from2!txtCampo_BeforeUpdate False

Tampoco tendría que dártelo, porque haces referencia al mismo control.

¿Leíste lo que te puse de que el formulario que tiene el control txtCampo tiene que estar abierto? Si ese formulario está cerrado, te dirá que no encuentra el control.

este ejemplo: http://www.filebig.net/files/eDb6Jds3ZC 

Si abres Formulario1 y pulsas los botones, te dirá que no encuentra txtCampo.

Pero si abres Formulario2 y pulsas los botones de Formulario1, ejecutará los códigos de los enventos "Antes de actualizar" y "Después de actualizar" de txtCampo.

Gracias amigo y efectivamente tengo abierto el from donde se va ejecutar

BeforeUpdate

Probé tu ejemplo y sinfunciona para el Formulario2

Forms("Formulario2").txtCampo_BeforeUpdate False

Pero resulta que el campo que quiere ejecutar BeforeUpdate esta dentro de un formualio que tiene un subformulario y es continuo me marca el erro como si no lo tuviera abierto y si esta que no ecuntra el campo.txtCampo

 Forms!Formulario2!SubformularioContactos!.txtCampo_BeforeUpdate.False

E intentado de esa forma y nada me marca ese error

Pues funcionar funciona exactamente igual, solo has de poner la sintaxis correcta para referirte al control del subformulario, y esa que pones, no lo es, porque como poco, le falta un Form después del nombre del subformulario y le sobra una admiración antes del txtCampo...

 Forms!Formulario2!SubformularioContactos.Form.txtCampo_BeforeUpdate.False

http://www.filebig.net/files/cXQRs54zDj 

te agradezco nuevamente funciono muy bien

saludos...

No hay de qué, pero además del agradecimiento, valorar las respuestas es lo mínimo que se espera al responder en este foro...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas