** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Error declaración variable pública en VBA
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoError declaración variable pública en VBA

 Responder Responder
Autor
Mensaje
majete Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 31/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 684
Enlace directo a este mensaje Tema: Error declaración variable pública en VBA
    Enviado: 29/Octubre/2019 a las 09:57
Buenos días,
Algo estoy haciendo mal en el uso de Módulos en VBA y declaración de variables públicas que me ha dejado de funcionar y me salta el mensaje de error: "Se ha detectado un nombre ambiguo". El error me lo marca en una línea en la que mediante un condicional pregunto por el valor de una variable que previamente he definido como pública en un módulo.

Os pongo en situación... tengo 1 módulo desde el cuál lanzo impresiones de informes para posteriormente exportarlas a PDF para generar un documento. En ese módulo que llamo "ModuloImpresion" declaro una variable booleana como pública "MiFlag" al inicio (antes de la función). Con esa variable luego en el código VBA de los reports (son unos cuantos), hago un chequeo para paginarlos de una forma u otra tal y como necesito. Bueno, todo funcionaba bien hasta que he creado otro módulo que necesito que haga otras cosas, pero que siga utilizando la variable "MiFlag". Ahora me da el error "Se ha detectado un nombre ambiguo" en cuanto llega al primer informe donde se encuentra con una instrucción tal que así:

 If MiFlag = True Then...

Las impresiones las lanzo desde una Macro con "Ejecutar Código", donde pongo el nombre de la función del módulo, en este caso:

Módulo1 -> Función: ImpresionEspañol()

He probado a meter las dos funciones dentro de un único módulo, tal que así:

Option Compare Database

Public MiFlag As Boolean

Function ImpresionEspañol()
...
End

Function ImpresionIngles()
...
End

y lo que obtengo es el siguiente error: "La expresión contiene un nombre ambiguo. Compruebe que cada nombre de la expresión se refiera a un objeto único".

¿Qué estoy haciendo mal?

Saludos y muchas gracias,
Juan Carlos


Editado por majete - 29/Octubre/2019 a las 09:57
Arriba
JuanW Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 12/Mayo/2005
Localización: España
Estado: Sin conexión
Puntos: 267
Enlace directo a este mensaje Enviado: 29/Octubre/2019 a las 10:04
A mi me pasó algo parecido con un nombre de variable que era igual al nombre de un campo.

Mira a ver que no sea eso.

Saludos
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14428
Enlace directo a este mensaje Enviado: 29/Octubre/2019 a las 10:23
¿Tienes dos veces declarada la variable MiFlag?
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
majete Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 31/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 684
Enlace directo a este mensaje Enviado: 29/Octubre/2019 a las 10:31
Ya sólo una... antes la tenía en los 2 módulos... eso es lo que me pierde, que al unirlos en un único módulo tengo:

Declaración variable global
Declaración función1
Declaración función2

Sigo buscando...
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14428
Enlace directo a este mensaje Enviado: 29/Octubre/2019 a las 10:39
¿Cuál te dice que está duplicada?
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
majete Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 31/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 684
Enlace directo a este mensaje Enviado: 29/Octubre/2019 a las 11:55
Vale... chorrada monumental... como tengo una organización de los objetos de la BD personalizada, me acabo de dar cuenta que no había eliminado el módulo tras unir los dos en uno sólo... sólo la había quitado del grupo de donde la tenía... eliminada del todo, ya funciona...

Mil perdones por la metida de pata! Cerramos tema.
Gracias por la ayuda a todos.
Saludos,
Juan Carlos


Editado por majete - 29/Octubre/2019 a las 11:55
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable