DetailPage-MSS-KB

Microsoft Knowledge Base

Identificativo articolo: 295646 - Ultima modifica: mercoledì 23 agosto 2006 - Revisione: 2.4

 

In questa pagina

Sommario

Poiché Microsoft Excel è uno strumento potente dati analisi, gli sviluppatori di applicazioni Visual Basic e VBA spesso si desiderano importare i dati in un foglio di lavoro a scopo di analisi di Excel. Questo articolo viene descritto l'approccio di ActiveX Data Objects (ADO) per questa attività di programmazione, utilizzando la sintassi specifiche di Microsoft Jet per determinati comandi SQL.

In questo articolo viene descritto soluzioni di programmazione e non descrive le funzionalità di importazione dei dati basato sul menu di Excel (tramite l'opzione Apri dal menu file ) o l'utilizzo di Microsoft Query (dall'opzione Carica dati esterni dal menu dati ).

Per ulteriori informazioni sulle soluzioni di programmazione complementari che utilizzano automazione di Excel anziché comandi SQL, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
246335  (http://support.microsoft.com/kb/246335/EN-US/ ) How to: trasferimento di dati da Recordset ADO a Excel con l'automazione

Informazioni

Negli esempi che seguono, cnSrc rappresenta una connessione di ADO aperta all'esempio di Northwind database Jet utilizzando il provider OLE DB di Jet 4.0.

Come copiare

È possibile utilizzare l'istruzione SELECT INTO per copiare dati da qualsiasi origine dati che Jet può leggere in qualsiasi destinazione dati, creare una nuova tabella (o, nel caso di un nuovo foglio di lavoro Excel) in tempo reale. Non utilizzare la sintassi di segno di dollaro, ad esempio [Sheet1 $], quando fa riferimento a un nome di foglio come la destinazione. Cartella di lavoro di destinazione può presenti o non; tuttavia, è necessario il foglio di destinazione non esiste ancora.

Esistono tre modi per scrivere il comando Copia Copia l'intera tabella Customers dal database Northwind di Microsoft Access in un nuovo foglio in una cartella di lavoro di Excel. Ogni sintassi richiede una singola istruzione SQL e crea le intestazioni di colonna nella prima riga del foglio di lavoro di destinazione.
  • Nell'esempio viene utilizzata la sintassi SELECT INTO:
    Dim strSQL As String
    strSQL = "SELECT * INTO [Excel 8.0;Database=" & App.Path & _ 
        "\book1.xls].[Sheet1] FROM Customers"
    cnSrc.Execute strSQL
    					
  • Nell'esempio viene utilizzata la sintassi SELECT INTO IN...:
    strSQL = "SELECT * INTO [Sheet1] IN '' [Excel 8.0;Database=" & App.Path & _
        "\book1.xls] FROM Customers"
    						
    in cui le informazioni del database di destinazione tra parentesi quadre sono precedute da una coppia di virgolette per l'argomento di tipo (la parte "Excel 8.0"), viene incluso all'interno delle parentesi quadre quando si utilizza questa sintassi vuota.
  • Nell'esempio viene utilizzata la sintassi alternativa per la clausola IN:
    strSQL = "SELECT * INTO [Sheet1] IN '" & App.Path & _
        "\book1.xls' 'Excel 8.0;' FROM Customers"
    						
    in cui l'argomento di tipo viene ora elencato separatamente dopo il percorso del file di destinazione.

L'aggiunta

È possibile utilizzare l'istruzione INSERT INTO... IN per accodare i dati da qualsiasi origine di dati Jet può essere letta da qualsiasi destinazione dati. Devono esistere sia la cartella di lavoro di destinazione e il foglio di lavoro. Ora che si fa riferimento a un foglio di lavoro esistente, è necessario utilizzare la sintassi standard segno di dollaro, ad esempio, [Sheet1 $], quando fa riferimento a un nome di foglio come la destinazione. Inoltre, le intestazioni di colonna devono essere già presente e in altre parole, questa istruzione può essere utilizzata solo per aggiungere una tabella esistente.

Esistono due modi per scrivere il comando di accodamento copia l'intera tabella Customers dal database Northwind in un foglio di lavoro Excel esistente, che già dispone le intestazioni di colonna appropriato.
  • Nell'esempio viene utilizzata la sintassi di INSERT INTO... IN:
    strSQL = "INSERT INTO [Sheet1$] IN '' [Excel 8.0;Database=" & App.Path & _
        "\book1.xls] SELECT * FROM Customers"
    						
    in cui le informazioni del database di destinazione tra parentesi quadre nuovamente sono precedute da una coppia vuota di offerte per l'argomento di tipo, che è ora incluso all'interno delle parentesi quadre.
  • Nell'esempio viene utilizzata la sintassi alternativa per la clausola IN:
    strSQL = "INSERT INTO [Sheet1$] IN '" & App.Path & _
        "\book1.xls' 'Excel 8.0;' SELECT * FROM Customers"
    					

Riferimenti

Per ulteriori informazioni sulla sintassi di questo specifico di Jet, consultare il file di Guida in linea di SQL Jet (JETSQL40.chm), soprattutto la Guida all'istruzione SELECT INTO, l'istruzione INSERT INTO e la clausola IN.

Le informazioni in questo articolo si applicano a:
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Data Access Components 2.0
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
  • Microsoft Excel 97 Standard Edition
Chiavi: 
kbmt kbdatabase kbhowto kbjet kbmdacnosweep KB295646 KbMtit
Traduzione automatica articoliTraduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell’articolo: 295646  (http://support.microsoft.com/kb/295646/en-us/ )
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Condividi
Altre opzioni per il supporto
Forum del supporto di Microsoft Community
Contattaci direttamente
Ricerca di un partner certificato Microsoft
Microsoft Store