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
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?
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"