Utilizzo ADOX con dati di Excel da Visual Basic o VBA

Traduzione articoli Traduzione articoli
Identificativo articolo: 303814 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Le estensioni di oggetti di dati ActiveX per Data Definition Language and Security (ADOX) offre agli sviluppatori di ActiveX Data Objects (ADO) le funzionalitÓ presenti in DAO (Data Access Objects) per gestire database, tabelle, campi e modificare altri oggetti di database a livello di programmazione e. Dopo il rilascio di Provider Microsoft OLE DB per Jet versione 4.0, che supporta i driver ISAM utilizzata di Microsoft Jet con database desktop diverso da Microsoft Access, gli sviluppatori ADO hanno potuto utilizzare ADO e ADOX con cartelle di lavoro di Microsoft Excel e fogli di lavoro.

Tuttavia, poichÚ un foglio di lavoro di Excel non Ŕ un normale database, ADO presenta alcune limitazioni quando viene utilizzato con Excel. in particolare, molti metodi ADOX non utilizzare o produrre risultati imprevisti quando vengono utilizzati con Excel. Questo articolo illustra molti dei limiti di ADOX ed Excel. Per ulteriori informazioni sull'utilizzo di ADO con Excel, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
257819Utilizzo di ADO con dati di Excel da Visual Basic o VBA
Questo articolo Ŕ suddiviso nelle seguenti sezioni:

Nota : il test per questo articolo Ŕ stato effettuato in Windows 2000 Server Service Pack 2 (SP2) con Microsoft Data Access Components (MDAC) 2.6 SP1, Microsoft Visual Basic 6 SP5 e Microsoft Excel 2002 (XP). In questo articolo pu˛ non riconoscere o discutere di differenze di comportamento che pu˛ essere visualizzata agli utenti con versioni diverse di Windows, MDAC, Visual Basic o Excel.

Informazioni

Cataloghi ADOX

Nel modello a oggetti ADOX, rappresenta l'oggetto di catalogo un database o, in caso di Excel, una cartella di lavoro.
  • ╚ possibile utilizzare una connessione di ADO oggetto o connessione una stringa per creare o aprire un oggetto Catalog . Nell'esempio di codice riportato di seguito illustra come aprire Book1.xls come un catalogo ADOX:
    Dim cat As ADOX.Catalog
    Set cat = New ADOX.Catalog
    cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & App.Path & "\book1.xls;Extended Properties=Excel 8.0"
    					
  • L'oggetto Catalog dispone di un metodo create ma non Ŕ un metodo Delete .

Creazione di un catalogo

Non Ŕ possibile utilizzare il metodo create dell'oggetto ADOX Catalog per creare una nuova cartella di lavoro di Excel. Se si tenta di eseguire questa operazione, Ŕ visualizzato il seguente messaggio di errore:
Operazione non Ŕ supportata per questo tipo di oggetto.
╚ tuttavia possibile creare una nuova cartella di lavoro di Excel specificando un nuovo nome di cartella di lavoro per il catalogo e aggiungere almeno una tabella del nuovo catalogo, utilizzando le tecniche descritti di seguito. Questo metodo crea una nuova cartella di lavoro con solo i fogli di lavoro che Ŕ stato creato come tabelle ADOX, mentre in altre parole, il numero predefinito di fogli vuoti specificato per una nuova cartella Excel nella finestra di dialogo Opzioni di Excel non verrÓ essere aggiunto.

Tabelle ADOX

L'oggetto ADOX tabella corrisponde a uno di oggetti di Excel (vale a dire un foglio di lavoro o un intervallo) possono fungere da contenitore per i dati.

Creazione di una tabella

Per creare nuove tabelle in Excel, Ŕ possibile utilizzare ADOX. PoichÚ non Ŕ possibile creare una tabella senza anche creazione di colonne, verrÓ visualizzato il codice di esempio nella sezione "ADOX Columns".
  • Creare una nuova tabella ADOX crea sia di un nuovo foglio di lavoro e di un nuovo intervallo di denominato nel nuovo foglio di lavoro con il nome specificato. Il nuovo intervallo denominato comprende solo le intestazioni di colonna. Ad esempio, se si crea una tabella denominata MyTable con due colonne, un intervallo denominato tabella, che Ŕ definita come tabella (foglio di lavoro)! $ A $ 1: $ B $ 1, viene creato anche.
  • ╚ possibile specificare un nome di tabella che include uno spazio, tuttavia, ADOX sostituito lo spazio di un carattere di sottolineatura i nomi di foglio di lavoro e l'intervallo Ŕ creare.
  • Il nuovo foglio di lavoro viene creato come l'ultimo foglio di cartella di lavoro, dopo il numero predefinito di fogli vuoti specificate in Opzioni di Excel per una nuova cartella di lavoro.
  • Se si tenta di creare una nuova tabella quando la cartella di lavoro Ŕ aperta in Excel, Ŕ visualizzato il seguente messaggio di errore:
    Errore non specificato.
  • Se si tenta di creare una tabella che non ha colonne definite, sembra avere esito positivo, ma in realtÓ non viene creato.
  • Se si tenta di modificare il nome di una tabella esistente, Ŕ visualizzato il seguente messaggio di errore:
    Operazione non Ŕ supportata per questo tipo di oggetto.

Eliminazione di una tabella

Non Ŕ possibile utilizzare ADOX per eliminare una tabella (foglio di lavoro) o denominato intervallo in Excel, o meno ADOX creato.
  • Se si tenta di eliminare il foglio di lavoro (MyTable $), sembra completata senza errori, ma il foglio di lavoro rimane nella cartella di lavoro. ╚ possibile chiamare il metodo Delete ripetutamente senza errori, ma non ha alcun effetto.
  • Se si tenta di eliminare l'intervallo (tabella), sembra completata senza errori, ma l'intervallo rimane nella cartella di lavoro. Tuttavia, se si tenta di eliminare l'intervallo di una seconda volta, viene visualizzato l'errore 3265:
    Impossibile trovare l'elemento nell'insieme corrispondente al nome richiesto o per ordinale.
  • Se si tenta di eliminare un intervallo denominato, inalterati la definizione dell'intervallo denominato, ma i dati nell'intervallo vengono eliminati.

Colonne ADOX

ADOX colonne corrispondono alle colonne o campi di un database e perfettamente corrispondono alle colonne di un foglio di lavoro di Excel.

Tipi di dati ADO utilizzati con Excel

ADO riconosca sei tipi di dati in un'origine dati Excel che Ŕ possibile utilizzare per creare colonne:

  • adDouble, digitare 5
  • adDate, immettere 7
  • adCurrency, digitare 6
  • adBoolean, digitare 11
  • adVarWChar, digitare 202
  • adLongVarWChar ("Nota"), digitare 203

