Access almacena todas las tablas, consultas, formularios, informes, macros y módulos de 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 construir consultas sin conocimiento del lenguaje de consulta 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 devolver haciendo clic y arrastrándolos a la cuadrícula., Uno puede configurar las uniones haciendo clic y arrastrando campos en tablas a campos en otras tablas. El acceso permite a los usuarios ver y manipular el código SQL si lo desean. Cualquier tabla de acceso, incluidas las tablas vinculadas de diferentes fuentes de datos, se puede utilizar en una consulta.

Access también admite la creación de»consultas de paso». Estos fragmentos de código SQL pueden dirigirse a fuentes de datos externas mediante el uso de conexiones ODBC en el equipo local. Esto permite a los usuarios interactuar con los datos almacenados fuera del Programa de acceso sin utilizar tablas vinculadas o Jet.,Los usuarios construyen las consultas passthrough usando la sintaxis SQL soportada por la fuente de datos externa.

al desarrollar informes (en la «vista de diseño») las adiciones o 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 usar la función de macro para automatizar tareas simples a través de una serie de selecciones desplegables., Las Macros permiten a los usuarios encadenar fácilmente comandos como ejecutar consultas, importar o exportar datos, Abrir y cerrar formularios, previsualizar 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 sub-macros que son similares a las subrutinas. En Access 2007, las macros mejoradas incluyeron manejo de errores y soporte para variables temporales. Access 2007 también introdujo macros incrustadas 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 mejoras adicionales significativas introducidas en Access 2013, las capacidades de las macros se volvieron completamente comparables a VBA. Hicieron que las implementaciones de aplicaciones basadas en la web fueran prácticas, a través de una interfaz y herramientas de Microsoft SharePoint muy mejoradas, así como en escritorios Windows tradicionales.

al igual que otros productos de la suite de 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 pueden almacenar en módulos, clases y código detrás de formularios e informes. Para crear un producto terminado más rico, más eficiente y mantenible con un buen manejo de errores, la mayoría de las aplicaciones de acceso profesional se desarrollan utilizando el lenguaje de programación VBA en lugar de macros, excepto donde la implementación web es un requisito comercial.,

para manipular datos en tablas y consultas en VBA o macros, Microsoft proporciona dos bibliotecas de acceso a bases de datos de componentes COM:

  1. Data Access Objects (Dao) (solo 32 bits), que se incluye en Access y Windows y evolucionó a ACE en Microsoft Access 2007 para el formato de base de datos ACCDE
  2. ActiveX Data Objects (ado) (ambas versiones de 32 bits y 64 bits)

DAO y ADO, los desarrolladores también pueden usar OLE DB y ODBC para desarrollar programas nativos de C/C++ para el acceso. Para ADPs y la manipulación directa de datos de SQL Server, se requiere ADO., DAO es el más apropiado para Administrar datos en bases de datos Access / Jet, y la única manera de manipular los tipos de campos complejos en tablas ACCDB.

en el contenedor de la base de datos o en el panel de navegación de Access 2007 y versiones posteriores, el sistema categoriza automáticamente cada objeto por tipo (por ejemplo, tabla, consulta, macro). Muchos desarrolladores de Access usan la Convención de nombres Leszynski, aunque no es universal; es una convención de programación, no una regla impuesta por DBMS. Es particularmente útil en VBA donde las referencias a 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). 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 RAM) y 200 usuarios simultáneos están dentro de las capacidades de Microsoft Access. Por supuesto, el rendimiento depende del diseño y las tareas de la base de datos. El trabajo intensivo en disco, como las búsquedas y consultas complejas, toma la mayor parte del tiempo.,

como los datos de una base de datos de Microsoft Access se pueden almacenar en caché en la MEMORIA RAM, La velocidad de procesamiento puede mejorar sustancialmente cuando solo hay un usuario o si los datos no están cambiando. En el pasado, el efecto de la latencia de paquetes en el sistema de bloqueo de Registros hacía que las bases de datos Access se ejecutaran lentamente en una red privada virtual (VPN) o una red de área amplia (WAN) contra una base de datos Jet. A partir de 2010, 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 de back-end durante toda la sesión en lugar de abrirla y cerrarla para cada acceso a la tabla. Si el rendimiento de Access database a través de VPN o WAN se ve afectado, un cliente que utilice el Protocolo de Escritorio remoto (como Microsoft Terminal Services) puede proporcionar una solución eficaz. Las bases de datos de acceso vinculadas a SQL Server o para acceder a proyectos de datos funcionan bien sobre VPN y WAN.,

