Pasa Programación, apuntes y soluciones con Access
Página principal Mis apuntes de Access Mis utilidades Mis ejemplos Mis agradecimientos Enlaces a otras Webs

Fallos en Access

  1. Índice.
  2. Usar palabras reservadas.
  3. Usar caracteres especiales.
  4. Módulo y función con el mismo nombre.
  5. Bucles recursivos.
  6. Dejar objetos abiertos.
  7. Bibliografía.

Módulo y función con el mismo nombre

Aunque es algo que Access permite y que no está considerado un error, no se recomienda el nombrar a una función de la misma forma que al módulo que la contiene, ya que podemos tener problemas a la hora de usarla.

A ver si me explico un poco mejor: cuando creamos una función pública en un módulo, podemos usar esta función directamente, sin necesidad de indicar en qué módulo está creada. Aunque también podemos usar la sintaxis NombreDelMódulo.NombreDeLaFunción para indicar la función que queremos usar. Asimismo, si sabemos que tenemos varias funciones con el mismo nombre en distintos módulos o librerías, debemos indicar a qué módulo o librería pertenece la función que queremos usar. Esto es más claro de ver con las librerías DAO y ADO. En las 2 librerías tenemos el objeto Recordset, pero cada uno trabaja de distinta forma. en estos casos, debemos indicar a qué librería pertenece el objeto Recordset que queremos usar.

Pero sigamos con el caso de los mismos nombres: cuando la función se llama igual que el módulo, debemos usar siempre la forma NombreDelMódulo.NombreDeLaFunción, o Access se quejará porque no encuentra la función. ¿Y por qué no la encuentra? Porque cuando ve un nombre simple o compuesto, primero comprueba si se trata del nombre de una librería o módulo. Si el nombre no corresponde a una librería o módulo, busca en las funciones públicas, para saber a qué función pública corresponde ese nombre. Pero como el módulo se llama igual que la función, Access piensa que estamos indicando el nombre del módulo, no de la función, y se quejará si no indicamos el nombre de una función que haya creada en ese módulo.

Me parece que esto me ha quedado un poco embrollado, pero es más fácil de lo que parece: en el ejemplo que se puede descargar desde la página principal de estos apuntes, hay un módulo con una función, y los dos se llaman de la misma forma. Y en el formulario principal de la base de datos hay dos botones, que intentan llamar a esa función; uno de la forma incorrecta y otro de la forma correcta. Si intentas usar el botón que usa la forma incorrecta, obtendrás un bonito mensaje de error, mientras que el otro botón ejecuta la función de forma correcta y sin problemas.

Por último, indicar que en la ayuda de Access, en el tema "Compatibilidad del alcance y nombre de los objetos", podemos ver lo indicado en esta página y otras cosas más que nos pueden ser de utilidad, como que no debemos llamar a dos cosas distintas de la misma forma, ni que debemos usar nombres similares para distintas cosas.

2008 Patxi Sanz
Libro de visitas
Hosted by www.Geocities.ws

1