Connettere Access a SQL Server

Questo articolo illustra alcune nozioni di base relative ai database. Le sezioni seguenti illustrano le nozioni di base per accedere a un database con stringhe di connessione e usando un'interfaccia di programmazione di database nel codice VBA di Access.

Componenti per l'accesso ai dati

Contenuto dell'articolo

Uso di un driver ODBC o un provider OLE DB

Interfacciarsi a livello di programmazione da SQL Server ad Access

Riepilogo delle versioni dei driver ODBC

Riepilogo delle versioni dei provider OLE DB

Riepilogo delle parole chiave ODBC

Riepilogo delle parole chiave OLE DB

Uso di un driver ODBC o un provider OLE DB

Le stringhe di connessione sono ormai disponibili da tempo. È possibile definire una stringa di connessione formattata nell'interfaccia utente di Access oppure nel codice VBA. Una stringa di connessione (ODBC o OLE DB) passa le informazioni direttamente al database, come il percorso server, il nome del database, il tipo di sicurezza e altre opzioni utili. Ad esempio:

ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;

Inizialmente, era disponibile SQL Server Native Client (SNAC), una raccolta autonoma che conteneva le tecnologie ODBC e OLEDB. È comunque ancora disponibile per le versioni 2005-2012 di SQL Server. Molte applicazioni legacy usavano SNAC, che è comunque ancora supportata per la compatibilità con le versioni precedenti, ma non è consigliabile usarla per lo sviluppo di nuove applicazioni. È consigliabile usare le singole versioni scaricabili più recenti dei driver ODBC.

Driver ODBC

ODBC (Open Database Connectivity) è un protocollo che consente di connettere un database di Access a un'origine dati esterna, ad esempio Microsoft SQL Server. In genere, è possibile usare le origini dati dei file, dette anche file DSN, per aggiungere una stringa di connessione, nel qual caso viene usata la parola chiave FILEDSN nella stringa di connessione, o archiviarla nel registro di sistema, nel qual caso si usa la parola chiave DSN. In alternativa, è possibile usare VBA per impostare queste proprietà usando una stringa di connessione "senza DNS".

Nel corso degli anni i driver ODBC sono stati forniti in tre fasi:

  • Prima del 2005, i driver ODBC venivano forniti con Windows Data Access Components (WDAC), che in origine era denominato Microsoft Data Access Components (MDAC). Questi componenti sono ancora forniti con Windows per la compatibilità con le versioni precedenti. Per altre informazioni, vedere Microsoft o Windows Data Access Components.

  • I driver ODBC venivano forniti con SNAC per SQL Server 2005 - SQL Server 2012.

  • Dopo SQL Server 2012, i driver ODBC vengono forniti singolarmente e contengono il supporto per le nuove funzionalità di SQL Server.

Per un nuovo sviluppo, evitare di usare i driver ODBC delle prime due fasi e usare i driver ODBC dalla terza fase.

Provider OLE DB

OLE DB (Object Linking and Embedding, Database) è un protocollo più recente che consente di connettere un database di Access a un'origine dati esterna, ad esempio Microsoft SQL Server. OLE DB non richiede un DSN e consente anche l'accesso completo a origini dati ODBC e driver ODBC.

Suggerimento    In genere, è possibile usare la finestra di dialogo Proprietà di Data Link per aggiungere una stringa di connessione OLE DB. Anche se non è possibile aprire la finestra di dialogo Proprietà di Data Link in Access, in Esplora risorse è possibile creare un file con estensione txt vuoto, modificare il tipo di file in UDL e quindi fare doppio clic sul file. Dopo aver creato una stringa di connessione, cambiare di nuovo il tipo di file in TXT.

Nel corso degli anni i provider OLE DB sono stati forniti in tre fasi:

  • Prima del 2005, i provider OLE DB venivano forniti con Windows Data Access Components (WDAC), che in origine era denominato Microsoft Data Access Components (MDAC).

  • I provider OLE DB venivano forniti con SQL Server 2005 - SQL Server 2017. Sono stati deprecati nel 2011.

  • Nel 2017, il provider OLE DB di SQL Server è stato ripristinato.

La versione attualmente consigliata per lo sviluppo di nuove soluzioni è il driver OLE DB 18 per SQL Server.

Come ottimizzare le prestazioni con una stringa di connessione ODBC

Per ottimizzare le prestazioni, ridurre al minimo il traffico di rete e ridurre l'accesso multiutente al database di SQL Server, usare il minor numero possibile di stringhe di connessione condividendo le stringhe di connessione tra più set di record. Anche se Ace passa semplicemente una stringa di connessione al server, capisce e usa le parole chiave seguenti: DNS, DATABASE, UID, PWD e DRIVER per ridurre al minimo le comunicazioni client/server.

