Come recuperare una tabella da Access in Excel con DAO

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

Sommario

Nelle versioni di Microsoft Excel elencati in precedenza, Ŕ possibile utilizzare DAO (Data Access Objects) in Visual Basic, Applications Edition per recuperare una tabella da Microsoft Access.

Per fornire un esempio di come Ŕ possibile utilizzare DAO per recuperare una tabella da Microsoft Access, la macro descritta in questo articolo utilizza il database Northwind fornito con Microsoft Office Professional per Windows 95, versione 7.0 e Microsoft Office 97 Professional per Windows. Se selezionate le opzioni predefinite quando Ŕ installato Microsoft Office Professional per Windows 95, versione 7.0, il database si trova in:
   \MSOffice\Access\Samples\Northwind.mdb
				
se Ŕ stato selezionato le opzioni predefinite durante l'installazione di Microsoft Office 97 Professional per Windows, il database si trova:
   \Program Files\Microsoft Office\Office\Samples\Northwind.mdb
				
se il database Northwind si trova in una cartella diversa sul computer, sarÓ necessario modificare il codice fornito di seguito prima di eseguirla.

Per utilizzare DAO della macro, Ŕ necessario fare riferimento alla libreria di oggetti di Microsoft DAO o si venga visualizzato l'errore "definito dall'utente tipo non definito". Fare riferimento a questa libreria in Microsoft Excel versione 7.0, di attivare un foglio di modulo, scegliere Riferimenti dal menu Strumenti e selezionare l'opzione "Microsoft DAO 3.0 Object Library". Per fare riferimento la raccolta in versione di Microsoft Excel 97, Ŕ necessario scegliere Riferimenti dal menu Strumenti in Visual Basic Editor e verificare di "Microsoft DAO 3.5 Object Library".

Informazioni

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia espressa o implicita. Questo include, ma non Ŕ limitato a, le garanzie implicite di commerciabilitÓ o idoneitÓ per uno scopo specifico. Questo articolo si presuppone che conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug di procedure. Tecnici del supporto Microsoft possono spiegare la funzionalitÓ di una particolare procedura, ma in nessun sono caso a modificare questi esempi per fornire funzionalitÓ aggiuntive o creare procedure per soddisfare specifiche esigenze. Per recuperare una tabella da Microsoft Access, attenersi alla seguente procedura:

  1. Definire un oggetto database.
  2. Definire un oggetto Recordset.
  3. Consente di recuperare le intestazioni (se necessario).
  4. Recuperare i dati dalla tabella.
Dopo aver recuperati i dati, Ŕ necessario chiudere tutti gli oggetti che Ŕ stato aperto inviando comandi .Close.

Per recuperare a livello di programmazione di una tabella da Microsoft Access, utilizzare Visual Basic seguente codice, Applications Edition:
Sub GetTable()
'This sub will retrieve all the data in the "Customers" table in
'Northwind

   'Declare variables
   Dim Db As Database
   Dim Rs As Recordset
   Dim Ws As Object
   Dim i As Integer
   Dim Path as String

   'This line will define the Object "Ws" as Sheets("Sheet1")
   'The purpose of this is to save typing Sheets("Sheet1")
   'over and over again
   Set Ws = Sheets("Sheet1")

   'Set the Path to the database. This line is useful because
   'if your database is in another location, you just need to change
   'it here and the Path Variable will be used throughout the code
   Path = "c:\msoffice\access\samples\northwind.mdb"

   'This set of code will activate Sheet1 and clear any existing data
   'After clearing the data it will select cell A1
   Ws.Activate
   Range("A1").Activate
   Selection.CurrentRegion.Select
   Selection.ClearContents
   Range("A1").Select

   'Set the Database, and RecordSet  This Table exists in the database
   Set Db = Workspaces(0).OpenDatabase(Path, ReadOnly:=True)

   'This will set the RecordSet to all records in the Customers table
   Set Rs = Db.OpenRecordset("Customers")

   'You could instead set the RecordSet to, for example, the records
   'where the Country Code is "UK", without quotes. To do this, replace
   'the line above: Set Rs = Db.OpenRecordset("Customers") with the
   'following:
   '
   'Set Rs = _
   'Db.OpenRecordset("SELECT * FROM Customers WHERE Country = 'UK';")


   'This loop will collect the field names and place them in the first
   'row starting at "A1"
   For i = 0 To Rs.Fields.Count - 1
      Ws.Cells(1, i + 1).Value = Rs.Fields(i).Name
   Next I

   'The next line simply formats the headers to bold font
   Ws.Range(Ws.Cells(1, 1), Ws.Cells(1, Rs.Fields.Count)).Font.Bold=True

   'The next line will get the data from the recordset and copy it
   'into the Worksheet (Sheet1).
   Ws.Range("A2").CopyFromRecordset Rs

   'This next code set will just select the data region and
   'auto-fit the columns
   Sheets("Sheet1").Select
   Range("A1").Select
   Selection.CurrentRegion.Select
   Selection.Columns.AutoFit
   Range("A1").Select

   Rs.Close
   Db.Close
End Sub
				

Riferimenti

Per ulteriori informazioni sull'accesso ai dati, fare clic sulla scheda indice nella Guida di Microsoft Excel, digitare il testo riportato di seguito
accesso ai dati in DAO
e fare doppio clic sul testo selezionato per passare all'argomento "Accesso a database esterni con DAO".

ProprietÓ

Identificativo articolo: 146406 - Ultima modifica: mercoledý 11 ottobre 2006 - Revisione: 2.3
Le informazioni in questo articolo si applicano a:
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 95 Standard Edition
Chiavi:á
kbmt kbdtacode kbhowto kbinterop kbprogramming KB146406 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: 146406
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.
Dichiarazione di non responsabilitÓ per articoli della Microsoft Knowledge Base su prodotti non pi¨ supportati
Questo articolo Ŕ stato scritto sui prodotti per cui Microsoft non offre pi¨ supporto. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.

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