Jak importovat data z Microsoft SQL Server do aplikace Microsoft Excel

Souhrn

Tento podrobný návod popisuje, jak importovat data do aplikace Microsoft Excel z databáze Pubs ukázkové databáze, která je součástí Microsoft SQL Server.

ActiveX Data Objects (ADO) poskytují přístup k libovolný typ zdroje dat. Je plochý objektový model s několika objekty. Jsou hlavními objekty v modelu objektu ADO:

   Object          Description
-----------------------------------------------------------------------
Connection Refers to the connection to the data source.
Recordset Refers to the data extracted.
Command Refers to a stored procedure or SQL statements that
need to be executed.

Přestože existuje mnoho způsobů, jak vrátit sadu záznamů ADO pomocí, tento článek se soustřeďuje na objekty sady záznamů a připojení.

Požadavky

Musí mít místní server, systémem Microsoft SQL Server a databáze Pubs obsahující.

Společnost Microsoft doporučuje že mít znalosti o následující:
  • Vytváření Visual Basic pro aplikace postupy v aplikacích sady Office.
  • Práce s objektové proměnné.
  • Práce s objekty aplikace Excel.
  • Základní pojmy relační systémy správy databáze (RDBMS).
  • Strukturované příkazy SELECT jazyka SQL (Query).

Odkazování na knihovny objektů ADO

  1. Spuštění aplikace Excel. Otevřete nový sešit a uložte jej jako SQLExtract.xls.
  2. Spusťte Editor jazyka Visual Basic a vyberte projekt v jazyce VBA.
  3. V nabídce Nástroje klepněte na odkazy.
  4. Klepnutím zaškrtněte políčko Microsoft ActiveX Data objekty knihovny nejnovější verzi.

Vytvoření připojení

  1. Vložte nový modul do projektu.
  2. Vytvořte nové proceduru Sub nazývá DataExtract.
  3. Zadejte nebo vložte následující kód:
    ' 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

Extrahování dat

Zadejte nebo vložte následující kód, chcete-li extrahovat záznamy:
' 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

Ověření, zda kód funguje

  1. Spusťte kód.
  2. Přepněte do aplikace Excel a podívejte se na List1 v sešitu můžete zobrazit data.

Poradce při potížích

Pokud se váš kód zdá, že přestal reagovat a zobrazí se chybu běhu, databázový server může být nefunkční. Vlastnost ConnectionTimeout řízení doby trvání vrátit chybu běhu. Nastavte tuto vlastnost na hodnotu větší než nula. Pokud nastavíte hodnotu nula, nikdy časový limit připojení. Výchozí hodnota je 15 sekund.

Odkazy

Další ukázkový kód můžete najít pomocí vyhledávání na webu společnosti Microsoft:

Vlastnosti

ID článku: 306125 - Poslední kontrola: 20. 1. 2017 - Revize: 1

Microsoft Office Excel 2007, Microsoft Excel 2002 Standard Edition

Váš názor