Nota    Se una connessione ODBC a un'origine dati esterna viene persa, Access prova a riconnettersi automaticamente. Se il tentativo riesce, è possibile continuare a lavorare. Se il tentativo non riesce, è comunque possibile usare gli oggetti che non si basano sulla connessione. Per riconnettersi, chiudere e riaprire Access.

Suggerimenti per l'uso congiunto di ODBC e OLE DB

Evitare di combinare la stringa di connessione e le tecnologie di accesso ai database. Usare una stringa di connessione ODBC per DAO. Usare una stringa di connessione OLE DB per ADO. Se l'applicazione contiene codice VBA che usa sia DAO che ADO, usare il driver ODBC per DAO e il provider OLE DB per ADO. Cercare di ottenere le funzionalità e i supporti più recenti rispettivamente per ODBC e OLEDB.

ODBC usa il termine "driver" e OLE DB usa il termine "provider". I termini descrivono lo stesso tipo di componente software, ma non sono intercambiabili nella sintassi della stringa di connessione. Usare il valore corretto come documentato.

Inizio pagina

Interfacciarsi a livello di programmazione da SQL Server ad Access

Sono disponibili due modi principali per interfacciarsi a livello di programmazione con un database di SQL Server.

DAO

Un oggetto di accesso ai dati (DAO) rappresenta un'interfaccia astratta di un database. Microsoft Data Access Objects (DAO) è il modello a oggetti di programmazione nativo che consente di accedere al nucleo di Access e di SQL Server per creare, eliminare, modificare ed elencare oggetti, tabelle, campi, indici, relazioni, query, proprietà e database esterni.

Per altre informazioni, vedere Riferimenti agli oggetti di accesso ai dati Microsoft.

ADO

ActiveX Data Objects (ADO) include un modello di programmazione di alto livello ed è disponibile in Access per mezzo di un riferimento a una raccolta di terze parti. ADO è facile da imparare e consente alle applicazioni client di accedere e modificare i dati da una varietà di origini, tra cui Access e SQL Server. I vantaggi principali sono semplicità d'uso, alta velocità, sovraccarico ridotto della memoria e un ingombro minimo del disco. ADO supporta anche le principali funzionalità per la creazione di applicazioni basate sul Web.

Per altre informazioni, vedere Riferimenti agli oggetti ADO e Microsoft ActiveX Data Objects (ADO).

Quale è opportuno scegliere?

In una soluzione Access che usa il codice VBA è possibile usare DAO, ADO o entrambe come tecnologia di interfaccia di database. DAO continuerà a essere l'impostazione predefinita di Access. Ad esempio, tutte le maschere e i report e le query di Access usano DAO. Tuttavia, quando si esegue la migrazione a SQL Server, è consigliabile usare ADO per rendere la soluzione più efficiente. Di seguito sono elencate le linee guida generali che consentono di decidere quando usare DAO o ADO.

Usare DAO se si vuole:

  • Creare una maschera associata di lettura/scrittura senza usare VBA.

  • Eseguire query sulle tabelle locali.

  • Scaricare i dati in tabelle temporanee.

  • Usare le query pass-through come origini dati per report o maschere in modalità di sola lettura.

  • Definire e usare un oggetto TableDef o QueryDef in VBA.

Usare ADO se si vuole:

  • Sfruttare altri modi per ottimizzare, come l'esecuzione di operazioni asincrone.

  • Eseguire query pass-through DDL e DML.

  • Accedere ai dati di SQL Server direttamente tramite recordset in VBA.

  • Scrivere codice più semplice per determinate attività, ad esempio lo streaming di BLOB.

  • Chiama una stored procedure direttamente, con parametri, usando un oggetto comando in VBA.

Inizio pagina

Riepilogo delle versioni dei driver ODBC

La tabella seguente riepiloga le informazioni importanti sulle versioni dei driver ODBC, i percorsi di download e il supporto delle funzionalità. Assicurarsi di usare la versione di bit corretta (64 bit o 32 bit) del driver in base a Windows e non a Office. Se si esegue Access a 32 bit in Windows a 64 bit, installare i driver a 64 bit, che includono i componenti a 32 bit necessari per Access.

Per altre informazioni, vedere Uso delle parole chiave della stringa di connessione con SQL Server Native Client, Note sulla versione di ODBC per SQL Server in Windows (V17) ed Funzionalità di Microsoft ODBC Driver for SQL Server in Windows (V13, 11).

Driver ODBC

Versione

Download

Nuove funzionalità

Driver ODBC da 17.0 a 17.3

SQL Server 2017

Download

Driver ODBC 17.3

Uso di Azure Active Directory con il driver ODBC

Limitazioni del driver ODBC quando si usa Always Encrypted

Uso delle transazioni XA

Driver ODBC 17.2

Uso di Always Encrypted con il driver ODBC per SQL Server

Classificazione dei dati

Regole di confronto e supporto Unicode - Codifica server UTF-8

Driver ODBC 17.1

Uso di Always Encrypted con il driver ODBC per SQL Server

Driver ODBC 17.0

Always Encrypted

UseFMTONLY    Per usare i metadati legacy in casi speciali che richiedono tabelle temp. Vedere Note sulla versione di ODBC per SQL Server in Windows

Differenze nell'uso di Istanza gestita (ODBC versione 17)

Driver ODBC 13.1

SQL Server 2016 SP1, SQL Azure

Download

Always Encrypted

Azure Active Directory

Gruppi di disponibilità AlwaysOn

Pool di connessioni compatibile con il driver nel driver ODBC per SQL Server

Driver ODBC 13.0

SQL Server 2016

Download

Internationalized Domain Name (IDN)

Driver ODBC 11.0

SQL Server 2005 - 2012

Download

Pool di connessioni compatibile con il driver

Resilienza della connessione nel driver ODBC di Windows

Esecuzione asincrona

Nomi delle entità servizio (SPN) nelle connessioni client (ODBC)

Funzionalità di Microsoft ODBC Driver for SQL Server in Windows

Inizio pagina

Riepilogo delle versioni dei provider OLE DB

La tabella seguente riepiloga le informazioni importanti sulle versioni dei provider OLE DB, i percorsi di download e il supporto delle funzionalità. Assicurarsi di usare la versione di bit corretta (64 bit o 32 bit) del driver in base a Windows e non a Office. Se si esegue Access a 32 bit in Windows a 64 bit, installare i driver a 64 bit, che includono i componenti a 32 bit necessari per Access.

Per altre informazioni, vedere Uso delle parole chiave delle stringhe di connessione con SQL Server Native Client.

Provider OLE DB

Versione

Download

Nuove funzionalità

Driver OLE DB 18.2.1

(MSOLEDBSQL)

SQL Server 2017

Download

Microsoft OLE DB Driver for SQL Server e le Note sulla versione per Microsoft OLE DB Driver for SQL Server

SQL Server Native Client (SQLNCLI)

SQL Server 2005 - 2012

Deprecato, non usare

Driver OLE DB (SQLOLEDB)

Deprecato, non usare

Inizio pagina

Riepilogo delle parole chiave ODBC

La tabella seguente riepiloga le parole chiave ODBC riconosciute da SQL Server e il loro scopo. Solo un sottoinsieme viene riconosciuto da Access.

Parola chiave

Descrizione

Addr

Indirizzo di rete del server che esegue un'istanza di SQL Server.

AnsiNPW

Specifica l'uso dei comportamenti definiti dall'ANSI per gestire i confronti con valori NULL, la spaziatura tra caratteri, gli avvisi e la concatenazione NULL (Sì o No).

APP

Nome dell'applicazione che chiama SQLDriverConnect.

ApplicationIntent

Dichiara il tipo di carico di lavoro dell'applicazione quando ci si connette a un server (ReadOnly o ReadWrite).

AttachDBFileName

Nome del file primario di un database associabile.

AutoTranslate

Specifica se le stringhe di caratteri ANSI vengono inviate tra il client o il server o convertite in Unicode (Sì o No).

Database

Il nome del database. Descrizione Lo scopo della connessione. Driver Nome del driver restituito da SQLDrivers.

DSN

Nome di un'origine dati sistema o di un utente ODBC esistente. Crittografa Specifica se i dati devono essere crittografati prima di inviarli in rete (Sì o No).

Failover_Partner

Nome del server partner di failover da usare se non è possibile stabilire una connessione al server primario.

FailoverPartnerSPN

Nome dell'entità servizio per il partner di failover.

Fallback

Parola chiave deprecata.

FileDSN

Nome di un'origine dati file ODBC esistente. Lingua Lingua di SQL Server.

MARS_Connection

Specifica più set di risultati attivi (MARS) nella connessione per SQL Server 2005 (9. x) o versione successiva (Sì o No).

MultiSubnetFailover

Specifica se connettersi al listener del gruppo di disponibilità di un gruppo di disponibilità di SQL Server o a un'istanza del cluster di failover (Sì o No).

Netto

dbnmpntw indica Named Pipes e dbmssocn indica TCP/IP.

PWD

Password di accesso a SQL Server.

QueryLog_On

Specifica la registrazione di query con esecuzione prolungata (Sì o No).

QueryLogFile

Percorso completo e nome di un file da usare per registrare i dati nelle query con esecuzione prolungata.

QueryLogTime

Stringa di caratteri numerici che specifica la soglia (in millisecondi) per la registrazione di query con esecuzione prolungata.

