Sådan importeres data fra Microsoft SQL Server til Microsoft Excel

Oversættelser af artikler Oversættelser af artikler
Artikel-id: 306125 - Få vist de produkter, som denne artikel refererer til.
Udvid alle | Skjul alle

På denne side

Sammenfatning

I denne trinvise vejledning beskrives, hvordan data importeres ind i Microsoft Excel fra Pubs-databasen, som er en eksempeldatabase, der følger med Microsoft SQL Server.

ADO (ActiveX-dataobjekter) giver adgang til alle typer datakilder. Det er en flad objektmodel med få objekter. De primære objekter i ADO-objektmodellen er:
   Objekt          Beskrivelse
   -----------------------------------------------------------------------
   Connection      Henviser til forbindelsen til datakilden.
   Recordset       Henviser til de udpakkede data.
   Command         Henviser til en lagret procedure eller SQL-sætninger, der 
                   skal køres.
				
Selvom der er mange måder at returnere et Recordset på ved hjælp af ADO, er det objekterne Connection og Recordset, der beskrives i denne artikel.

Krav

Du skal have en lokalserver, der kører Microsoft SQL Server, og som indeholder Pubs-databasen.

Det anbefales, at du har kendskab til følgende:
  • Oprettelse af Visual Basic for Applications-procedurer i Office-programmer.
  • Arbejde med objektvariabler.
  • Arbejde med Excel-objekter.
  • RDBMS-koncepter (Relational Database Management Systems).
  • SQL SELECT-sætninger (Structured Query Language).

Henvisning til ADO-objektbiblioteket

  1. Start Excel. Åbn en ny projektmappe, og gem den som SQLExtract.xls.
  2. Start Visual Basic Editor, og vælg dit VBA-projekt.
  3. Klik på References i menuen Tools.
  4. Marker afkrydsningsfeltet med den seneste version af Microsoft ActiveX Data Objects Library.

Oprettelse af forbindelse

  1. Indsæt et nyt modul i projektet.
  2. Opret en ny underprocedure med navnet DataExtract.
  3. Skriv eller indsæt følgende kode:
    ' Create a connection object.
    Dim Db 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
    					

Udpakning af data

Skriv eller indsæt følgende kode for at udpakke posterne:
' 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
				

Bekræftelse af, at koden fungerer

  1. Kør koden.
  2. Skift til Excel, og se Ark1 i projektmappen for at få vist dataene.

Fejlfinding

Hvis koden hænger, og du modtager en kørselsfejl, er databaseserveren muligvis gået ned. Du kan bruge egenskaben ConnectionTimeout til at kontrollere den tid, det tager at returnere en kørselsfejl. Angiv egenskaben til en værdi, der er større end nul. Hvis du angiver værdien til nul, får forbindelsen aldrig timeout. Standardværdien er 15 sekunder.

Referencer

Du kan finde flere eksempelkoder ved at søge på følgende Microsoft-websted:
http://www.msdn.microsoft.com/

Egenskaber

Artikel-id: 306125 - Seneste redigering: 8. februar 2008 - Redigering: 4.0
Oplysningerne i denne artikel gælder:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard
Nøgleord: 
kbhowtomaster KB306125

Send 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