Imprimir página | Cerrar ventana

Error declaración variable pública en VBA

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84780
Fecha de impresión: 27/Marzo/2026 a las 00:23


Tema: Error declaración variable pública en VBA
Publicado por: majete
Asunto: Error declaración variable pública en VBA
Fecha de publicación: 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



Respuestas:
Publicado por: JuanW
Fecha de publicación: 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


Publicado por: Mihura
Fecha de publicación: 29/Octubre/2019 a las 10:23
¿Tienes dos veces declarada la variable MiFlag?

-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: majete
Fecha de publicación: 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...


Publicado por: Mihura
Fecha de publicación: 29/Octubre/2019 a las 10:39
¿Cuál te dice que está duplicada?

-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: majete
Fecha de publicación: 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



Imprimir página | Cerrar ventana