webForumDet fria alternativet

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

Programmeringur Programmering - Övrigt

7 svar · 1 714 visningar · startad av harry_boy

harry_boyMedlem sedan feb. 2003193 inlägg
#1

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
@ndersMedlem sedan juni 200032 969 inlägg
#2

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

harry_boyMedlem sedan feb. 2003193 inlägg
#3

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

@ndersMedlem sedan juni 200032 969 inlägg
#4

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?

harry_boyMedlem sedan feb. 2003193 inlägg
#5

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.

@ndersMedlem sedan juni 200032 969 inlägg
#6

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

harry_boyMedlem sedan feb. 2003193 inlägg
#7

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?

@ndersMedlem sedan juni 200032 969 inlägg
#8

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

134 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)