È possibile usare Access come applicazione front-end e quindi creare un collegamento a tabelle in un server back-end, ad esempio SQL Server. Per impostazione predefinita, la maggior parte delle query viene eseguita in locale nel motore di database ace di Access. In alcuni casi, Access può eseguire una query in remoto su SQL Server, a seconda della sintassi SQL e di altri fattori. Per altre informazioni, vedere "Motore di database JET versione 3.0: connettività ODBC" nei white paper jet riscoperti e ODBC.
Spesso, però, si vuole eseguire esplicitamente una query su un server di database. Questa operazione consente di migliorare le prestazioni: i server di database hanno una potenza di elaborazione superiore rispetto a un computer desktop e possono restituire un sottoinsieme di dati più piccolo tramite la connessione di rete. Per eseguire una query su un server di database, usare un query pass-through che è un'istruzione Transact SQL (TSQL) che si connette a SQL Server usando una stringa di connessione ODBC. Ad esempio, è possibile passare un'istruzione SELECT per restituire dati a un foglio dati, una maschera, un report o un controllo elenco, eseguire l'equivalente di istruzioni DML (Data Manipulation Language), chiamare stored procedure ed eseguire attività amministrative (istruzioni DDL, Data Definition Language).
Nota I risultati di una query pass-through sono di sola lettura. Per modificare direttamente i dati in un foglio dati o in una maschera, creare una tabella collegata a una visualizzazione indicizzata. Per altre informazioni, vedere Creare visualizzazioni indicizzate.
-
Connettersi a un database server.
Per altre informazioni sul collegamento a SQL Server, vedere Importare o collegare dati in un database di SQL Server e Collegare o importare dati da un database di SQL Server di Azure.
-
Seleziona Crea > Struttura query.
-
Se necessario, chiudere la finestra di dialogo Aggiungi tabelle (Mostra tabella in Access.
-
Selezionare Progettazione >Pass-Through.
Access nasconde la griglia di struttura della query e visualizza la visualizzazione SQL.
-
Se la finestra delle proprietà della query non viene visualizzata, premere F4 per visualizzarla.
-
Nella finestra delle proprietà fare clic sulla casella della proprietà Connessione ODBC Str e quindi eseguire una delle operazioni seguenti:
Per ottenere una stringa di connessione:
-
Nel riquadro di spostamento fare clic con il pulsante destro del mouse su una tabella collegata all'origine dati desiderata e selezionare Gestione tabelle collegate.
-
Nella finestra di dialogo Gestione tabelle collegate selezionare la casella di controllo dell'origine dati e quindi selezionare Modifica.
-
Nella finestra di dialogo Modifica collegamento copiare il testo nella casella Stringa di connessione .
-
Seleziona Crea .
-
Seguire le istruzioni visualizzate per creare un file DSN contenente le informazioni sulla stringa di connessione. Per la procedura dettagliata, vedere Importare o collegare dati in un database di SQL Server e Collegare o importare dati da un database SQL Server di Azure.
Dopo aver creato una connessione a un file DSN, la stringa di connessione ODBC viene archiviata internamente nel database di Access. Ecco un trucco per ottenere una copia della stringa:
-
Individuare un nome di tabella collegato nel riquadro di spostamento usando la connessione ODBC desiderata.
-
Premere CTRL+G. per aprire la finestra VBA Immediate.
-
Immetti: il codice seguente:
?CurrentDb.TableDefs("<table name>").Connect
Sostituire <nome di tabella> il nome della tabella collegata dal passaggio a.
-
Copiare la stringa restituita nella proprietà ODBC Connect Str .
-
-
Immettere la query nella visualizzazione SQL.
Nota: Esistono importanti differenze tra SQL per Access e TSQL di SQL Server, in particolare con la sintassi, i nomi delle funzioni e gli argomenti della funzione. Per ulteriori informazioni, vedere Confronto tra SQL per Access e T-SQL per SQL Server.
Suggerimento Compilare prima la query TSQL in SQL Server Management Studio, quindi copiare e incollare il codice SQL in visualizzazione SQL. In questo modo la query avrà la sintassi corretta. Se non si ha un comodo accesso a un database di SQL Server, è consigliabile installare l'edizione di Microsoft SQL Server Express sul desktop, che supporta fino a 10 GB ed è un modo semplice e gratuito per eseguire la migrazione.
-
È consigliabile impostare altre proprietà correlate:
-
Restituisce record Alcune istruzioni SQL restituiscono record, ad esempio SELECT, e altre no, ad esempio UPDATE. Se la query restituisce record, impostare questa proprietà su Sì; se la query non restituisce record, impostare questa proprietà su No.
Nota Le query pass-through possono restituire più set di risultati, ma in un foglio dati, una maschera, un report o una variabile recordset viene usato solo il primo set di risultati. Per recuperare più set di risultati, usare una query di creazione tabella come illustrato nell'esempio seguente:
SELECT <pass-through query name>.* INTO <local table name> FROM < pass-through query name >
È necessario usare l'asterisco (*) perché ogni set di risultati può avere colonne diverse. Ogni set di risultati viene salvato in una tabella separata e i numeri vengono aggiunti di conseguenza ai nomi delle tabelle locali. Ad esempio, se vengono restituiti tre set di risultati, i nomi di tabella saranno: <nome di tabella locale>, <nome di tabella locale>1 <nome di tabella locale>2.
-
Registra messaggi Specificare se restituire i messaggi dal database SQL in una tabella di messaggi di Access. Il nome della tabella ha il formato, nome utente – nn, dove nomeutente è il nome di accesso per l'utente corrente e nn è un numero che inizia da 00.
-
ODBC Timeout Specificare il numero di secondi di attesa prima che si verifichi un errore di timeout durante l'esecuzione di una query. Il valore predefinito è 60 secondi. Potrebbero verificarsi ritardi a causa del traffico di rete o dell'uso intensivo del server di database.
-
Max Record Specificare il numero massimo di record da restituire. È possibile che le risorse di sistema siano limitate o che si vogliano testare i risultati con solo una piccola quantità di dati.
-
-
Dopo aver immesso la query, selezionare Progettazione > Esegui. La query viene inviata al server di database per l'elaborazione.