Access - Llamar función de formulario

 
Vista:
sin imagen de perfil

Llamar función de formulario

Publicado por Carmen (3 intervenciones) el 08/02/2014 22:53:31
Buenas noches,

Tengo un formulario principal llamado EXPEDIENTES. Desde éste, abro el formulario NUEVO_EXPEDIENTE al hacer click en un botón. En el formulario NUEVO_EXPEDIENTE tengo un botón aceptar. Al pulsar el botón aceptar, inserto el nuevo expediente en una tabla, refresco el formulario EXPEDIENTES para que aparezca el recién insertado y cierro el formulario NUEVO_EXPEDIENTE. Al cerrar, necesito llamar a una función que se encuentra dentro del principal EXPEDIENTES. No puedo sacarla a un módulo y hacerla pública porque hace una consulta tomando muchos datos del principal. El caso es que, ejecuto la siguiente función:

Call Form_EXPEDIENTES.buscar_expediente_click

Al ejecutar la instrucción, Access muestra un error.

Agradezco vuestra ayuda,
Carmen.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Llamar función de formulario

Publicado por Norberto (753 intervenciones) el 10/02/2014 12:14:58
Hola.

Para llamar a un procedimiento o función definidos dentro de un formulario, en primer lugar, éste debe de estar abierto y, en segundo lugar, aquél o aquella deben de ser públicos.

Cambia la definición Private Sub buscar_espediente_Clic() por Public.

En cuanto a externalizar un procedimiento que usa abundante información de un formulario, no es gran problema: se pasa el propio formulario como parámetro al procedimiento.

En un módulo:
1
2
3
4
5
Public Sub HacerCosas(Frm as Form)
...
...
...
End Sub

En el formulario:
1
2
3
Private Sub buscar_expediente_Clic()
    HacerCosas(Me)
End Sub

Todo lo que se referencia dentro del formulario como Me. se hace con Frm. dentro del procedimiento.


Un saludo,

Nor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar