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 Vad får du för felmeddelande då?
Line: 8
Char: 12
Error: Expected end of statement
Code: 800A0401
Source: Microsoft VBScript compilation error
@ndersMedlem sedan juni 200032 969 inlägg 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?
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 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
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
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:
- Skapa en tom Excel-fil med Excel och lägg det i samma mapp som ditt "program".
- Öppna Excel-filen som en databas med rätt connectionstring (http://www.connectionstrings.com/excel)
- Gör INSERTs mot din Excel-databas
- Spara filen
mvh