# Microsoft Access

Microsoft Access è un applicativo software per la gestione di basi di dati relazionali che sfrutta il Microsoft Jet Database Engine e che integra nativamente in sé un modulo per lo sviluppo rapido di applicazioni gestionali.

## Origine

Il successo delle applicazioni di database desktop come dBASE e Visual FoxPro ha spinto Microsoft a metà degli anni '80 a decidere di sviluppare la propria applicazione di database per il nuovo sistema operativo Windows. Il lavoro di sviluppo sotto il nome del progetto "Omega" ancora e ancora fino all'inizio degli anni '90, la versione 1.0 ancora imperfetta e poco dopo la versione stabile 1.1 è stata lanciata sul mercato.
La versione corrente è Access 2021. A differenza degli altri programmi di Office Word, Excel e PowerPoint, che sono offerti anche per il sistema operativo Mac O S X di Apple, Access è disponibile solo per Windows.

## Caratteristiche
### Formato dati

Può utilizzare dati immagazzinati in formato Access/Jet, SQL Server, Oracle o qualsiasi database in formato compatibile ODBC. La struttura di salvataggio segue il modello tabella relazionale: ossia è possibile immagazzinare i dati da gestire in tabelle composte da un numero elevato di record, ed ogni record contiene i dati distinti per campi. Se una tabella non fosse sufficiente per immagazzinare i dati necessari e fosse necessario utilizzarne altre, è possibile a questo punto collegare le varie tabelle tra loro con una relazione. Questo consente l'esame dei dati contenuti nel database utilizzando diverse tabelle e quindi giungere a una pluralità di dati anche complessa.

### Maschera

La maschera è un elemento grafico utile alle interazioni dell'utente con i dati della tabella. Oggetto di access che realizza l'interfaccia grafica.

### Memorizzazione dati

A differenza di altri ambienti di sviluppo, in Access un unico file comprende tutti gli elementi utilizzabili per lo sviluppo di applicazioni complete: tabelle, query, maschere, report, macro, pagine e moduli. È comunque possibile, con tutte le versioni, progettare applicazioni nelle quali si mantenga la separazione fisica tra tabelle di dati (Back-End o BE) ed i restanti elementi (Front-End o FE). Queste soluzioni permettono di migliorare la distribuzione e la manutenzione di applicazioni condivise tra più utenti.
* Tabelle: sono i contenitori dove vengono memorizzati i dati; è disponibile una interfaccia grafica elementare per la definizione o la modifica delle proprietà dei campi, inclusa la definizione degli indici e della chiave primaria (che può essere basata su più campi). Il controllo della sintassi esercitato da Access può consistere in soli messaggi di avvertimento nei casi in cui la modifica dei campi può comportare perdita irreparabile dei dati (ad esempio, la riduzione della dimensione di un campo nel quale sono già presenti dati di lunghezza maggiore): questo non è necessariamente visto come un difetto di Access, per quanto la destinazione potenziale del prodotto, a utenti non esperti, possa rendere questi casi più frequenti;
* Query: sono gli strumenti idonei all'interrogazione ed alla manipolazione dei dati. Access dispone sin dall'origine di un ambiente grafico per la definizione delle query (detto Query By Example o QBE) che permette anche a utenti poco esperti la loro costruzione, con un minimo di controllo della correttezza sintattica; questa facilità, per contro, può comportare situazioni di blocco del sistema come conseguenza di errori concettuali che comportino ricorsioni. Il linguaggio utilizzato nella definizione delle query è una versione leggermente semplificata di T-SQL; in alternativa all'ambiente QBE è possibile utilizzare direttamente questo, anche per ottenere query non altrimenti costruibili con QBE;
* Maschere: (o form) consistono negli elementi grafici utili alla interazione da parte degli utenti con i dati delle tabelle o delle query. Le maschere possono contenere gli elementi standard di Access ed elementi aggiuntivi (ad esempio, controlli OCX sviluppati a parte). Le maschere possono includere codice VBA destinato all'automazione degli elementi contenuti; l'area di visibilità delle routine è locale;
* Report: consentono la visualizzazione, destinata alla stampa, dei risultati basati sui dati, tabelle e query. L'ambiente grafico destinato alla costruzione della struttura dei report ricalca quello delle maschere, pur conservando le differenze dovute alla diversa destinazione; sono disponibili funzioni di base, quali aggregazione dei dati e totali parziali. Anche in questo caso è possibile l'inserimento di codice VBA (area di visibilità locale) per un livello maggiore di automazione;
* Macro: possono contenere semplici sequenze di istruzioni, tipicamente tutto ciò che è possibile ottenere attraverso i menu di Access. Si tratta di elementi che permettono scarsa interazione con l'utente, per contro la loro costruzione è semplice;
* Pagine: (ovvero pagine di accesso ai dati) permettono la pubblicazione dei dati attraverso un server web. Sono state introdotte a partire dalla versione 2000 di Access;
* Moduli: possono contenere codice VBA (moduli di codice e classi) che si intende rendere globali (salvo specifica dichiarazione), ovvero richiamabili da uno qualsiasi degli altri elementi dell'applicazione.
Una funzionalità presente in tutte le versioni di Access consente di accedere a dati residenti in file di database esterni, sotto forma di tabelle collegate. Database strutturati in questo modo facilitano la distribuzione e la manutenzione della medesima applicazione a più utenti, fermo restando le limitazioni del motore Access/Jet circa il numero massimo di accessi simultanei. Occorre sottolineare che queste soluzioni non possono essere definite "client/server" in quanto il carico di lavoro per l'elaborazione dati è sempre locale; una alternativa praticabile con le versioni dalla 2000 in poi è rappresentata dal progetto di database (estensione del file .adp) dove di fatto si realizza solo la parte di presentazione grafica, in appoggio a motori professionali già esistenti, ai quali è demandato il lavoro di elaborazione.
Le tabelle collegate sono utilizzabili allo stesso modo delle tabelle residenti, con l'unica limitazione data dalla non modificabilità della loro struttura se non nel database nel quale risiedono fisicamente. Le tabelle possono essere collegate attraverso il motore di database di Access se risiedono fisicamente in altri database Access, o in alcuni formati di file di database "standard", oppure via ODBC. In questo caso l'accesso a database eterogenei può richiedere la installazione di driver specifici.
Le versioni più recenti di Access dispongono di procedure guidate per la separazione in file distinti dei dati e dei restanti elementi a partire da applicazioni inizialmente costruite in un singolo file Access.

### Sviluppo progetti

Per lo sviluppo di applicazioni semplici, si può evitare di programmare direttamente, usufruendo di alcuni template già inclusi nel pacchetto.
Per esigenze di sviluppo più evolute è disponibile nel prodotto il linguaggio di programmazione Microsoft Visual Basic for Applications. Sebbene il prodotto supporti tecniche di programmazione object-oriented (OO), tuttavia non costituisce un ambiente di sviluppo interamente orientato agli oggetti.
È possibile inoltre distribuire i propri lavori tramite un tool (Access Runtime) scaricabile dal sito Microsoft che permette, con alcune limitazioni, di far funzionare un applicativo Access anche su PC dove non è presente una versione del programma.

## Estensioni di file

Microsoft Access salva le informazioni con i seguenti formati di file:
Formati attuali :
| Formato del file | Estensione |
| Accedi al modello di progetto vuoto | .adn |
| Access Database (2007 e versioni successive) | .accdb |
| Access Database Runtime (2007 e versioni successive) | .accdr |
| Access Database Template (2007 e versioni successive) | .accdt |
| Access Add-In (2007 e versioni successive) | .accda |
| Accedi a Workgroup, database per la sicurezza a livello di utente. | .mdw |
| Database di accesso protetto, con VBA e macro compilati (2007 e versioni successive) | .accde |
| Collegamento a Windows: macro di accesso | .mam |
| Collegamento a Windows: Query di accesso | .maq |
| Collegamento a Windows: Access Report | .MAR |
| Collegamento a Windows: tabella di accesso | .stuoia |
| Collegamento a Windows: modulo di accesso | .maf |
| File di lock di accesso (associati a .accdb) | .laccdb |
Formati legacy :
| Formato del file | Estensione |
| Progetto di dati di accesso protetto (non supportato nel 2013) | ade |
| Progetto dati di accesso (non supportato nel 2013) | adp |
| Access Database (2003 e precedenti) | mdb |
| Access Database (Pocket Access per Windows CE) | .cdb |
| Access Database, utilizzato per i componenti aggiuntivi (Access 2, 95, 97), precedentemente utilizzato per i gruppi di lavoro (Access 2) | MDA |
| Accesso al modello di database vuoto (2003 e versioni precedenti) | .mdn |
| Accesso ai dati aggiuntivi (2003 e precedenti) | MDT |
| Access (SQL Server) detached database (2000) | mdf |
| Database di accesso protetto, con VBA e macro compilati (2003 e precedenti) | .mde |
| File di lock di accesso (associati a .mdb) | ldb |

## Versioni

| Versione | Numero della versione | Data di rilascio | Versione Jet | Sistema operativo supportato | Versione della suite per ufficio |
| Access 1.0 | 1.0 | 1992 | 1.0 | Windows 3.0 | |
| Access 1.1 | 1.1 | 1993 | 1.1 | Windows 3.1x |
| Access 2.0 | 2.0 | 1994 | 2.0 | Windows 3.1x | Office 4.3 Pro |
| Access per Windows 95 | 7.0 | 24 agosto, 1995 | 3.0 | Windows 95 | Office 95 Professional |
| Access 97 | 8.0 | 16 gennaio, 1997 | 3.5 | Windows 95, Windows NT 3.51 SP5, Windows NT 4.0 SP2 | Office 97 Professional e Developer |
| Access 2000 | 9.0 | 7 giugno, 1999 | 4.0 SP1 | Windows 95, Windows NT 4.0, Windows 98, Windows 2000 | Office 2000 Professional, Premium e Developer |
| Access 2002 | 10.0 | 31 marzo, 2001 | 4.0 SP1 | Windows NT 4.0 SP6, Windows 98, Windows 2000, Windows Me | Office XP Professional e Developer |
| Access 2003 | 11.0 | 27 novembre, 2003 | 4.0 SP1 | Windows 2000 SP3 o successivo, Windows XP, Windows Vista, Windows 7 | Office 2003 Professional e Professional Enterprise |
| Access 2007 | 12.0 | 27 gennaio, 2007 | 12 | Windows XP SP2, Windows Server 2003 SP1, o sistema operativo più recente | Office 2007 Professional, Professional Plus, Ultimate e Enterprise |
| Access 2010 | 14.0 | 15 luglio, 2010 | 14 | Windows XP SP3, Windows Server 2003 SP2, Windows Server 2003 R2, Windows Vista SP1, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows Server 2012, Windows 8 | Office 2010 Professional, Professional Academic e Professional Plus |
| Access 2013 | 15.0 | 29 gennaio, 2013 | 15 | Windows 7, Windows Server 2008 R2, Windows Server 2012, Windows 8, Windows 10 | Office 2013 Professional e Professional Plus |
| Access 2016 | 16.0 | 22 settembre, 2015 | 16 | Windows 7, Windows 8, Windows 8.1, Windows 10 | Office 2016 Professional e Professional Plus |
| Access 2019 | 17.0 | 24 settembre, 2018 | 17 | Windows 10 | Office 2019 Professional e Professional Plus |
| Access 2021 | 18.0 | 24 settembre, 2018 | 18 | Windows 10, Windows 11 | Office 2021 Professional e Professional Plus |
Non esistono versioni di Access tra 2.0 e 7.0 poiché la versione di Office 95 è stata avviata con Word 7. Tutti i prodotti Office 95 hanno funzionalità OLE 2 e Access 7 mostra che era compatibile con Word 7.
La versione numero 13 è stata saltata.

## Loghi

* Logo di Microsoft Access 2000-2003
* Logo di Microsoft Access 2007
* Logo di Microsoft Access 2010
* Logo di Microsoft Access 2013-2016
* Logo di Microsoft Access 2019