Access - Como usar una funcion de otro formulario?

 
Vista:

Como usar una funcion de otro formulario?

Publicado por Betty (10 intervenciones) el 10/06/2008 14:37:11
Hola,

tengo una funcion que toma un formulario como parametro y en funcion de un combo de ese formulario pueden suceder dos cosas: 1.llamar a un procedimiento de un formulario (siempre el mismo) o 2.llamar a un procedimiento del formulario que se paso como parametro.

Cuando utilizo literalmente el nombre del formulario para llamar al procedimiento no hay problema. La dificultad la encuentro cuando quiero utilizar el nombre del formulario que tengo como parametro utilizando su propiedad name.

El codigo:

Sub mi_funcion(f As form)
...

If (f.cbo_modeFonctionnement.ListCount = 1) Then
Forms(f.Name).mi_combo_Change
Else
Forms("mi_formulario").mi_combo_Change
End If

...
End Sub

El error ocurre solamente para la primera rama del if y es un error 2465 (el mensaje del error dice "error definido por la aplicacion o el objeto")

Creo que es un problema de notacion pero ya he probado con comillas y sin ellas (simples y dobles) y también entre corchetes y no se me ocurre otra cosa.

Gracias a quien me pueda aportar alguna cosa, porque me estoy bloqueada hoy en el trabajo...
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

RE:Como usar una funcion de otro formulario?

Publicado por pacopaz (50 intervenciones) el 10/06/2008 18:35:02
Trata de visualizar lo que pasa como f.Name. Se incurre en el error, por que el objeto nombrado no existe o no se encuentra, así que es probable que no exista lo que pasa en f.Name, o quizás no existe el método.
Si no es eso, también estoy perdido :P

Saludos.
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

RE:Como usar una funcion de otro formulario?

Publicado por mi menda (1111 intervenciones) el 10/06/2008 20:21:01
Hola Betty:

Creo que el error esta al llamar a la función, al llamar a la función pasa como argumento Me

MiFuncion(Me)
O
MiFuncion(Forms!NombreFormulario)

Un Saludo
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

RE:Como usar una funcion de otro formulario?

Publicado por Betty (10 intervenciones) el 11/06/2008 09:10:50
Hola tu menda :-)

En mi funcion no puedo pasar ni "Me" ni un "nombre de formulario" porque no sé qué formulario debo utilizar. En cada caso sera distinto ya que el que se utiliza es el que me llega como parametro al llamar al procedimiento.

El problema es como tengo que utilizar ese parametro para llamar a mi funcion.

Gracias, un saludo!
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

RE:Como usar una funcion de otro formulario?

Publicado por Betty (10 intervenciones) el 11/06/2008 09:25:36
Hola,

He seguido la ejecucion con F8 y el problema no era al llamar a la funcion. El valor de f.Name era correcto y la funcion lo cogia bien.

El error saltaba porque dentro de mi funcion estaba utilizando controles del formulario f y me habia olvidado de usar la notacion f.nombreControl. Si bien el nombre del control siempre es el mismo el formulario va cambiando en cada caso... Me tenia que haber dado cuenta antes! (ay, ay ay... )

Muchas gracias a los dos otra vez y que tengais buen dia!
:-)
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