En julio de 2011, Microsoft reconoció un problema de rendimiento de consulta intermitente con todas las versiones de Access y Windows 7 y Windows Server 2008 R2 debido a la naturaleza de la gestión de recursos que es muy diferente en los sistemas operativos más nuevos. Este problema afecta gravemente el rendimiento de las consultas tanto en Access 2003 y anteriores con el Código del motor de base de datos Jet, como en Access 2007 y posteriores con el motor de base de datos Access (ACE). Microsoft ha emitido revisiones KB2553029 para Access 2007 y KB2553116 para Access 2010, pero no solucionará el problema con Jet 4.0 ya que está fuera de soporte general.,

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, haciendo posible la distribución de aplicaciones libres de regalías en Windows XP, Vista, 7 y Windows 8.x.

arquitectura de base de datos Divididaeditar

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» separado 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 de acceso «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 su base de datos de aplicaciones. Esto reduce el tráfico de red, ya que la aplicación no se recupera para cada uso., La base de datos «front-end» todavía puede contener 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 independiente de los datos. Una desventaja es que los usuarios pueden hacer varios cambios en su propia copia local de la aplicación y esto hace que sea difícil administrar el control de versiones. Cuando una nueva versión está lista, la base de datos front-end se reemplaza sin afectar la base de datos de datos. Microsoft Access tiene dos utilidades integradas, Database Splitter y Linked Table Manager, para facilitar esta arquitectura.,

Las tablas vinculadas en Access usan 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 «enlazador dinámico» en VBA.

para bases de datos de acceso muy grandes, esto puede tener problemas de rendimiento y se debe considerar un motor SQL en estas circunstancias. Esto es menos problemático si toda la base de datos puede caber en la RAM del PC, ya que Access almacena en caché datos e índices.,

migración a SQL ServerEdit

Artículo principal: Upsizing (base de datos)

para escalar las aplicaciones de acceso a soluciones empresariales o web, una posible técnica implica la migración a Microsoft SQL Server o 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 característica llamada Upsizing Wizard que permitía a los usuarios actualizar sus bases de datos a Microsoft SQL Server, una base de datos ODBC cliente–servidor., Esta característica fue eliminada de Access 2013. Una solución adicional, el Asistente de migración de SQL Server para Access (SSMA), sigue estando disponible para su descarga gratuita desde Microsoft.

Hay una variedad de opciones de actualización disponibles. Después de migrar los datos y las consultas a SQL Server, la base de datos Access se puede vincular a la base de datos SQL. Sin embargo, ciertos tipos de datos son problemáticos, sobre todo «Sí/No». En Microsoft Access hay tres estados para el tipo de datos Sí/No (Verdadero/Falso): vacío, no/falso (cero) y sí / verdadero (-1)., El tipo de datos SQL Server correspondiente es binario, con solo dos estados, valores permitidos, cero y 1. En cualquier caso, SQL Server sigue siendo la migración más fácil. La recuperación de datos de tablas vinculadas se optimiza para solo los registros necesarios, pero este escenario puede funcionar de manera menos eficiente de lo que de otro modo sería óptimo para SQL Server. Por ejemplo, en los casos en que las uniones de varias tablas aún requieren copiar toda la tabla a través de la red.,

en versiones anteriores de Access, incluido Access 2010, las bases de datos también se pueden convertir en proyectos de datos de acceso (ADP) que están vinculados directamente a una base de datos SQL Server. Esta característica fue eliminada de Access 2013. ADP admite 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 enlaces a otras fuentes de datos más allá de la base de datos SQL Server única.,

finalmente, algunas bases de datos de acceso son completamente reemplazadas por otra tecnología como ASP.NET o Java Una vez que los datos se convierten. Sin embargo, cualquier migración puede imponer un gran esfuerzo, ya que el lenguaje Access SQL es un superconjunto más poderoso de SQL estándar. Además, los procedimientos de solicitud de acceso, ya sean VBA y macros, están escritos a un nivel relativamente más alto en comparación con las alternativas actualmente disponibles que son robustas y completas., Tenga en cuenta que el lenguaje de macros Access, que permite un nivel aún mayor de abstracción que el VBA, se mejoró significativamente en Access 2010 y nuevamente en Access 2013.

en muchos casos, los desarrolladores construyen interfaces web-a-datos directas utilizando ASP.NET, mientras se mantienen los principales procesos de automatización de negocios, las funciones administrativas y de informes que no necesitan distribuirse a todos en Access para que los trabajadores de la información mantengan.

mientras que todos los datos de acceso pueden migrar a SQL Server directamente, algunas consultas no pueden migrar correctamente., En algunas situaciones, es posible que necesite traducir funciones VBA y funciones definidas por el usuario en funciones / procedimientos de T-SQL o.net. Las consultas Crosstab se pueden migrar a SQL Server mediante el comando PIVOT.