Du er offline. Venter på, at der oprettes forbindelse til internettet igen

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

Support til Office 2003 er ophørt

Microsoft ophørte med at yde support til Office 2003 den 8. april 2014. Denne ændring har haft indflydelse på dine softwareopdateringer og sikkerhedsindstillinger. Se, hvad det betyder for dig, og hvordan du kan forblive beskyttet.

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.ConnectionSet 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.RecordsetSet rsPubs = New ADODB.RecordsetWith 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	.CloseEnd WithcnPubs.CloseSet rsPubs = NothingSet 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:
acc2002 xl2002 XL2003 XL2007
Egenskaber

Artikel-id: 306125 – Seneste udgave 02/08/2008 10:53:00 – Udgave 4.0

  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard
  • kbhowtomaster KB306125
Feedback
document.write("