Creare una query pass-through

È possibile usare Access come applicazione front-end e quindi creare un collegamento alle tabelle in un server back-end, ad esempio SQL Server. Per impostazione predefinita, la maggior parte delle query viene eseguita localmente nel motore di database ACE di Access. In alcuni casi, Access può eseguire una query in remoto in SQL Server, a seconda della sintassi SQL e di altri fattori. Per altre informazioni, vedere "motore di database JET versione 3,0: connettività ODBC" in white paper su Jet e ODBC.

Spesso però si vuole eseguire una query in modo esplicito in un server di database. Questa operazione consente di migliorare le prestazioni: i server di database hanno una maggiore potenza di elaborazione rispetto a un computer desktop e si può restituire un sottoinsieme più piccolo di dati tramite la connessione di rete. Per eseguire una query in un server di database, utilizzare un query pass-through un'istruzione Transact SQL (TSQL) che si connette a SQL Server tramite 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 query di azione (DML), chiamare le stored procedure ed eseguire attività amministrative (definizione dei dati Istruzioni Language (DDL)).

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 in una visualizzazione indicizzata. Per altre informazioni, vedere creare visualizzazioni indicizzate.

  1. Connettersi a un database del server.

    Per altre informazioni sul collegamento a SQL Server, vedere importare o collegare dati in un database di SQL Server e creare un collegamento o importare dati da un database di Azure SQL Server.

  2. Seleziona Crea > Struttura query.

  3. Chiudere la finestra di dialogo Mostra tabella.

  4. Selezionare progettazione >pass-through.

    Access nasconde la griglia di struttura della query e visualizza la visualizzazione SQL.

  5. Se la finestra delle proprietà della query non viene visualizzata, premere F4 per visualizzarla.

  6. Nella finestra delle proprietà fare clic sulla casella della proprietà Connetti Str ODBC e quindi eseguire una delle operazioni seguenti:

    Per ottenere una stringa di connessione:

    1. 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.

    2. Nella finestra di dialogo Gestione tabelle collegate selezionare la casella di controllo dell'origine dati e quindi selezionare modifica.

    3. Nella finestra di dialogo Modifica collegamento copiare il testo nella casella stringa di connessione .

    1. Selezionare compila Pulsante Generatore .

    2. Seguire le istruzioni 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 di Azure SQL Server.

    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 seguente:

    1. Individuare il nome di una tabella collegata nel riquadro di spostamento usando la connessione ODBC desiderata.

    2. Premere CTRL + G. per aprire la finestra immediata di VBA.

    3. Invio: il codice seguente:

      ?CurrentDb.TableDefs("<table name>").Connect

      Ma sostituisci <nome tabella> il nome della tabella collegata dal passaggio a.

    4. Copiare la stringa restituita nella proprietà ODBC Connect Str .

  7. Immettere la query in visualizzazione SQL.

    Nota   Esistono differenze importanti tra SQL di Access e SQL Server TSQL, in particolare con sintassi, nomi di funzioni e argomenti di funzione. Per altre informazioni, vedere confronto tra SQL di Access e SQL Server TSQL.

    Suggerimento    Creare prima di tutto la query TSQL in SQL Server Management Studio, quindi copiare e incollare il codice SQL in visualizzazione SQL. Questa operazione garantisce la sintassi corretta per la query. Se non si ha un comodo accesso a un database di SQL Server, è consigliabile installare Microsoft SQL Server Express Edition sul desktop, che supporta fino a 10 GB ed è un modo gratuito e più semplice per eseguire la migrazione e verificare la propria espansione.

  8. Valutare l'impostazione di altre proprietà correlate:

    • Restituisce i record     Alcune istruzioni SQL restituiscono record, ad esempio SELECT, e altre ancora non, ad esempio UPDATE. Se la query restituisce i record, impostare la proprietà su . Se la query non restituisce record, imposta 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 accodati ai nomi di tabella locali di conseguenza. Ad esempio, se vengono restituiti tre set di risultati, i nomi delle tabelle saranno: <nome di tabella locale>, <nome di tabella locale>1, <nome di tabella locale>2.

    • Registrare i messaggi    Specificare se restituire i messaggi dal database SQL in una tabella messaggi di Access. Il nome della tabella ha il formato, nomeutente – nn, dove username è il nome di accesso per l'utente corrente e nn è un numero a partire da 00.

    • Timeout ODBC    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 dovuti al traffico di rete o a un uso intensivo del server di database.

    • Record max    Specificare il numero massimo di record da restituire. Potresti avere risorse di sistema limitate o vuoi testare i risultati con solo una piccola quantità di dati.

  9. Al termine dell'immissione della query, selezionare progettazione > Esegui. La query viene inviata al server di database per l'elaborazione.

Nota:  Questa pagina è stata tradotta automaticamente e potrebbe contenere errori di grammatica o imprecisioni. L'intento è quello di rendere fruibile il contenuto. Queste informazioni sono risultate utili' Questo è l'articolo in inglese per riferimento.

Vedere anche

Riferimenti a Transact-SQL

Query con Transact-SQL

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.

×