VBA Access: Llamar a procedimiento en otro formulario

Las acciones de ciertos usuarios en la Base de Datos generan una sanción automática y esto se hace en forma automática cuando se alcanza el límite de 'errores' admitidos.

Mediante código abro un formulario con los datos de dicho usuario y automáticamente queda suspendido.
Ahora estoy generando un sistema donde se registran esto a través de lo que llamo 'tickets'. Esta suspensión debe generar dicho ticket. Como cada formulario generará un ticket con contenido diferente, entonces el formulario de edición del Usuario tiene el que generará el ticket al hacer este cambio por otros motivos. Lo que necesito es que, al suspender este usuario, automáticamente llame al código que genera ese ticket.
Ahí viene mi pregunta: ¿Cómo puedo hacer para que desde un formulario fuera del de Edición de Usuarios genere automáticamente un ticket mediante el código local del formulario de edición?
Lo he llamado 'GENERA_TICKET_EDI_STATUS'.

2 Respuestas

Respuesta
2

Además de lo que dice Jacinto, que es perfectamente válido, lo normal sería que el procedimiento o función, si lo vas a usar en distintos formularios, estuviese en un módulo independiente y no en un módulo de formulario.

Si lo haces así, es mucho más sencillo de llamar, por ejemplo, si fuera un procedimiento, con poner simplemente:

GeneraTickets   (o Call GeneraTickets)

En tu código ya estaría.

Sí, eso probé pero como hay demasiado contenido exlusivo en el formulario puntual entonces va personalizado. Pero creo que podré adaptarlo con variables o constantes en el formulario y la variable adopte el valor de esa constante, ¿se puede?. Ahora, ¿hay alguna forma de darle a una variable el valor del nombre del procedimiento o del formulario?
O sea, por ejemplo:

vForm = NOMBREDELFORMULARIO
vProc = NOMBREDELPROCEDIMINENTO

o bien

vOrigenError = NOMBREDELFORMULARIO & NOMBREDELPROCEDIMIENTO
¿Y usar eso en forma automática y no tener que cambiar el valor de la variable en cada caso?

Para asignar a una variable el nombre del formulario basta con poner:

vForm=Me.Name

Para el nombre del procedimiento no conozco forma de hacerlo "automático"

Respuesta
2

Sasha: El Procedimiento o Función a la que quieres acceder ha de ser Public no Private

Suponiendo que ese Procedimiento/ Función se llame GeneraTickets ( No se si el nombre que pones arriba es del Formulario o del Procedimiento) y el Formulario se llame FrmTickects has de Poner>>

Forms!FrmTickets.Form.GeneraTickets

Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas