Importera data från Microsoft SQL Server till Microsoft Excel

Artikelöversättning Artikelöversättning
Artikel-id: 306125 - Visa produkter som artikeln gäller.
Visa alla | Dölj alla

På den här sidan

Sammanfattning

I den här artikeln finns stegvisa instruktioner för import av data till Microsoft Excel från Pubs-databasen, en exempeldatabas som ingår i Microsoft SQL Server.

ADO (ActiveX Data Objects) ger tillgång till alla typer av datakällor. Det är en platt objektmodell med få objekt. Huvudobjekten i ADO-objektmodellen är följande:
   Objekt          Beskrivning
   -----------------------------------------------------------------------
   Anslutning      Syftar på anslutningen till datakällan.
   Postuppsättning       Syftar på data som extraheras.
   Kommando         Syftar på en lagrad procedur eller SQL-uttryck som 
                   behöver köras.
				
Även om det finns många sätt att returnera en postuppsättning med hjälp av ADO, handlar denna artikel om anslutningen och postuppsättningsobjekten.

Krav

Du måste ha en lokal server med Microsoft SQL Server och Pubs-databasen.

Microsoft rekommenderar att du har kunskaper om följande:
  • Hur man skapar Visual Basic for Applications-procedurer i Office-program.
  • Hur man arbetar med objektvariabler.
  • Hur man arbetar med Excel-objekt.
  • RDBMS-begrepp (Relational Database Management Systems).
  • SELECT-uttryck i SQL (Structured Query Language).

Hur man refererar till ADO-objektbiblioteket

  1. Starta Excel. Öppna en ny arbetsbok och spara den som SQLExtract.xls.
  2. Starta Visual Basic Editor och markera ditt VBA-projekt.
  3. Klicka på ReferenserVerktyg-menyn.
  4. Markera kryssrutan för den senaste versionen av Microsoft ActiveX Data Objects Library.

Skapa anslutningen

  1. Infoga en ny modul i projektet.
  2. Skapa en ny subprocedur med namnet DataExtract.
  3. Skriv eller klistra in följande kod:
    ' Create a connection object.
    Dim cnPubs As ADODB.Connection
    Set cnPubs = New ADODB.Connection
    
    ' Provide the connection string.
    Dim strConn As String
    
    'Use the SQL Server OLE DB Provider.
    strConn = "PROVIDER=SQLOLEDB;"
    
    'Connect to the Pubs database on the local server.
    strConn = strConn & "DATA SOURCE=(local);INITIAL CATALOG=pubs;"
    
    'Use an integrated login.
    strConn = strConn & " INTEGRATED SECURITY=sspi;"
    
    'Now open the connection.
    cnPubs.Open strConn
    					

Extrahera data

Skriv eller klistra in följande kod för extrahering av posterna:
' Create a recordset object.
Dim rsPubs As ADODB.Recordset
Set rsPubs = New ADODB.Recordset

With rsPubs
	' Assign the Connection object.
	.ActiveConnection = cnPubs
	' Extract the required records.
	.Open "SELECT * FROM Authors"
	' Copy the records into cell A1 on Sheet1.
	Sheet1.Range("A1").CopyFromRecordset rsPubs
	
	' Tidy up
	.Close
End With

cnPubs.Close
Set rsPubs = Nothing
Set cnPubs = Nothing
				

Kontrollera att koden fungerar

  1. Kör koden.
  2. Växla till Excel och visa Blad1 i arbetsboken för att granska data.

Felsökning

Om koden låser sig och det visas ett meddelande om ett körfel kan databasservern vara nere. Du kan använda egenskapen ConnectionTimeout för att ange hur lång tid det tar att returnera ett meddelande om körfel. Ge den här egenskapen ett värde över noll. Om du anger värdet noll bryts anslutningen aldrig på grund av timeout. Standardvärdet är 15 sekunder.

Referenser

Du kan hitta ytterligare exempelkod genom att söka på följande Microsoft-webbplats:
http://www.msdn.microsoft.com/

Egenskaper

Artikel-id: 306125 - Senaste granskning: den 8 februari 2008 - Revision: 4.0
Informationen i denna artikel gäller:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
Nyckelord: 
kbhowtomaster KB306125

Ge feedback

 

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