Microsoft Access es un sistema de gestión de bases de datos (DBMS) de Microsoft que combina el motor de base de datos relacional Access Database Engine (ACE) con una interfaz gráfica de usuario y herramientas de desarrollo de software. Es miembro del conjunto de aplicaciones Microsoft 365 , incluido en las ediciones Professional y superiores o vendido por separado.
Microsoft Access almacena los datos en su propio formato basado en el motor de base de datos de Access (anteriormente Jet Database Engine). También puede importar o vincular directamente datos almacenados en otras aplicaciones y bases de datos. [6]
Los desarrolladores de software , arquitectos de datos y usuarios avanzados pueden utilizar Microsoft Access para desarrollar software de aplicación . Al igual que otras aplicaciones de Microsoft Office, Access es compatible con Visual Basic para Aplicaciones (VBA), un lenguaje de programación basado en objetos que puede hacer referencia a una variedad de objetos, incluidos los DAO (objetos de acceso a datos) heredados, los objetos de datos ActiveX y muchos otros componentes ActiveX. Los objetos visuales utilizados en formularios e informes exponen sus métodos y propiedades en el entorno de programación VBA, y los módulos de código VBA pueden declarar y llamar a operaciones del sistema operativo Windows .
Antes de la introducción de Access, Borland (con Paradox ), Ashton-Tate (con dBase , adquirida por Borland en 1991) y Fox (con FoxPro ) dominaban el mercado de bases de datos de escritorio. Microsoft Access fue el primer programa de base de datos de mercado masivo para Windows. Con la compra de FoxPro por parte de Microsoft en 1992 y la incorporación de las rutinas de optimización de consultas Rushmore de Fox en Access, Microsoft Access rápidamente se convirtió en la base de datos dominante para Windows, eliminando de manera efectiva la competencia que no logró realizar la transición desde el mundo MS-DOS . [7] En la década de 1980, Microsoft Access se refería a un programa de telecomunicaciones no relacionado que proporcionaba emulación de terminal e interfaces para facilitar el uso en el acceso a servicios en línea como Dow Jones , Compuserve y el buzón electrónico. [8] [9]
El primer intento de Microsoft de vender un producto de base de datos relacional fue a mediados de la década de 1980, cuando Microsoft obtuvo la licencia para vender R:Base . [10] A finales de la década de 1980, Microsoft desarrolló su propia solución con el nombre en código Omega. [11] Se confirmó en 1988 que se estaba desarrollando un producto de base de datos para Windows y OS/2 . [12] [13] Iba a incluir el lenguaje "EB" Embedded Basic, [11] que iba a ser el lenguaje para escribir macros en todas las aplicaciones de Microsoft, [14] pero la unificación de los lenguajes de macros no ocurrió hasta la introducción de Visual Basic para Aplicaciones (VBA). También se esperaba que Omega proporcionara una interfaz para Microsoft SQL Server . [15] La aplicación consumía muchos recursos y hubo informes de que estaba funcionando lentamente en los 386 procesadores que estaban disponibles en ese momento. [16] Estaba previsto que se lanzara en el primer trimestre de 1990, [17] pero en 1989 se reinició el desarrollo del producto [10] [18] y se reprogramó para que se entregara no antes de enero de 1991. [19] Partes del proyecto se utilizaron más tarde para otros proyectos de Microsoft: Cirrus (nombre en clave de Access) y Thunder (nombre en clave de Visual Basic , donde se utilizó el motor Embedded Basic). [10] [11] Después del estreno de Access, el proyecto Omega se demostró en 1992 a varios periodistas e incluyó características que no estaban disponibles en Access. [20]
Después de que el proyecto Omega fuera desechado, algunos de sus desarrolladores fueron asignados al proyecto Cirrus (la mayoría fueron asignados al equipo que creó Visual Basic). [10] Su objetivo era crear un competidor para aplicaciones como Paradox o dBase que funcionaran en Windows. [21] Después de que Microsoft adquiriera FoxPro , hubo rumores de que el proyecto de Microsoft podría ser reemplazado por él, [22] pero la compañía decidió desarrollarlos en paralelo. Se asumió que el proyecto haría uso de Extensible Storage Engine (Jet Blue) [23] pero, al final, solo se proporcionó soporte para Jet Database Engine (Jet Red). El proyecto utilizó parte del código tanto del proyecto Omega como de una versión preliminar de Visual Basic. [11] En julio de 1992, se enviaron versiones beta de Cirrus a los desarrolladores [24] y el nombre Access se convirtió en el nombre oficial del producto. [25] "Access" se usó originalmente para un programa de emulación de terminal más antiguo de Microsoft. Años después de que el programa fuera abandonado, decidieron reutilizar el nombre aquí. [26]
Microsoft lanzó la versión 1.0 de Access el 13 de noviembre de 1992 y una versión 1.1 de Access en mayo de 1993 para mejorar la compatibilidad con otros productos de Microsoft e incluir el lenguaje de programación Access Basic.
Con Access v2.0, Microsoft especificó que los requisitos mínimos de hardware eran Microsoft Windows v3.1 con 4 MB de RAM necesarios, 6 MB de RAM recomendados; 8 MB de espacio disponible en el disco duro necesarios, 14 MB de espacio en el disco duro recomendado. El producto se envió en siete disquetes de 1,44 MB. El manual muestra una fecha de copyright de 1994.
Como parte de Microsoft Office 4.3 Professional con Book Shelf, Microsoft Access 2.0 se incluyó con las primeras bases de datos de muestra "NorthWind Trader", que cubrían todos los aspectos posibles de la programación de su propia base de datos. La muestra Northwind Traders introdujo por primera vez las características del panel de control principal nuevas en Access 2.0 para 1994. La foto de Andrew Fuller, el registro n.° 2 de esa base de datos de muestra, fue la de la persona que presentó y trabajó con Microsoft para proporcionar una base de datos de muestra tan sobresaliente.
Con Office 95, Microsoft Access 7.0 (también conocido como "Access 95") pasó a formar parte de Microsoft Office Professional Suite, uniéndose a Microsoft Excel, Word y PowerPoint y pasando de Access Basic a VBA. Desde entonces, Microsoft ha lanzado nuevas versiones de Microsoft Access con cada lanzamiento de Microsoft Office. Esto incluye Access 97 (versión 8.0), Access 2000 (versión 9.0), Access 2002 (versión 10.0), Access 2003 (versión 11.5), Access 2007 (versión 12.0), Access 2010 (versión 14.0), Access 2013 (versión 15.0) y Access 2016 (versión 16.0). [27]
Las versiones 3.0 y 3.5 de Jet Database Engine (utilizadas por Access 7.0 y Access 97, lanzado posteriormente, respectivamente) tenían un problema crítico que hacía que estas versiones de Access no se pudieran utilizar en una computadora con más de 1 GB de memoria. [28] Si bien Microsoft solucionó este problema para Jet 3.5/Access 97 después del lanzamiento, nunca solucionó el problema con Jet 3.0/Access 95.
El formato de base de datos nativo de Access (la base de datos Jet MDB) también ha evolucionado a lo largo de los años. Entre los formatos se incluyen Access 1.0, 1.1, 2.0, 7.0, 97, 2000, 2002 y 2007. La transición más significativa fue del formato Access 97 al formato Access 2000, que no es compatible con versiones anteriores de Access. A partir de 2011, [actualizar]todas las versiones más nuevas de Access admiten el formato Access 2000. Se agregaron nuevas funciones al formato Access 2002 que se pueden utilizar en Access 2002, 2003, 2007 y 2010.
Microsoft Access 2000 aumentó el tamaño máximo de la base de datos a 2 GB desde 1 GB en Access 97.
Microsoft Access 2007 introdujo un nuevo formato de base de datos: ACCDB. Admite vínculos a listas de SharePoint y tipos de datos complejos , como campos de varios valores y de archivos adjuntos. Estos nuevos tipos de campos son, en esencia, conjuntos de registros en campos y permiten almacenar varios valores o archivos en un campo. Microsoft Access 2007 también introdujo el campo Archivo adjunto, que almacenaba datos de forma más eficiente que el campo OLE (vinculación e incrustación de objetos) .
Microsoft Access 2010 introdujo una nueva versión del formato ACCDB compatible con el alojamiento de servicios web de Access en un servidor de SharePoint 2010. Por primera vez, esto permitió ejecutar aplicaciones de Access sin tener que instalar Access en el PC de un usuario y fue la primera compatibilidad con usuarios de Mac. Cualquier usuario del sitio de SharePoint con los derechos suficientes podía utilizar el servicio web de Access. El desarrollador seguía necesitando una copia de Access para crear el servicio web de Access, y la versión de escritorio de Access seguía siendo parte de Access 2010. Los servicios web de Access no eran lo mismo que las aplicaciones de escritorio. La automatización solo se realizaba a través del lenguaje de macros (no VBA), que Access convertía automáticamente a JavaScript. Los datos ya no estaban en una base de datos de Access, sino en listas de SharePoint. Una base de datos de escritorio de Access podía vincularse a los datos de SharePoint, por lo que las aplicaciones híbridas eran posibles para que los usuarios de SharePoint que necesitaban vistas y ediciones básicas pudieran recibir soporte mientras que las aplicaciones tradicionales más sofisticadas podían permanecer en la base de datos de escritorio de Access.
Microsoft Access 2013 ofrece aplicaciones de escritorio tradicionales de Access más un servicio web de SharePoint 2013 significativamente actualizado. [29] El modelo web de Access en Access 2010 fue reemplazado por una nueva arquitectura que almacena sus datos en bases de datos reales de SQL Server. A diferencia de las listas de SharePoint, esto ofrece un verdadero diseño de base de datos relacional con integridad referencial, escalabilidad, extensibilidad y rendimiento que uno esperaría de SQL Server. [30] Las soluciones de base de datos que se pueden crear en SharePoint 2013 ofrecen una interfaz de usuario moderna diseñada para mostrar múltiples niveles de relaciones que se pueden ver y editar, junto con el cambio de tamaño para diferentes dispositivos y soporte para el tacto. El escritorio de Access 2013 es similar a Access 2010, pero se discontinuaron varias características, incluido el soporte para Proyectos de datos de Access (ADP), [ aclaración necesaria ] tablas dinámicas, gráficos dinámicos, colecciones de datos de Access, control de código fuente, replicación y otras características heredadas. [31] El tamaño máximo de la base de datos de escritorio de Access se mantuvo en 2 GB (como ha sido desde la versión 2000).
Microsoft Access ya no está incluido en la versión de compra única de Microsoft Office 2021 , pero permanece dentro de la versión equivalente de Microsoft 365 , como las ediciones Apps for Business y Business Standard. Las características nuevas de Access 2021 incluyen un tipo de datos de fecha y hora de precisión extendida [32] y compatibilidad con tema oscuro. [33]
Además de utilizar su propio archivo de almacenamiento de base de datos, Microsoft Access también puede utilizarse como el "front-end" de un programa mientras otros productos actúan como las tablas del "back-end", como Microsoft SQL Server y productos que no son de Microsoft como Oracle y Sybase . Una base de datos Microsoft Access Jet puede utilizar múltiples fuentes de back-end (formatos ACCDB y MDB). De manera similar, algunas aplicaciones como Visual Basic , ASP.NET o Visual Studio .NET utilizarán el formato de base de datos Microsoft Access para sus tablas y consultas. Microsoft Access también puede ser parte de una solución más compleja, donde puede integrarse con otras tecnologías como Microsoft Excel , Microsoft Outlook , Microsoft Word , Microsoft PowerPoint y controles ActiveX .
Las tablas de Access admiten una variedad de tipos de campos estándar, índices e integridad referencial , incluidas actualizaciones y eliminaciones en cascada . Access también incluye una interfaz de consulta , formularios para mostrar e ingresar datos e informes para imprimir. La base de datos subyacente de Access , que contiene estos objetos, es multiusuario y maneja el bloqueo de registros .
Las tareas repetitivas se pueden automatizar mediante macros con opciones de apuntar y hacer clic . También es fácil colocar una base de datos en una red y permitir que varios usuarios compartan y actualicen datos sin sobrescribir el trabajo de los demás. Los datos se bloquean a nivel de registro , lo que es significativamente diferente de Excel, que bloquea toda la hoja de cálculo.
Existen bases de datos de plantillas dentro del programa y para descargar desde el sitio web de Microsoft. Estas opciones están disponibles al iniciar Access y permiten a los usuarios mejorar una base de datos con tablas, consultas , formularios, informes y macros predefinidos. Las plantillas de base de datos admiten código VBA , pero las plantillas de Microsoft no incluyen código VBA.
Los programadores pueden crear soluciones utilizando VBA, que es similar a Visual Basic 6.0 (VB6) y se utiliza en todos los programas de Microsoft Office, como Excel , Word , Outlook y PowerPoint . La mayor parte del código VB6, incluido el uso de llamadas a la API de Windows , se puede utilizar en VBA. Los usuarios avanzados y los desarrolladores pueden ampliar las soluciones básicas para el usuario final a una solución profesional con automatización avanzada, validación de datos , detección de errores y compatibilidad con varios usuarios.
El número de usuarios simultáneos que se pueden admitir depende de la cantidad de datos, las tareas que se realizan, el nivel de uso y el diseño de la aplicación . Los límites generalmente aceptados son soluciones con 1 GB o menos de datos (Access admite hasta 2 GB) y funciona bastante bien con 100 o menos conexiones simultáneas (se admiten 255 usuarios simultáneos). [34] Esta capacidad suele ser una buena opción para soluciones departamentales. Si se utiliza una solución de base de datos de Access en un escenario multiusuario, la aplicación debe estar "dividida". Esto significa que las tablas están en un archivo llamado back end (normalmente almacenado en una carpeta de red compartida) y los componentes de la aplicación (formularios, informes, consultas, código, macros, tablas vinculadas) están en otro archivo llamado front end . Las tablas vinculadas en el front end apuntan al archivo back end. Cada usuario de la aplicación Access recibiría entonces su propia copia del archivo front end.
Las aplicaciones que ejecutan consultas o análisis complejos en grandes conjuntos de datos naturalmente requieren mayor ancho de banda y memoria . Microsoft Access está diseñado para escalar y admitir más datos y usuarios mediante la vinculación a múltiples bases de datos de Access o el uso de una base de datos back-end como Microsoft SQL Server. Con este último diseño, la cantidad de datos y usuarios se puede escalar a soluciones de nivel empresarial.
El papel de Microsoft Access en el desarrollo web antes de la versión 2010 es limitado. Las características de la interfaz de usuario de Access, como formularios e informes, solo funcionan en Windows . En las versiones 2000 a 2003, un tipo de objeto de Access llamado Páginas de acceso a datos creaba páginas web publicables. Las páginas de acceso a datos ya no son compatibles. Se puede acceder al motor de base de datos Jet , núcleo de Access, a través de tecnologías como ODBC u OLE DB . Se puede acceder a los datos (es decir, tablas y consultas) mediante aplicaciones basadas en web desarrolladas en ASP.NET , PHP o Java . Con el uso de los Servicios de Terminal Server y la Aplicación de Escritorio Remoto de Microsoft en Windows Server 2008 R2, las organizaciones pueden alojar aplicaciones de Access para que se puedan ejecutar en la web. [35] Esta técnica no escala de la forma en que lo haría una aplicación web, pero es adecuada para un número limitado de usuarios según la configuración del host.
Access 2010 permite publicar bases de datos en sitios web de SharePoint 2010 que ejecutan Access Services. Estos formularios e informes basados en web se ejecutan en cualquier explorador web moderno. Los formularios e informes web resultantes, cuando se accede a ellos a través de un explorador web, no requieren ningún complemento ni extensión (por ejemplo, ActiveX y Silverlight ).
Access 2013 puede crear aplicaciones web directamente en sitios de SharePoint 2013 que ejecutan Access Services. Las soluciones web de Access 2013 almacenan sus datos en una base de datos SQL Server subyacente que es mucho más escalable y sólida que la versión de Access 2010 que utilizaba listas de SharePoint para almacenar sus datos.
Los servicios de acceso en SharePoint se han retirado desde entonces. [36]
Se puede crear una versión compilada de una base de datos de Access (extensiones de archivo .MDE/ACCDE o .ADE; ACCDE sólo funciona con Access 2007 o posterior) para evitar que los usuarios accedan a las superficies de diseño para modificar el código de los módulos, los formularios y los informes. Un archivo MDE o ADE es un archivo de base de datos de Microsoft Access con todos los módulos compilados y todo el código fuente editable eliminado. Tanto la versión .MDE como la .ADE de una base de datos de Access se utilizan cuando no se permiten modificaciones por parte del usuario final o cuando el código fuente de la aplicación debe mantenerse confidencial.
Microsoft también ofrece extensiones para desarrolladores que se pueden descargar para ayudar a distribuir aplicaciones de Access 2007, crear plantillas de bases de datos e integrar el control de código fuente con Microsoft Visual SourceSafe .
Los usuarios pueden crear tablas, consultas, formularios e informes, y conectarlos entre sí mediante macros . Los usuarios avanzados pueden utilizar VBA para escribir soluciones completas con manipulación avanzada de datos y control de usuario. Access también tiene funciones de creación de informes que pueden funcionar con cualquier fuente de datos a la que Access pueda acceder.
El concepto original de Access era que los usuarios finales pudieran acceder a los datos desde cualquier fuente. Otras características incluyen: la importación y exportación de datos a muchos formatos, incluidos Excel , Outlook , ASCII , dBase , Paradox , FoxPro , SQL Server y Oracle . También tiene la capacidad de vincularse a los datos en su ubicación existente y usarlos para ver, consultar, editar y generar informes. Esto permite cambiar los datos existentes al tiempo que se garantiza que Access use los datos más recientes. Puede realizar uniones heterogéneas entre conjuntos de datos almacenados en diferentes plataformas. Access es utilizado a menudo por personas que descargan datos de bases de datos de nivel empresarial para su manipulación, análisis y generación de informes localmente.
También existe el formato de base de datos Access (ACE y anteriormente Jet) (MDB o ACCDB en Access 2007) que puede contener la aplicación y los datos en un solo archivo. Esto hace que sea muy conveniente distribuir la aplicación completa a otro usuario, que puede ejecutarla en entornos desconectados.
Una de las ventajas de Access desde la perspectiva de un programador es su relativa compatibilidad con SQL ( lenguaje de consulta estructurado ): las consultas se pueden ver gráficamente o editar como instrucciones SQL, y las instrucciones SQL se pueden utilizar directamente en macros y módulos VBA para manipular las tablas de Access. Los usuarios pueden combinar y utilizar tanto VBA como "macros" para programar formularios y lógica, y ofrece posibilidades orientadas a objetos . VBA también se puede incluir en las consultas.
Microsoft Access ofrece consultas parametrizadas . Se puede hacer referencia a estas consultas y tablas de Access desde otros programas como VB6 y .NET a través de DAO o ADO . Desde Microsoft Access, VBA puede hacer referencia a procedimientos almacenados parametrizados a través de ADO.
Las ediciones de escritorio de Microsoft SQL Server se pueden utilizar con Access como alternativa a Jet Database Engine . Esta compatibilidad comenzó con MSDE (Microsoft SQL Server Desktop Engine), una versión reducida de Microsoft SQL Server 2000, y continúa con las versiones SQL Server Express de SQL Server 2005 y 2008.
Microsoft Access es una base de datos basada en servidor de archivos . A diferencia de los sistemas de administración de bases de datos relacionales cliente-servidor (RDBMS), Microsoft Access no implementa desencadenadores de base de datos , procedimientos almacenados ni registro de transacciones . Access 2010 incluye desencadenadores de nivel de tabla y procedimientos almacenados integrados en el motor de datos ACE. Por lo tanto, un sistema de base de datos cliente-servidor no es un requisito para usar procedimientos almacenados o desencadenadores de tabla con Access 2010. Ahora se pueden desarrollar tablas, consultas, formularios, informes y macros específicamente para aplicaciones basadas en web en Access 2010. La integración con Microsoft SharePoint 2010 también ha mejorado considerablemente.
La edición 2013 de Microsoft Access introdujo un diseño mayoritariamente plano y la posibilidad de instalar aplicaciones desde la Tienda Office, pero no introdujo nuevas funciones. El tema se actualizó parcialmente de nuevo para 2016, pero no se creó ningún tema oscuro para Access.
Los formularios web ASP.NET pueden consultar una base de datos de Microsoft Access, recuperar registros y mostrarlos en el navegador. [37]
SharePoint Server 2010 a través de Access Services permite publicar bases de datos de Access 2010 en SharePoint, lo que permite que varios usuarios interactúen con la aplicación de base de datos desde cualquier explorador web compatible con estándares. Las bases de datos web de Access publicadas en SharePoint Server pueden usar objetos estándar como tablas, consultas, formularios, macros e informes. Access Services almacena esos objetos en SharePoint. [38]
Access 2013 ofrece la posibilidad de publicar soluciones web de Access en SharePoint 2013. En lugar de utilizar listas de SharePoint como fuente de datos, Access 2013 utiliza una base de datos SQL Server real alojada en SharePoint o SQL Azure. [39] Esto ofrece una verdadera base de datos relacional con integridad referencial, escalabilidad, capacidad de mantenimiento y extensibilidad en comparación con las vistas de SharePoint que utilizaba Access 2010. El lenguaje de macros se ha mejorado para admitir una lógica de programación más sofisticada y la automatización a nivel de base de datos. [30]
Microsoft Access también puede importar o vincular directamente a datos almacenados en otras aplicaciones y bases de datos. [6] Microsoft Office Access 2007 y versiones más recientes pueden importar desde o vincular a:
Microsoft ofrece versiones de tiempo de ejecución gratuitas de Microsoft Access que permiten a los usuarios ejecutar una aplicación de escritorio de Access sin necesidad de comprar o instalar una versión comercial de Microsoft Access. Esto permite a los desarrolladores de Access crear bases de datos que se pueden distribuir libremente a un número ilimitado de usuarios finales. Estas versiones de tiempo de ejecución de Access 2007 y posteriores se pueden descargar de forma gratuita desde Microsoft. [42] Las versiones de tiempo de ejecución de Access 2003 y anteriores formaban parte de Office Developer Extensions/Toolkit y requerían una compra por separado.
La versión en tiempo de ejecución permite a los usuarios ver, editar y eliminar datos, además de ejecutar consultas, formularios, informes, macros y código de módulo VBA. La versión en tiempo de ejecución no permite a los usuarios cambiar el diseño de las tablas, consultas, formularios, informes, macros o código de módulo de Microsoft Access. Las versiones en tiempo de ejecución son similares a su versión completa correspondiente de Access y generalmente compatibles con versiones anteriores; por ejemplo, Access Runtime 2010 permite a un usuario ejecutar una aplicación de Access creada con la versión 2010, así como con las versiones 2007 a 2000. Debido a las características obsoletas en Access 2013, su versión en tiempo de ejecución tampoco puede admitir esas características anteriores. Durante el desarrollo, se puede simular el entorno de ejecución de la versión completamente funcional utilizando la /runtime
opción de línea de comandos . [43]
Access almacena todas las tablas de base de datos, consultas, formularios, informes, macros y módulos en la base de datos de Access Jet como un solo archivo.
Para el desarrollo de consultas, Access ofrece un "Diseñador de consultas", una interfaz gráfica de usuario que permite a los usuarios crear consultas sin necesidad de conocer el lenguaje de consultas estructurado. En el Diseñador de consultas, los usuarios pueden "mostrar" las fuentes de datos de la consulta (que pueden ser tablas o consultas) y seleccionar los campos que desean que se devuelvan haciendo clic en ellos y arrastrándolos hacia la cuadrícula. Se pueden configurar uniones haciendo clic en los campos de las tablas y arrastrándolos hacia los campos de otras tablas. Access permite a los usuarios ver y manipular el código SQL si así lo desean. En una consulta se puede utilizar cualquier tabla de Access, incluidas las tablas vinculadas de diferentes fuentes de datos.
Access también admite la creación de "consultas de paso a través". Estos fragmentos de código SQL pueden dirigirse a fuentes de datos externas mediante el uso de conexiones ODBC en la máquina local. Esto permite a los usuarios interactuar con datos almacenados fuera del programa Access sin utilizar tablas vinculadas o Jet. [44] Los usuarios construyen las consultas de paso a través utilizando la sintaxis SQL compatible con la fuente de datos externa.
Al desarrollar informes (en la "Vista de diseño"), las adiciones o los cambios a los controles hacen que las consultas vinculadas se ejecuten en segundo plano y el diseñador se ve obligado a esperar a que se devuelvan los registros antes de poder realizar otro cambio. Esta función no se puede desactivar.
Los no programadores pueden utilizar la función de macro para automatizar tareas sencillas mediante una serie de selecciones desplegables. Las macros permiten a los usuarios encadenar comandos fácilmente, como ejecutar consultas, importar o exportar datos, abrir y cerrar formularios, obtener una vista previa e imprimir informes, etc. Las macros admiten lógica básica (condiciones IF) y la capacidad de llamar a otras macros. Las macros también pueden contener submacros que son similares a las subrutinas. En Access 2007, las macros mejoradas incluían el manejo de errores y la compatibilidad con variables temporales . Access 2007 también introdujo macros integradas que son esencialmente propiedades del evento de un objeto. Esto eliminó la necesidad de almacenar macros como objetos individuales. Sin embargo, las macros estaban limitadas en su funcionalidad por la falta de bucles de programación y lógica de codificación avanzada hasta Access 2013. Con importantes mejoras adicionales introducidas en Access 2013, las capacidades de las macros se volvieron completamente comparables a VBA. Hicieron que las implementaciones de aplicaciones basadas en web ricas en funciones fueran prácticas, a través de una interfaz y herramientas de Microsoft SharePoint muy mejoradas, así como en los escritorios tradicionales de Windows.
Al igual que otros productos de la suite Microsoft Office, el otro lenguaje de programación utilizado en Access es Microsoft VBA. Es similar a Visual Basic 6.0 (VB6) y el código se puede almacenar en módulos, clases y código detrás de formularios e informes. Para crear un producto final más completo, eficiente y fácil de mantener con un buen manejo de errores, la mayoría de las aplicaciones profesionales de Access se desarrollan utilizando el lenguaje de programación VBA en lugar de macros, excepto cuando la implementación web es un requisito empresarial.
Para manipular datos en tablas y consultas en VBA o macros, Microsoft proporciona dos bibliotecas de acceso a bases de datos de componentes COM :
Además de DAO y ADO, los desarrolladores también pueden utilizar OLE DB y ODBC para desarrollar programas nativos de C/C++ para Access. [45] Para los ADP y la manipulación directa de datos de SQL Server, se requiere ADO. DAO es más apropiado para administrar datos en bases de datos de Access/Jet y la única forma de manipular los tipos de campos complejos en las tablas de ACCDB.
En el contenedor de base de datos o el panel de navegación de Access 2007 y versiones posteriores, el sistema clasifica automáticamente cada objeto por tipo (por ejemplo, tabla, consulta, macro). Muchos desarrolladores de Access utilizan la convención de nomenclatura de Leszynski , aunque no es universal; es una convención de programación, no una regla impuesta por DBMS. [46] [47] Es particularmente útil en VBA donde las referencias a los nombres de objetos pueden no indicar su tipo de datos (por ejemplo, tbl para tablas, qry para consultas).
Los desarrolladores implementan Microsoft Access con mayor frecuencia para proyectos individuales y de grupo de trabajo (la caracterización de velocidad de Access 97 se realizó para 32 usuarios). [48] Desde Access 97, y con Access 2003 y 2007, Microsoft Access y el hardware han evolucionado significativamente. Las bases de datos de menos de 1 GB de tamaño (que ahora pueden caber completamente en la RAM) y 200 usuarios simultáneos están dentro de las capacidades de Microsoft Access. [49] Por supuesto, el rendimiento depende del diseño de la base de datos y de las tareas. El trabajo que requiere un uso intensivo del disco, como las búsquedas y consultas complejas, es el que más tiempo lleva.
Como los datos de una base de datos de Microsoft Access se pueden almacenar en caché en la RAM, la velocidad de procesamiento puede mejorar sustancialmente cuando hay un solo usuario o si los datos no cambian. En el pasado, el efecto de la latencia de los paquetes en el sistema de bloqueo de registros hacía que las bases de datos de Access se ejecutaran lentamente en una red privada virtual (VPN) o una red de área amplia (WAN) en comparación con una base de datos Jet. A partir de 2010, [actualizar]las conexiones de banda ancha han mitigado este problema. El rendimiento también se puede mejorar si se mantiene una conexión continua a la base de datos back-end durante toda la sesión en lugar de abrirla y cerrarla para cada acceso a la tabla. [ cita requerida ]
En julio de 2011, Microsoft reconoció un problema de rendimiento de consultas intermitentes con todas las versiones de Access y Windows 7 y Windows Server 2008 R2 debido a que la naturaleza de la administración de recursos es muy diferente en los sistemas operativos más nuevos. [50] Este problema afecta gravemente el rendimiento de las consultas tanto en Access 2003 y versiones anteriores con el código Jet Database Engine , como en Access 2007 y versiones posteriores con Access Database Engine (ACE). [50] Microsoft ha publicado las revisiones KB2553029 para Access 2007 y KB2553116 para Access 2010, pero no solucionará el problema con Jet 4.0, ya que está fuera del soporte general. [50]
En versiones anteriores de Microsoft Access, la capacidad de distribuir aplicaciones requería la compra del Developer Toolkit; en Access 2007, 2010 y Access 2013, la versión "Runtime Only" se ofrece como descarga gratuita, [51] lo que hace posible la distribución de aplicaciones libres de regalías en Windows XP, Vista, 7 y Windows 8.x. [52]
Las aplicaciones de Microsoft Access pueden adoptar una arquitectura de base de datos dividida. La base de datos única se puede dividir en un archivo "back-end" independiente que contiene las tablas de datos (compartidas en un servidor de archivos) y un "front-end" (que contiene los objetos de la aplicación, como consultas, formularios, informes, macros y módulos). La aplicación Access "front-end" se distribuye al escritorio de cada usuario y se vincula a la base de datos compartida. Con este enfoque, cada usuario tiene una copia de Microsoft Access (o la versión en tiempo de ejecución) instalada en su máquina junto con la base de datos de la aplicación. Esto reduce el tráfico de red, ya que la aplicación no se recupera para cada uso. La base de datos "front-end" puede seguir conteniendo tablas locales para almacenar la configuración de un usuario o datos temporales. Este diseño de base de datos dividida también permite el desarrollo de la aplicación independientemente de los datos. Una desventaja es que los usuarios pueden realizar varios cambios en su propia copia local de la aplicación y esto dificulta la gestión del control de versiones. Cuando está lista una nueva versión, la base de datos front-end se reemplaza sin afectar a la base de datos de datos. Microsoft Access tiene dos utilidades integradas, Database Splitter [53] y Linked Table Manager, para facilitar esta arquitectura.
Las tablas vinculadas en Access utilizan rutas absolutas en lugar de rutas relativas, por lo que el entorno de desarrollo debe tener la misma ruta que el entorno de producción o se puede escribir una rutina de "vinculación dinámica" en VBA .
En el caso de bases de datos Access muy grandes, esto puede generar problemas de rendimiento y, en estas circunstancias, se debe considerar la posibilidad de utilizar un backend SQL. Esto es un problema menor si toda la base de datos cabe en la memoria RAM de la PC, ya que Access almacena en caché los datos y los índices.
Para escalar las aplicaciones de Access a soluciones empresariales o web, una técnica posible consiste en migrar a Microsoft SQL Server o a una base de datos de servidor equivalente. Un diseño cliente-servidor reduce significativamente el mantenimiento y aumenta la seguridad, la disponibilidad, la estabilidad y el registro de transacciones.
Access 2000 a Access 2010 incluía una función llamada Asistente para actualizar bases de datos que permitía a los usuarios actualizar sus bases de datos a Microsoft SQL Server, una base de datos cliente-servidor ODBC. Esta función se eliminó de Access 2013. Una solución adicional, SQL Server Migration Assistant for Access (SSMA), sigue estando disponible para descarga gratuita desde Microsoft. [54]
Hay una variedad de opciones de actualización disponibles. [55] Después de migrar los datos y las consultas a SQL Server, la base de datos de Access se puede vincular a la base de datos SQL, sujeta a las limitaciones de conversión de tipo de datos:
De todas formas, SQL Server sigue siendo la migración más sencilla. La recuperación de datos de tablas vinculadas está optimizada para los registros necesarios, pero este escenario puede funcionar de forma menos eficiente que lo que sería óptimo para SQL Server. Por ejemplo, en casos en los que las uniones de varias tablas aún requieren copiar toda la tabla en la red.
En versiones anteriores de Access, incluido Access 2010, las bases de datos también se pueden convertir en proyectos de datos de Access (ADP), que están vinculados directamente a una base de datos de SQL Server. Esta característica se eliminó de Access 2013. Los ADP admiten la capacidad de crear y modificar directamente objetos de SQL Server, como tablas, vistas, procedimientos almacenados y restricciones de SQL Server. Las vistas y los procedimientos almacenados pueden reducir significativamente el tráfico de red para las uniones de varias tablas. SQL Server admite tablas temporales y vínculos a otras fuentes de datos más allá de la única base de datos de SQL Server.
Por último, algunas bases de datos de Access se reemplazan completamente por otra tecnología, como ASP.NET o Java, una vez que se convierten los datos. Sin embargo, cualquier migración puede requerir un esfuerzo importante, ya que el lenguaje SQL de Access es un superconjunto más potente del SQL estándar. Además, los procedimientos de aplicación de Access, ya sean VBA o macros, se escriben a un nivel relativamente más alto en comparación con las alternativas disponibles actualmente, que son sólidas y completas. El lenguaje de macros de Access, que permite un nivel de abstracción incluso mayor que VBA, se mejoró significativamente en Access 2010 y nuevamente en Access 2013.
En muchos casos, los desarrolladores crean interfaces directas de web a datos utilizando ASP.NET, al tiempo que mantienen importantes procesos de automatización empresarial y funciones administrativas y de generación de informes que no necesitan distribuirse a todos en Access para que los trabajadores de la información los mantengan.
Si bien todos los datos de Access se pueden migrar directamente a SQL Server, algunas consultas no se pueden migrar correctamente. En algunas situaciones, es posible que deba traducir funciones de VBA y funciones definidas por el usuario a funciones o procedimientos de T–SQL o .NET. Las consultas de tabla de referencias cruzadas se pueden migrar a SQL Server mediante el comando PIVOT.
Las aplicaciones de Microsoft Access pueden protegerse mediante varios métodos, siendo el más básico el control de acceso mediante contraseña; se trata de una forma de protección relativamente débil.
Un nivel de protección más alto es el uso de la seguridad de grupo de trabajo que requiere un nombre de usuario y una contraseña . Los usuarios y grupos se pueden especificar junto con sus derechos a nivel de tipo de objeto o de objeto individual. Esto se puede utilizar para especificar personas con derechos de solo lectura o de entrada de datos, pero puede resultar complicado de especificar. Un archivo de seguridad de grupo de trabajo independiente contiene las configuraciones que se pueden utilizar para administrar varias bases de datos. La seguridad de grupo de trabajo no es compatible con el formato de base de datos ACCDB de Access 2007 y Access 2010, aunque Access 2007 y Access 2010 aún la admiten para bases de datos MDB.
Las bases de datos también se pueden cifrar. El formato ACCDB ofrece un cifrado significativamente más avanzado que las versiones anteriores. [56]
Además, si es necesario proteger el diseño de la base de datos para evitar cambios, las bases de datos de Access se pueden bloquear o proteger (y compilar el código fuente ) convirtiendo la base de datos en un archivo .MDE. Todos los cambios en el proyecto VBA (módulos, formularios o informes) deben realizarse en el MDB original y luego reconvertirse a MDE. En Access 2007 y Access 2010, la base de datos ACCDB se convierte en un archivo ACCDE. Hay algunas herramientas disponibles para desbloquear y " descompilar ", aunque ciertos elementos, incluidos los comentarios y el formato originales de VBA, normalmente son irrecuperables.
Microsoft Access guarda la información en los siguientes formatos de archivo :
No hay versiones de Access entre 2.0 y 7.0 porque la versión de Office 95 se lanzó con Word 7. Todos los productos de Office 95 tienen capacidades OLE 2 y Access 7 muestra que era compatible con Word 7.
Se omitió la versión número 13.
Cirrus (...) competirá directamente con el programa Metaphor de Paradox y Metaphor Computer Systems.
(...) rumor (...) de que FoxPro podría reemplazar a la largamente retrasada base de datos de Redmond, ahora con nombre en código Cirrus.
El soporte para Open ISAM estará disponible en el próximo sistema de gestión de bases de datos Cirrus de Microsoft para Windows.
pasa directamente al controlador ODBC sin que el motor Jet la valide o la analice de ninguna manera.