I vostri database Microsoft Access, rifatti come applicazioni web
Prendiamo il database Access da cui dipende la vostra azienda, con tabelle, query, maschere, report e codice VBA, e lo ricostruiamo come applicazione web con SQL Server o MySQL alle spalle. I dati arrivano integri e le schermate seguono il modo in cui il vostro personale lavora già, così nessuno deve imparare un nuovo procedimento.
Perché adesso
Il supporto Microsoft per Access 2021, insieme al resto di Office 2021, termina il 13/10/2026. Access 2016 e Access 2019 sono senza supporto dal 14/10/2025, lo stesso giorno di Windows 10. Da quelle date un file Access non smette di aprirsi, ma non riceve più correzioni di sicurezza, e ogni nuova versione di Windows o di Microsoft 365 è un'occasione in più per un riferimento interrotto, un controllo ActiveX che non si carica o un driver a 32 bit che manca.
Più spesso il motivo per cambiare è pratico. Il file sta su un disco condiviso, una o due persone sanno come funziona, fuori dall'ufficio non si usa senza un desktop remoto, e si avvicina al limite di 2 GB di un file Access.
- Windows 10, Access 2016 e Access 2019Fine del supporto Microsoft
- Access 2021 e Office 2021Fine del supporto Microsoft
Cosa migriamo
Tutto ciò che fa funzionare il database, non solo le tabelle.
Tabelle e relazioni
Tipi di dati, chiavi primarie, indici, relazioni con integrità referenziale, regole di convalida e valori predefiniti. I campi Numerazione automatica diventano colonne Identity e mantengono i valori esistenti, così i numeri di fatture e ordini non cambiano.
Query
Query di selezione, accodamento, aggiornamento, eliminazione e a campi incrociati, comprese quelle che leggono valori da maschere aperte. Ognuna viene riscritta per il nuovo database e confrontata con i risultati dell'originale.
Maschere e sottomaschere
Schermate di inserimento, maschere continue, caselle combinate con elenchi dipendenti, strutture principale e dettaglio. Diventano pagine web con gli stessi campi nello stesso ordine.
Report
Report raggruppati con totali e interruzioni di pagina, etichette, e i documenti che stampate o inviate in PDF, come fatture e documenti di trasporto.
Moduli VBA e macro
Codice delle maschere, moduli standard, AutoExec e macro incorporate. Le regole di business passano sul server, dove valgono allo stesso modo per tutti gli utenti.
Tabelle collegate e dati esterni
Collegamenti ad altri file Access, fogli Excel, origini ODBC ed elenchi SharePoint, e le importazioni o esportazioni che qualcuno lancia ogni settimana.
Come diventa la versione web
- Panoramica
- Schede lavoro312
- Clienti1.148
- Veicoli
- Ricambi
- Fatture
Tagliando annuale. Pastiglie freni anteriori. Controllo climatizzatore.
| Ricambio | Q.tà | Prezzo | Importo |
|---|---|---|---|
| Filtro olio | 1 | € 14,90 | € 14,90 |
| Olio motore 5W-30 (l) | 4,5 | € 11,20 | € 50,40 |
| Pastiglie freni ant. | 1 | € 64,50 | € 64,50 |
| Filtro aria | 1 | € 18,60 | € 18,60 |
| Manodopera (h) | 2,5 | € 54,00 | € 135,00 |
| Totale | € 283,40 | ||
| Ricambio | Q.tà | Prezzo | Importo |
|---|---|---|---|
| Filtro olio | 1 | € 14,90 | € 14,90 |
| Olio motore 5W-30 (l) | 4,5 | € 11,20 | € 50,40 |
| Pastiglie freni ant. | 1 | € 64,50 | € 64,50 |
| Filtro aria | 1 | € 18,60 | € 18,60 |
| Manodopera (h) | 2,5 | € 54,00 | € 135,00 |
Una scheda di lavoro di un'officina come potrebbe apparire in Access 97, e la stessa schermata come applicazione web.
Trascinate il cursore, oppure usate le frecce della tastiera.
Dove finisce ogni parte
- In Access: Tabelle del back-end .accdb o .mdb
- Nell'applicazione web: Tabelle in SQL Server o MySQL, con le stesse chiavi e relazioni
- In Access: Query salvate
- Nell'applicazione web: Viste, stored procedure o query nell'applicazione
- In Access: Maschere e sottomaschere
- Nell'applicazione web: Pagine web con gli stessi campi, in qualsiasi browser
- In Access: Report
- Nell'applicazione web: Pagine stampabili e file PDF generati dal server
- In Access: VBA negli eventi delle maschere
- Nell'applicazione web: Controlli e regole eseguiti sul server
- In Access: Un file di gruppo di lavoro (.mdw), o nessun accesso personale
- Nell'applicazione web: Credenziali personali con ruoli, e traccia di chi ha modificato cosa
Come si svolge la migrazione
Analisi entro 48 ore
Ci mandate una copia del file .mdb o .accdb (front-end e back-end, se il database è diviso), con dati di prova al posto di quelli reali se preferite. Entro 48 ore vi rispondiamo con un report scritto: cosa fa oggi il programma, dove sono i rischi, come sarebbe organizzata la versione web, un prezzo fisso per un modulo pilota e una stima per il resto. È gratuita e non vi impegna a nulla.
Modulo pilota
Realizziamo una parte dell'applicazione su una copia dei vostri dati reali, di solito quella che si usa di più. Il vostro personale la usa nel lavoro di tutti i giorni prima che decidiate sul resto.
Test automatici tra vecchio e nuovo
Eseguiamo query e report sul nuovo database e confrontiamo numero di record, totali e cifre stampate con gli originali di Access. Per ogni regola che troviamo scriviamo un test automatico che dà gli stessi dati in ingresso al vecchio programma e alla nuova applicazione e controlla che i risultati coincidano. Ricevete i risultati dei test.
30 giorni in parallelo
Quando l'applicazione completa è pronta, il database Access resta in uso accanto a essa per 30 giorni. Ogni differenza emerge mentre il vecchio programma c'è ancora, e la correggiamo all'interno del prezzo concordato.
Gli intoppi tipici, e come li gestiamo
L'SQL di Jet e ACE non è SQL standard
Access usa
*e?come caratteri jolly inLIKE, dove SQL Server e MySQL usano%e_, scrive le date tra due#e memorizzaTruecome -1. Funzioni comeIIf,Nz,FormateDateSerialnon hanno un equivalente diretto. Copiare il testo SQL così com'è produce query che falliscono o, peggio, che restituiscono righe diverse. Traduciamo ogni query e ne confrontiamo i risultati con l'originale.Funzioni di dominio in cicli e query
DLookup,DCounteDSumsono comode, ma ogni chiamata esegue una query separata. In una maschera continua o dentro un'altra query possono girare migliaia di volte per una sola schermata. Nella versione web diventano join e raggruppamenti che il server del database risolve in un solo passaggio.Query che leggono da maschere aperte
Un criterio come
[Forms]![frmOrdini]![txtIDCliente]funziona solo finché quella maschera è aperta, su quel PC. Trasformiamo questi riferimenti in parametri, così la stessa query serve a qualsiasi pagina o report.Campi Sì/No, Valuta e Data/ora
Access memorizza Sì/No come 0 e -1, la Valuta con quattro decimali e le date come numeri che possono contenere anche un'ora. Spostati senza attenzione, i totali slittano di qualche centesimo o un filtro sul 31/03 non restituisce nulla. Mappiamo ogni tipo di campo in modo esplicito e confrontiamo i totali dopo ogni trasferimento.
Campi allegato, multivalore e di ricerca
Questi tipi di campo esistono solo nel formato .accdb e nascondono tabelle aggiuntive. Li trasformiamo in normali tabelle collegate, e gli allegati in file archiviati e richiamati dal database.
Un front-end copiato su ogni PC
Molti database si reggono su una copia del front-end su ogni scrivania, a volte in versioni diverse, con percorsi verso il back-end su un'unità di rete mappata. Durante l'analisi stabiliamo quale copia è quella buona e quali percorsi, stampanti e componenti aggiuntivi il codice dà per scontati.
Prezzo e pagamento
Analisi
Gratuita
scritta, entro 48 ore
Modulo pilota
1.000–1.500 €
di solito, 50% all'inizio e 50% all'approvazione
L'analisi è gratuita. Se decidete di non andare avanti, il report resta a voi e non dovete nulla.
I prezzi sono fissi e concordati per iscritto prima di iniziare. Se il perimetro cambia, vi mandiamo un nuovo preventivo scritto e aspettiamo la vostra approvazione prima di fare il lavoro in più.
Per una migrazione completa puntiamo a stare dal 40 al 60% sotto il preventivo tipico di un'agenzia. Possiamo farlo perché siamo uno studio piccolo, senza uffici da pagare né rete commerciale.
Prezzi IVA esclusa.
Una migrazione vera, verificata dai test
Northwind è il database di esempio che Microsoft distribuiva con Access, non un nostro cliente. Ne abbiamo migrato una copia pubblica in SQLite e PostgreSQL, confrontato ogni tabella e ogni query con l'originale tramite test automatici e costruito sul risultato un'applicazione web funzionante. Il caso di studio riporta i numeri, il report di equivalenza elenca ogni controllo.
Report di equivalenza (in inglese) · Anteprima cliccabile e analisi di esempio (demo)

Domande frequenti
Possiamo continuare a usare Access mentre si costruisce la versione web?
Sì. Continuate a lavorare nel database come sempre. Prima dell'avvio trasferiamo di nuovo i dati dall'ultima copia, e il database resta in uso per 30 giorni accanto alla nuova applicazione.
Potremmo tenere le maschere di Access e spostare solo i dati su SQL Server?
Sì, e per alcune aziende è il primo passo giusto: le tabelle passano su SQL Server e il front-end Access si collega a esse. Così si risolvono i problemi di dimensione e di stabilità, ma non l'accesso da remoto né la dipendenza da Office. L'analisi indica quale strada fa al caso vostro.
Il nostro database è un .mdb di Access 97 o 2003. È un problema?
No. Lavoriamo sia con file .mdb sia con file .accdb. Se in un vecchio .mdb è stata impostata la protezione a livello utente, ci servirà anche il file di gruppo di lavoro (.mdw), e ve lo diciamo prima che ci mandiate qualcosa.
Che fine fanno i nostri report?
Ogni report viene ricostruito come pagina da stampare o salvare in PDF, con gli stessi raggruppamenti e gli stessi totali. I test di confronto verificano le cifre dei nuovi report rispetto a quelle di Access.
Quante persone possono usare la versione web contemporaneamente?
Dipende dal server del database più che dall'applicazione, e SQL Server o MySQL reggono molti più utenti contemporanei di un file Access condiviso. L'analisi consiglia un hosting adatto al vostro numero di utenti.
Dove girerà l'applicazione?
Su un server o un servizio cloud di vostra scelta, oppure su un hosting che predisponiamo noi. Usiamo tecnologie diffuse, C# con ASP.NET Core o PHP con MySQL, così il vostro fornitore informatico può occuparsi della gestione quotidiana.
Gli altri servizi
- Da Excel VBA ad applicazione webCartelle di lavoro con macro, UserForm e fogli collegati trasformate in un'applicazione web multiutente.
- Migrazione di applicazioni VB6Programmi Visual Basic 6 portati in C# e sul web, con o senza il codice sorgente.
- Migrazione di applicazioni DelphiProgrammi Delphi su BDE, Paradox o dBase portati in un'applicazione web su database SQL.
- Modernizzazione .NET (WinForms, WebForms)Applicazioni WinForms e ASP.NET Web Forms portate su ASP.NET Core, tenendo ciò che funziona ancora.
- Software su misura e integrazioniNuovi gestionali, integrazioni tramite API REST, migrazione dei dati e manutenzione.
Contatti
Via email:
riccardo@Mandateci una copia del database, con dati di prova se preferite, oppure una breve descrizione di cosa fa. Vi rispondiamo entro un giorno lavorativo.
Lavoriamo dall'Italia.