Importere data fra Microsoft SQL Server til Microsoft Excel

Artikkeloversettelser Artikkeloversettelser
Artikkel-ID: 306125 - Vis produkter som denne artikkelen gjelder for.
Vis alt | Skjul alt

På denne siden

Sammendrag

Denne trinnvise instruksjonen beskriver hvordan du importerer data til Microsoft Excel fra Pub-databasen, en eksempeldatabase som er inkludert i Microsoft SQL Server.

ActiveX Data Objects (ADO) gir tilgang til alle typer datakilder. Det er en falt objektmodell med få objekter. Hovedobjektene i ADO-objektmodellen er:
   Objekt          Beskrivelse
   -----------------------------------------------------------------------
   Tilkobling      Refererer til koblingen til datakilden.
   Postsett        Refererer til data som er trukket ut.
   Kommando        Refererer til en lagret prosedyre eller SQL-setninger som 
                   må utføres.
				
Det er mange måter å returnere et postsett med ADO på, men denne artikkelen tar for seg objektene Tilkobling og Postsett.

Krav

Du må ha en lokal server som kjører Microsoft SQL Server og inneholder Pub-databasen.

Microsoft anbefaler at du har kunnskap om følgende:
  • Opprette VBA-prosedyrer i Office-programmer.
  • Jobbe med objektvariabler.
  • Jobbe med Excel-objekter.
  • Konsepter for RDBMS (Relational Database Management Systems)
  • SELECT-setninger for SQL (Structured Query Language).

Referanser til ADO-objektbiblioteket

  1. Start Excel. Åpne en ny arbeidsbok, og lagre den som SQLExtract.xls.
  2. Start Visual Basic Editor og velg VBA-prosjektet.
  3. Klikk ReferanserVerktøy-menyen.
  4. Klikk for å velge den nyeste versjonen av avmerkingsboksen Microsoft ActiveX Data Objects Library.

Opprette tilkoblingen

  1. Sett inn en ny modul i prosjektet.
  2. Opprett en ny delprosedyre kalt DataExtract.
  3. Skriv eller lim inn følgende kode:
    ' 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
    					

Trekk ut data

Skriv eller lim inn følgende kode for å trekke ut postene:
' 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
				

Kontroller at koden virker

  1. Kjør koden.
  2. Bytt til Excel og se på Ark1 i arbeidsboken for å vise dataen.

Feilsøking

Hvis koden henger og du får en kjøretidsfeil, kan databaseserveren være nede. Du kan bruke egenskapen ConnectionTimeout til å kontrollere hvor lang tid det tar å gi en kjøretidsfeil. Angi en verdi som er større enn null, for denne egenskapen. Hvis du angir verdien til null, blir tilkoblingen aldri tidsavbrutt. Standardverdien er 15 sekunder.

Referanser

Du kan finne flere eksempelkoder ved å søke på følgende webområde for Microsoft:
http://www.msdn.microsoft.com/

Egenskaper

Artikkel-ID: 306125 - Forrige gjennomgang: 8. februar 2008 - Gjennomgang: 4.0
Informasjonen i denne artikkelen gjelder:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
Nøkkelord: 
kbhowtomaster KB306125

Gi tilbakemelding

 

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