Colonne in generale

  • ╚ possibile aggiungere altre colonne a una tabella creata in precedenza, purchÚ la tabella non contiene tutte le righe di dati.
  • ╚ possibile specificare i nomi di colonna includono spazi.
  • ADOX Crea sempre intestazioni di colonna sono precedute da una virgoletta singola ('), ad esempio, "F1," Col1 "Col2. Tuttavia, questo non causano un problema in un secondo momento perchÚ il nome viene recuperato senza le virgolette.

Creazione di colonne durante la creazione di una tabella

Creazione di colonne funziona meglio se questa operazione viene effettuata contemporaneamente una nuova tabella viene creata utilizzando ADOX.

Il codice riportato di seguito crea una nuova tabella (foglio di lavoro) che contiene due colonne (uno numerico e un testo):
    Dim cat As ADOX.Catalog
    Dim tbl As ADOX.Table
    Dim col As ADOX.Column
    Set cat = New ADOX.Catalog
    cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
	"Data Source=" & App.Path & "\book1.xls;Extended Properties=Excel 8.0"
    Set tbl = New ADOX.Table
    tbl.Name = "TestTable"
    Set col = New ADOX.Column
    With col
        .Name = "Col1"
        .Type = adDouble
    End With
    tbl.Columns.Append col
    Set col = Nothing
    Set col = New ADOX.Column
    With col
        .Name = "Col2"
        .Type = adVarWChar
    End With
    tbl.Columns.Append col
    cat.Tables.Append tbl
				

Creazione di colonne in un foglio di lavoro esistente

Accodamento di colonne a un preesistente, vuote del foglio di lavoro genera risultati anomali. Quando la prima colonna ADOX viene accodata all'insieme di colonne della tabella, ADOX crea un'intestazione di colonna denominata F1 nella colonna A del foglio di lavoro e quindi Crea nuova intestazione di colonna ADOX nel colonna B del foglio di lavoro. Di conseguenza, codice ADOX che aggiunge due nuove colonne comporta tre intestazioni di colonna. Se si tenta di eliminare questo indesiderato, prima colonna dall'insieme di colonne prima di accodare la prima colonna ADOX, sembra avere esito positivo, ma la colonna viene creata comunque.

Eliminazione di colonne

Non Ŕ possibile eliminare una colonna da una tabella ADOX in Excel.
  • Se la colonna non include dati, questo sembra completata senza errori, ma la colonna e l'intestazione di colonna rimangono.
  • Se la colonna contiene dati, l'operazione di eliminazione non riesce con il seguente messaggio di errore:
    Operazione non valida.

Modifica il tipo di dati di una colonna esistente

Dopo che una colonna Ŕ stata accodata a una tabella, se si tenta di impostare la proprietÓ Type a un tipo di dati diversi, Ŕ visualizzato il seguente messaggio di errore:
Operazione non consentita in questo contesto.

Aggiunta di dati a Excel tabelle e colonne

Quando si sta eseguendo codice ADO in Excel il test nell'ambiente di progettazione di Visual Basic, la prima volta che si esegue un'operazione di recordset, viene potrebbe essere visualizzato il seguente messaggio di errore:
Selezionare la sequenza di confronto non supportato dal sistema operativo.
╚ possibile ignorare questo messaggio di errore, questo errore non si verifica dopo l'applicazione viene compilata. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
246167PRB: Confronto sequenza errore apertura ADODB Recordset la prima volta da un file XLS di Excel

Aggiunta di dati in colonne di Excel create da ADOX

Quando si utilizza ADO per inserire o modificare i dati delle tabelle e colonne che si Ŕ creato in Excel utilizzando ADOX, ADO rispetta i tipi di dati specificato per le colonne, sebbene sia non deselezionare in cui queste informazioni vengono memorizzate.
  • Tutti i valori di stringa di testo vengono memorizzati preceduto da una virgoletta singola. Tuttavia, questo non causano un problema in un secondo momento perchÚ il valore viene recuperato senza le virgolette.
  • Se si tenta di inserire una stringa di testo in una colonna che viene definita come numerico o un numero in una colonna di testo, verrÓ visualizzato 80040e21 di errore:
    Pi¨-passaggio operazione generato errori. Verificare ogni valore di stato.

Aggiunta di dati in colonne di Excel ordinarie

Quando si utilizza ADO per inserire o modificare i dati in fogli di lavoro di Excel o intervalli non vengono creati o modificati utilizzando ADOX, limitazioni non vengono applicate al tipo di dati che Ŕ possibile inserire.
  • Le stringhe di testo vengono archiviate senza la virgoletta singola precedente.
  • I numeri vengono visualizzati allineato a sinistra. In Excel 2002, i numeri vengono contrassegnati con lo smart tag visualizza un avviso "I numeri memorizzati come testo". Ci˛ potrebbe causare un problema in un secondo momento quando si lavora con i dati, soprattutto se i dati sono stati archiviati in Excel per l'analisi numerico.

Utilizzando SQL CREATE, ALTER e DROP istruzioni

╚ possibile eseguire istruzioni DDL (Data Definition Language) di Microsoft SQL, ad esempio CREATE, ALTER e DROP su oggetti di database di Excel su una connessione di ADO per ottenere gli stessi risultati corrispondenti metodi ADOX descritti sopra.

Conclusione

  • Funzionamento ottimale di ADOX con Excel quando una nuova tabella e tutte le colonne vengono create nello stesso momento.
  • ADO ottimali con i dati di Excel quando i dati sono memorizzati in un foglio di lavoro viene creato utilizzando ADOX.

ProprietÓ

Identificativo articolo: 303814 - Ultima modifica: martedý 13 luglio 2004 - Revisione: 2.2
Le informazioni in questo articolo si applicano a:
  • Microsoft Data Access Components 2.0
  • Microsoft Data Access Components 2.1
  • Microsoft Data Access Components 2.5
  • Microsoft Data Access Components 2.6
  • Microsoft Data Access Components 2.7
Chiavi:á
kbmt kbdatabase kbhowto kbiisam KB303814 KbMtit
Traduzione 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: 303814
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.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com