---
title: "Köra vbs-skript som exporterar från SQL-server till Excel"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/188585-köra-vbs-skript-som-exporterar-från-sql-server-till-excel"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "harry_boy"
published: "2011-12-14T00:58:52.000Z"
updated: "2011-12-14T07:59:30.000Z"
replies: 7
views: 1751
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/188585-köra-vbs-skript-som-exporterar-från-sql-server-till-excel"
---

# Köra vbs-skript som exporterar från SQL-server till Excel

## #1 — harry_boy, 2011-12-14T00:58Z

Jag skulle vilja göra ett skript som ansluter till SQL Server 2008 och sedan kör min sql-fråga och sedan returnerar värdet i en ny excelfil.

Hittade detta skript men fick felmeddelande på 8:onde raden (Dim Cn As ADODB.Connection).

Ja jag har skrivit in rätt databasuppgifter samt anv+lösen. Och även en sql-sats. Och även lagt till rätt Microsoft Active X DO.

```
Sub ADOExcelSQLServer() 
     ' Carl SQL Server Connection
     '
     ' FOR THIS CODE TO WORK
     ' In VBE you need to go Tools References and check Microsoft Active X Data Objects 2.x library
     '
     
    Dim Cn As ADODB.Connection 
    Dim Server_Name As String 
    Dim Database_Name As String 
    Dim User_ID As String 
    Dim Password As String 
    Dim SQLStr As String 
    Dim rs As ADODB.Recordset 
    Set rs = New ADODB.Recordset 
     
    Server_Name = "" ' Enter your server name here
    Database_Name = "" ' Enter your database name here
    User_ID = "" ' Enter your user ID here
    Password = "" ' Enter your password here
    SQLStr = "" ' Enter your SQL here
     
    Set Cn = New ADODB.Connection 
    Cn.Open "Driver={SQL Server};Server=" & Server_Name & ";Database=" & Database_Name & _ 
    ";Uid=" & User_ID & ";Pwd=" & Password & ";" 
     
    rs.Open SQLStr, Cn, adOpenStatic 
     ' Dump to spreadsheet
    With Worksheets("sheet1").Range("a1:z500") ' Enter your sheet name and range here
        .ClearContents 
        .CopyFromRecordset rs 
    End With 
     '            Tidy up
    rs.Close 
    Set rs = Nothing 
    Cn.Close 
    Set Cn = Nothing 
End Sub
```

Permalänk: https://www.webforum.nu/p/188585

## #2 — @nders, 2011-12-14T05:48Z

Vad får du för felmeddelande då?

Permalänk: https://www.webforum.nu/p/2289449

## #3 — harry_boy, 2011-12-14T06:21Z

Line: 8 
Char: 12
Error: Expected end of statement
Code: 800A0401
Source: Microsoft VBScript compilation error

Permalänk: https://www.webforum.nu/p/2289450

## #4 — @nders, 2011-12-14T06:26Z

Hur kör du det här? I VBScript kan du inte deklarera variabler till en viss typ, utan bara "Dim Cn" - men koden ser ut som att det är VBA. Var har du fått koden ifrån?

Permalänk: https://www.webforum.nu/p/2289451

## #5 — harry_boy, 2011-12-14T06:48Z

<http://www.ozgrid.com/forum/showthread.php?t=46893&p=238495#post238495>

Är jag fel ute? Jag har fått allt att funka via ms query i excel men jag vill inte anropa inifrån excel utan från ett skript alt litet program.

Permalänk: https://www.webforum.nu/p/2289452

## #6 — @nders, 2011-12-14T07:12Z

Det där är VBA - koden är alltså skriven för att köras "inifrån" ett exceldokument. Som du ser i koden så är ju inte ens "Worksheets" deklarerad. Ditt VBScript har alltså ingen aning om vad det är för någonting.

För att det ska fungera som ett VBScript så måste du droppa typdeklarationerna, och dessutom skapa ett Exceldokument i koden så du kan använda Worksheets och de inbyggda excel-funktionerna. Eller så skapar du en Excelfil direkt med ADO istället och använder SQL-frågor för att fylla filen med data.

Automatisering av Excel är ett helvete.

\- - - - -

Eftersom frågan har med med programmering än själva databaseriet att göra flyttar jag iväg den från "Databashanterare & SQL"

mvh

Permalänk: https://www.webforum.nu/p/2289453

## #7 — harry_boy, 2011-12-14T07:25Z

Ok min okunskap gör mig generad. 

Det känns som jag vill gå vägen "Eller så skapar du en Excelfil direkt med ADO istället och använder SQL-frågor för att fylla filen med data."

Finner jag även det i min beställa bok (<http://www.adlibris.com/se/product.aspx?isbn=1118002679>) som du rekommenderat tidigare. Eller vet du vad jag skall börja titta för att få mer info om detta?

Permalänk: https://www.webforum.nu/p/2289454

## #8 — @nders, 2011-12-14T07:59Z

> Finner jag även det i min beställa bok

Inte helt troligt. 

Förresten är det enklaste att göra så här tror jag:
1) Skapa en tom Excel-fil med Excel och lägg det i samma mapp som ditt "program".
2) Öppna Excel-filen som en databas med rätt connectionstring (<http://www.connectionstrings.com/excel>)
3) Gör INSERTs mot din Excel-databas
4) Spara filen

mvh

Permalänk: https://www.webforum.nu/p/2289455

---

Tråden på webben: https://www.webforum.nu/amne/programmering/188585-köra-vbs-skript-som-exporterar-från-sql-server-till-excel
