È possibile usare Access come applicazione front-end e quindi eseguire il collegamento alle 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 e ODBC ritrovati.
Spesso, però, si vuole eseguire esplicitamente una query su un server di database. Questa operazione viene eseguita per migliorare le prestazioni. I server database hanno una potenza di elaborazione maggiore rispetto a un computer desktop ed è possibile restituire un sottoinsieme più piccolo di dati tramite la connessione di rete. Per eseguire una query in un server di database, usare una 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 i dati a un foglio dati, una maschera, un report o un controllo elenco, eseguire l'equivalente delle query di azione (istruzioni DML (istruzioni DML), chiamare stored procedure ed eseguire attività amministrative (istruzioni DDL (Data Definition Language)).
Avvertenza 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 viste 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 Azure SQL Server. - Selezionare 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 Visualizzazione SQL. - Se la finestra delle proprietà della query non viene visualizzata, premere F4 per aprirla.
- Nella finestra delle proprietà fare clic sulla casella della proprietà ODBC Connect 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 scegliere 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 .
Immettere la query nella visualizzazione SQL.
Nota: Esistono importanti differenze tra il linguaggio SQL per Access e SQL Server TSQL, in particolare per quanto riguarda la sintassi, i nomi delle funzioni e gli argomenti delle funzioni. Per ulteriori informazioni, vedere Confronto tra SQL per Access e T-SQL per SQL Server.
Suggerimento Creare prima la query TSQL in SQL Server Management Studio, quindi copiare e incollare il codice SQL nella visualizzazione SQL. Questo garantisce che la query abbia una sintassi corretta. Se non si dispone di un comodo accesso a un database di SQL Server, provare a installare sul desktop Microsoft SQL Server Express Edition, che supporta fino a 10 GB ed è un modo più semplice e gratuito per eseguire e controllare la migrazione.È consigliabile impostare proprietà correlate aggiuntive:
Restituisce i record Alcune istruzioni SQL restituiscono record, ad esempio SELECT, mentre altre no, come UPDATE. Se la query restituisce record, impostare questa proprietà su Yes; se la query non restituisce record, impostare questa proprietà su No.
Avvertenza 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, utilizzare 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 di tabella locali. Ad esempio, se vengono restituiti tre set di risultati, i nomi dei tavoli saranno: <nome> tabella locale, <nome>tabella locale 1, <nome>tabella locale 2.
Messaggi di log Specificare se restituire messaggi dal database SQL in una tabella dei messaggi di Access. Il nome della tabella ha il formato, username - nn, dove username è il nome di accesso dell'utente corrente e nn è un numero che inizia con 00.
Timeout ODBC Specifica il numero di secondi di attesa prima che si verifichi un errore di timeout quando viene eseguita una query. Il valore predefinito è 60 secondi. Potrebbero verificarsi ritardi a causa del traffico di rete o dell'uso intenso del server di database.
Max Records Specificare il numero massimo di record da restituire. Le risorse di sistema potrebbero essere limitate o potrebbe essere necessario verificare i risultati solo con una piccola quantità di dati.
Al termine dell'immissione della query, selezionare Esecuzione struttura>. La query viene inviata al server di database per l'elaborazione.