QuotedId

Specifica se SQL Server usa le regole ISO relative all'uso delle virgolette nelle istruzioni SQL (Sì o No).

Regional

Specifica se il driver ODBC di SQL Server Native Client usa le impostazioni del client per convertire i dati di valuta, data o ora in dati carattere (Sì o No).

SaveFile

Nome di un file di origine dati ODBC in cui vengono salvati gli attributi della connessione corrente, se la connessione è riuscita.

Server

Il nome di un'istanza di SQL Server: Server della rete, un indirizzo IP o un alias di Configuration Manager.

ServerSPN

Nome SPN per il server.

StatsLog_On

Consente di acquisire i dati delle prestazioni del driver ODBC di SQL Server Native Client.

StatsLogFile

Percorso completo e nome di un file usato per registrare statistiche sulle prestazioni del driver ODBC di SQL Server Native Client.

Trusted_Connection

Specifica se la modalità di autenticazione di Windows o il nome utente o la password di SQL Server vengono usati per la convalida dell'accesso (Sì o No).

TrustServerCertificate

Se usato con Crittografa, abilita la crittografia con un certificato server autofirmato.

UID

Nome di accesso di SQL Server.

UseProcForPrepare

Parola chiave deprecata.

WSID

Identificatore della workstation, il nome di rete del computer in cui si trova l'applicazione.

Inizio pagina

Riepilogo delle parole chiave OLE DB

La tabella seguente riepiloga le parole chiave OLE DB riconosciute da SQL Server e il loro scopo. Solo un sottoinsieme viene riconosciuto da Access.

Parola chiave

Descrizione

Addr

Indirizzo di rete del server che esegue un'istanza di SQL Server.

APP

Stringa che identifica l'applicazione.

ApplicationIntent

Dichiara il tipo di carico di lavoro dell'applicazione quando ci si connette a un server (ReadOnly o ReadWrite).

AttachDBFileName

Nome del file primario di un database associabile.

AutoTranslate

Configura la conversione caratteri OEM/ANSI (True o False).

Timeout connessione

La quantità di tempo (in secondi) di attesa per il completamento dell'inizializzazione dell'origine dati.

Lingua corrente

Il nome della lingua di SQL Server.

Origine dati

Il nome di un'istanza di SQL Server nell'organizzazione.

Database

Il nome del database.

DataTypeCompatibility

Numero che indica la modalità di gestione dei tipi di dati che verrà usata.

Crittografa

Specifica se i dati devono essere crittografati prima di inviarli in rete (Sì o No).

FailoverPartner

Il nome del server di failover usato per il mirroring del database.

FailoverPartnerSPN

Nome dell'entità servizio per il partner di failover.

Catalogo iniziale

Il nome del database.

Nome file iniziale

Nome del file primario (incluso il percorso completo) di un database associabile.

Sicurezza integrata

Usato per l'autenticazione di Windows.

Lingua

Lingua di SQL Server.

MarsConn

Specifica più set di risultati attivi (MARS) nella connessione per SQL Server 2005 (9. x) o versione successiva (Sì o No).

Netto

La raccolta di rete usata per stabilire una connessione a un'istanza di SQL Server nell'organizzazione.

Indirizzo di rete

Indirizzo di rete di un'istanza di SQL Server nell'organizzazione.

PacketSize

Dimensioni del pacchetto di rete. L'impostazione predefinita è 4096.

Salvataggio permanente delle informazioni di sicurezza

Specifica se è abilitata la sicurezza permanente (True o False).

PersistSensitive

Specifica se è abilitata la riservatezza permanente (True o False).

Provider

Per SQL Server Native Client, dovrebbe essere SQLNCLI11.

PWD

Password di accesso a SQL Server.

Server

Il nome di un'istanza di SQL Server: Server della rete, un indirizzo IP o un alias di Configuration Manager.

ServerSPN

Nome SPN per il server.

Timeout

La quantità di tempo (in secondi) di attesa per il completamento dell'inizializzazione dell'origine dati.

Trusted_Connection

Specifica se la modalità di autenticazione di Windows o il nome utente o la password di SQL Server vengono usati per la convalida dell'accesso (Sì o No).

TrustServerCertificate

Specifica se un certificato server è convalidato (True o False).

UID

Nome di accesso di SQL Server.

Usa la crittografia per i dati

Specifica se i dati devono essere crittografati prima di inviarli in rete (True o False).

UseProcForPrepare

Parola chiave deprecata.

WSID

Identificatore della workstation, il nome di rete del computer in cui si trova l'applicazione.

Inizio pagina

Vedere anche

Amministrare origini dati ODBC

Gestione tabelle collegate

Amplia le tue competenze su Office
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×