** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Pasar nombre de procedimiento como argumento
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoPasar nombre de procedimiento como argumento

 Responder Responder
Autor
Mensaje
simbad Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 10/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 27
Enlace directo a este mensaje Tema: Pasar nombre de procedimiento como argumento
    Enviado: 14/Enero/2018 a las 22:08
Hola:
La linea de codigo (Call sfr.procedB) de un procedimiento sub en un modulo externo, llamado desde un formulario abierto, ejecuta codigo contenido en un subformulario. Y funciona.

Pero no lo consigo cuando intento pasar como argumento de un procedimiento A contenido en modulo externo, el nombre del procedimiento B(procedB), para que el primero ejecute al segundo.

ProcedB esta en un subformulario. Y procedA esta y ha de estar en un modulo externo. Entonces tengo:

'En el formulario un evento de boton
Sub eventoBoton_click ()
   Call procedA (subform, procedB)
End sub

'En modulo externo un procedimiento sub que ha de llamar 'al procedB del subformulario
Sub procedA (sfr as form, variable as ??????)
   Call sfr.variable 'donde variable ha de representar al
                      'procedB
End sub

'En el subformulario
Sub procedB
    Msgbox "hola"
End sub

¿Como puedo pasar el argumento a procedA para que se ejecute el procedB?

Gracias.

Editado por simbad - 14/Enero/2018 a las 22:36
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: Binghamton NY.
Estado: en línea
Puntos: 3431
Enlace directo a este mensaje Enviado: 15/Enero/2018 a las 02:07
Creo que esto puede orientarte

https://stackoverflow.com/questions/1118344/excel-vba-special-types-functions-as-arguments-of-functions

Un saludo.


Luis
El Búho es mi ídolo caido
Arriba
simbad Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 10/Mayo/2006
Localización: España
Estado: Sin conexión
Puntos: 27
Enlace directo a este mensaje Enviado: 19/Enero/2018 a las 23:38
Hola Ibauluz:

Gracias por responder con tanta celeridad.

He visitado el link y he estado probando. Pero nada de nada.

He probado  a usar un módulo estàndar con este código:

Sub aaa()
Call bbb("ccc")
End Sub

Sub bbb(str As String)
Application.Run str
End Sub

Sub ccc()
MsgBox "hola aaa"
End Sub

Y ha funcionado OK.

Pero cuando el código se encuentra en un módulo de clase no funciona.

Llamo desde un módulo estandar al procedimiento 'aaa' que está en el módulo de clase 'Cl1', pero cuando la ejecución llega a 'bbb' aparece mensaje de error diciendo que no encuentra a 'ccc'.

Sub subLlamarCl1()
Call Cl1.aaa
End Sub

He probado con Sub, con Private y con Public. Y nada de nada.
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: Binghamton NY.
Estado: en línea
Puntos: 3431
Enlace directo a este mensaje Enviado: 22/Enero/2018 a las 18:01
?Y este?

http://www.mvp-access.com/foro/devolver-nombre-del-procedimiento-que-da-error_topic83124.html?KW=

Luis
El Búho es mi ídolo caido
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable