Llamar a un modulo según variable

Estoy montando una base de datos para calibraciones de equipos de un laboratorio

Tengo varios equipos agrupados por Tipo (001, 002, 003, etc.)

Cada Tipo tiene una calibración diferente así que se han creado una serie de Formularios que me abren la ficha de calibración de cada tipo de equipo con los datos que necesito para ello (frm001, frm002, frm003, etc)

Como cada formulario requiere cargar una serie de datos diferentes, mi idea es crear un modulo "NuevoRegCal" al que llamar cuando abra el formulario y que tenga definido lo que necesito en función del Tipo de equipo seleccionado en diferentes Subs (001, 002, 003, etc) que me cargan los datos de cada equipo en concreto.

Algo así:

    Private Sub Selector_AfterUpdate()

       Dim vSelector As String
       Dim vTipoIns As String
       Dim vNomForm As String

       vSelector = Nz(Me.Selector, "")

       If vSelector = "" Then Exit Sub

       vTipoIns = DLookup("TipoIns", "Equipos", "CodIns = '" & vSelector & "'") 'Busca el tipo de instrumento que corresponde al seleccionado.
       vNomForm = "frm" & vTipoIns

       DoCmd.OpenForm vNomForm

       Call NuevoRegCal.vTipoIns (vSelector)  'Esto se puede hacer de alguna forma?

    End Sub

Ni siquiera se si esto es posible hacerlo, o tendría que crear un condicional para los 40 Tipos de equipo que tengo.

2 respuestas

Respuesta
2

En principio sí puedes hacer (con o sin Call):

NombreModulo.NombreFuncion(argumentos)     '

O

NombreModulo. NombreProcedimiento(argumentos)

Incluso

NombreModulo. NombreVariable

Siempre que en el módulo las funciones(Function), procedimientos (Sub) y variables sean públicas (Public Sub/Function/NombreVariable...)

Lo que no me queda claro es lo que pretendes conseguir con esto. Si pudieras concretar algo más, con uno o dos ejemplos y quizás alguna imagen, intento ampliarte mi respuesta.

Llevo un rato releyendo tu consulta y tal como lo planteas, no lo puedes hacer, es decir, no le puedes pasar como variable el nombre de un procedimiento/función a continuación del nombre del módulo. Es decir, no puedes hacer lo de: Call NuevoRegCal. VTipoIns

Respuesta
1

Tengo una duda el porque se deben crear 40 formularios. ¿Es qué la estructura es diferente para cada equipo?. Si no tiene información confidencial me puede enviar su base datos a [email protected] así puedo mirar más en detalle si es mejor crear un módulo de clase o instanciar un solo formulario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas