Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Número de KB original: 310803
Resumen
En este artículo se describen los problemas relacionados con el uso de referencias en una base de datos de Access.
Comprender los errores de referencia requiere comprender cómo se hace referencia a las bibliotecas en una base de datos de Access y de lo que se necesita para instalar una base de datos en un equipo de destino sin interrumpir estas referencias. Este artículo es un resumen de los temas siguientes:
- Visualización de referencias de base de datos de Access
- Resolución de referencias de Microsoft Visual Basic para Aplicaciones en Access
- Descripción de los mensajes de error de referencia
- Resolución de problemas de referencia en el equipo de desarrollo
- Distribución de archivos de base de datos
- Actualización de la lista de referencias
- Distribución de archivos de base de datos que tienen controles ActiveX
- Volver a registrar un archivo
Visualización de referencias de base de datos de Access
Para ver las referencias de base de datos actuales:
- Abra la base de datos.
- Presione ALT+F11 para iniciar el Editor de Visual Basic.
- En el menú Herramientas , haga clic en Referencias.
Resolución de referencias de Visual Basic en Access
Access carga el archivo pertinente (por ejemplo, una biblioteca de tipos, una biblioteca de objetos o una biblioteca de controles) para cada referencia, según la información que se muestra en el cuadro Referencias. Si Access no encuentra el archivo, Access ejecuta los procedimientos siguientes para localizar el archivo:
- El acceso comprueba si el archivo al que se hace referencia está cargado actualmente en memoria.
- Si el archivo no se carga en la memoria, Access intenta comprobar que existe la clave del
RefLibPathsRegistro. Si la clave existe, Access busca un valor con nombre que tenga el mismo nombre que la referencia. Si hay una coincidencia, Access carga la referencia desde la ruta especificada por el valor con nombre. - A continuación, Access busca el archivo al que se hace referencia en las siguientes ubicaciones, en este orden:
- Carpeta de aplicaciones (la ubicación del archivo Msaccess.exe).
- La carpeta actual que ve si hace clic en Abrir en el menú Archivo.
- Carpeta Windows o Winnt donde se ejecutan los archivos del sistema operativo.
- La carpeta System dentro de la carpeta Windows o Winnt.
- Las carpetas de la variable de entorno PATH a las que el sistema operativo puede acceder directamente.
- Si Access no encuentra el archivo, se produce un error de referencia.
Descripción de los mensajes de error de referencia
Hay varios mensajes de error relacionados con un archivo que falta o con un archivo que tiene una versión diferente de la versión que se usa en la base de datos. En la mayoría de los casos, puede buscar en Microsoft Knowledge Base un artículo sobre el mensaje de error específico y, a continuación, resolver el error siguiendo los pasos del artículo. En algunos casos, un archivo de dependencia no coincide correctamente con el archivo principal.
En la lista siguiente se describen algunos de los mensajes de error de referencia que puede recibir. Sin embargo, tenga en cuenta que la lista no incluye todos los posibles mensajes de error de referencia.
Método MethodName del Objeto ObjectName Fallido
Normalmente, puede recibir este mensaje de error si hay un problema con una biblioteca de tipos de programación, por ejemplo, un archivo de biblioteca de vínculos dinámicos (DLL) de objeto de acceso a datos (DAO) no válido. Puede buscar en Microsoft Knowledge Base artículos que describen las distintas formas de este mensaje de error.
"Function is not available in Usage expression" (La función no está disponible en la expresión usage)
Puede recibir este mensaje de error si hay un problema con una biblioteca de tipos de programación, o si el código no llama específicamente a la biblioteca correcta y el archivo aparece en una prioridad inferior en la lista de referencias que un archivo que contiene el mismo nombre de función, por ejemplo, si se usa código DAO con la biblioteca de objetos de datos ActiveX (ADO) que aparece en una prioridad más alta que la biblioteca DAO. También puede recibir este mensaje de error si un formulario o informe contiene un control ActiveX.
"No se encuentra el proyecto ni la biblioteca"
Puede recibir este mensaje de error si Access no puede encontrar un archivo en la lista de referencias. A menudo, el archivo se marca como desaparecido en el cuadro de diálogo de Referencias. A veces, el archivo existe en el equipo de desarrollo, pero no en el equipo de destino.
"Variable no definida" o "Tipo definido por el usuario no definido"
Puede recibir uno de estos mensajes de error si usa el Asistente para seguridad de User-Level para proteger una base de datos que haga referencia a bibliotecas distintas de las bibliotecas que se incluyen de forma predeterminada. Por ejemplo, las referencias a bibliotecas que existían en la base de datos no segura no se crean automáticamente en la nueva base de datos protegida.
"Error en tiempo de ejecución 5", "Llamada o argumento de procedimiento no válido", "La biblioteca a la que el proyecto actual no hace referencia a este símbolo" o "El proyecto actual no hace referencia a la biblioteca que contiene este símbolo, por lo que el símbolo no está definido".
Puede recibir uno de estos mensajes de error si hay una referencia a una base de datos, una biblioteca de tipos o una biblioteca de objetos marcada comoMissing.
"El componente ActiveX no puede crear el objeto"
Este mensaje de error no significa necesariamente que un control ActiveX esté implicado. Por ejemplo, una posible causa es que DAO, que es un componente ActiveX, no puede crear un objeto porque daO Automation Server no se puede iniciar. Con frecuencia, la causa es que los archivos DLL que proporcionan funcionalidad a la que se hace referencia para el programa no están registrados o se registran incorrectamente.
Resolución de problemas de referencia en el equipo de desarrollo
La creación de una base de datos nueva en blanco y, a continuación, la importación de objetos desde otro archivo de base de datos puede crear problemas de referencia si el código o los controles ActiveX se basan en referencias que no se incluyen en una base de datos de forma predeterminada. Las referencias predeterminadas para una base de datos de Access 2000 son:
- Visual Basic para Aplicaciones
- Biblioteca de objetos de Microsoft Access 9.0
- Automatización OLE
- Biblioteca Microsoft ActiveX Data Objects (ADO) 2.1
Si el origen es otra base de datos de Access 2000, compruebe que las referencias coinciden. Si el origen está en una versión anterior de Access, DAO 3.5 o versiones anteriores probablemente esté en uso; Sin embargo, Access 2000 no proporciona DAO 3.5 de forma predeterminada. Intente quitar la referencia a la biblioteca de ADO 2.1 (si existe) y agregue la referencia a la biblioteca de objetos DAO 3.6.
Si ha convertido la base de datos de una versión anterior de Access y la base de datos contiene una referencia al archivo Utility.mda, en la mayoría de los casos puede quitar esta referencia porque las funciones a las que llama esta referencia se incluyen en las referencias predeterminadas de Access 2000. Si hay referencias a versiones anteriores de DAO, también puede quitar estas referencias porque DAO 3.6 puede abordar estas funciones.
Para agregar una referencia a una biblioteca:
- Abra la base de datos.
- Presione ALT+F11 para iniciar el Editor de Visual Basic.
- En el menú Herramientas , haga clic en Referencias.
- En Referencias disponibles, haga clic para activar la casilla situada junto al nombre de la biblioteca y, a continuación, haga clic en Aceptar.
Para quitar una referencia a una biblioteca:
- Abra la base de datos.
- Presione ALT+F11 para iniciar el Editor de Visual Basic.
- En el menú Herramientas , haga clic en Referencias.
- En Referencias disponibles, haga clic para desactivar la casilla situada junto al nombre de la biblioteca y, a continuación, haga clic en Aceptar.
Distribución de archivos de base de datos
Hay dos métodos básicos de distribución de archivos de base de datos. Puede copiar el archivo desde el equipo de desarrollo al equipo de destino o puede usar el Asistente para paquetes e implementación para crear un paquete de instalación.
Si copia el archivo del equipo de desarrollo en el equipo de destino, solo se copia el archivo de base de datos. Debe asegurarse manualmente de que todos los archivos que aparecen en la lista de referencia están disponibles, en el nivel de versión correcto y en la misma ubicación relativa en el equipo de destino que en el equipo de desarrollo.
Al desarrollar aplicaciones en tiempo de ejecución en Access, tenga en cuenta que algunos archivos del sistema operativo deben distribuirse con la aplicación en tiempo de ejecución. El empaquetado de estos archivos se realiza automáticamente mediante el componente Asistente para paquetes e implementación de Microsoft Office 2000 Developer. A veces, las versiones de los archivos que se incluyen dependen de otras aplicaciones instaladas en el equipo de desarrollo y que podrían haber modificado los archivos del sistema operativo.
Siguiendo ciertas instrucciones normalmente se asegurará de que las versiones de los archivos que use no entren en conflicto con los archivos del equipo de destino al instalar la aplicación en tiempo de ejecución. Estas son las directrices:
- Desarrolle la base de datos de Access en cualquier equipo.
- Cree un entorno de equipo en el que se haya vuelto a formatear el disco duro y donde solo esté instalada la versión más antigua del sistema operativo aplicable, de Office y de Office 2000 Developer. Ejecute el Asistente para paquetes e implementación en este equipo para crear la versión en tiempo de ejecución de la aplicación. Esto garantiza que los niveles de revisión de los archivos funcionarán en cualquiera de los equipos de destino.
- Cree un entorno de equipo en el que se haya vuelto a formatear el disco duro y donde solo esté instalado el sistema operativo. Pruebe la aplicación en tiempo de ejecución en este entorno.
- Si la aplicación no se ejecuta correctamente, sabe que hay algún problema con la propia aplicación. Debe identificar y corregir el problema antes de distribuir la aplicación.
- Si la aplicación funciona correctamente en el equipo de prueba, pero no funciona en el equipo de destino, sabe que hay algo incorrecto en el equipo de destino en lugar de en la aplicación. Debe identificar y corregir la causa probable en el equipo de destino, probablemente una incompatibilidad o un archivo dañado.
Actualizar la lista de referencias
Si el problema de referencia implica un control ActiveX, a veces puede resolver el problema actualizando la lista de referencias. Para actualizar la lista de referencias:
- En el Editor de Visual Basic, haga clic en Referencias en el menú Herramientas .
- En el cuadro de diálogo Referencias , haga clic para seleccionar una referencia que aún no está seleccionada, anote cuál seleccione y, a continuación, haga clic en Aceptar.
- En el menú Herramientas , haga clic en Referencias de nuevo.
- Haga clic para cancelar la selección de la referencia y, a continuación, haga clic en Aceptar.
Distribución de archivos de base de datos que tienen controles ActiveX
Hay dos tipos de licencias para controles ActiveX: una licencia en tiempo de diseño y una licencia en tiempo de ejecución.
- Una licencia de tiempo de diseño le permite insertar controles ActiveX con licencia de Office 2000 Developer en formularios e informes de una base de datos de Access.
- Una licencia en tiempo de ejecución le permite usar los controles ActiveX en una base de datos de Access en un equipo que no tiene instalado Office 2000 Developer, pero una licencia en tiempo de ejecución no permite insertar nuevos controles ActiveX con licencia. Para instalar una licencia en tiempo de ejecución, distribuya los controles ActiveX mediante el Asistente para paquetes e implementación, que escribe la licencia para los controles en el registro del equipo de destino.
Una marca que falta, que puede ver cuando abre un módulo en la vista Diseño y luego hace clic en Referencias en el menú Herramientas, indica que la referencia en el equipo de destino al control Cuadro de diálogo común no coincide con la referencia en el archivo de base de datos del equipo de desarrollo.
Si distribuye un archivo de base de datos sin instalar el control de cuadro de diálogo común distribuible, la referencia del control puede marcarse como Falta, o puede recibir un mensaje de error que indica que "No tiene la licencia necesaria para usar este control ActiveX" si el control no distribuible ya está instalado en el equipo de destino.
Incluso cuando el archivo de base de datos forma parte de una aplicación en tiempo de ejecución, puede recibir el mensaje de error que indica que "No tiene la licencia necesaria para usar este control ActiveX" si el control no distribuible que ya está instalado en el equipo de destino es de una versión posterior al control proporcionado por la aplicación en tiempo de ejecución. Este problema puede producirse porque el programa de instalación no sobrescribe versiones posteriores de un archivo con una versión anterior del mismo archivo.
Volver a registrar un archivo
Es posible que un archivo esté en la lista de referencias sin registrarse correctamente en el registro. Si sospecha que podría ser el caso, siga estos pasos para volver a registrar el archivo:
- En Microsoft Windows NT 4.0, haga clic en Inicio, seleccione Buscar y, a continuación, haga clic en Archivos o carpetas, o en Windows 2000, haga clic en Inicio, seleccione Buscar y, a continuación, haga clic en Archivos y carpetas.
- En el cuadro Nombre , o en el cuadro Buscar archivos y carpetas con nombre , escriba regsvr32.exe.
- En el cuadro Buscar en, haga clic en la raíz del disco duro (normalmente C:).
- Haga clic para activar la casilla Incluir subcarpetas si aún no está seleccionada y, a continuación, haga clic en Buscar ahora o Buscar ahora.
- Después de encontrar el archivo, haga clic en Inicio, Ejecutar, y luego elimine todo lo que esté en el cuadro Abrir.
- Arrastre el archivo Regsvr32.exe desde el panel de resultados de búsqueda hasta el cuadro Abrir .
- Repita los pasos del 2 al 6, esta vez busque FileName.dll, donde FileName es el nombre del archivo que desea volver a registrar.
- Después de que el archivoFileName.dllesté en el cuadro Abrir con el archivo Regsvr32.exe, haga clic en Aceptar.
- En Access, pruebe para ver si el problema sigue existiendo.
Si no tiene el archivo Regsvr32.exe en su equipo, busque el archivo en otros equipos. Si el archivo no está disponible, puede obtener el archivo del sitio web de Microsoft.
Nota:
Recuerde compilar todos los módulos después de ajustar las referencias. Para compilar todos los módulos, con el módulo abierto, haga clic en Compilar base de datos en el menú Depurar . Si los módulos no se compilan, puede haber referencias sin resolver adicionales.