Hallo,
ich bin noch recht unerfahren in der Programmierung mit VBA. Momentan habe ich ein kleines Projekt bei dem es darum geht Bilddateien (svg-Dateien) von einem SQL-Server zu laden und in einem Verzeichnis auf meinem PC (Lokal) zu speichern.
Die Dateien sehen in etwa so aus 10XXXDE_DE es gibt also eine 5 Stellige Nummer gefolgt von zwei Länderkürzeln die für die Sprache der Bilder stehen (Text ist somit beides mal auf Deutsch "DE")
Dazu Wählt der Bediener zuerst per Excel-Filterung einige Themen aus und hat dann nur noch die Nummern der Bilder die zu seiner Auswahl treffen. Außerdem muss der Bediener noch eingeben welche beiden Sprachen er haben möchte.
Per Knopfdruck sollen die ausgewählten Bilder dann im festgelegten Verzeichnis abgespeichert werden.
Ich habe im Internet breits gefunden, was mit eigentlich die Abfrage zum SQL-Server erledigen sollte.
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 = "EXCEL-PC\EXCELDEVELOPER" ' Enter your server name here
Database_Name = "AdventureWorksLT2012" ' Enter your database name here
User_ID = "" ' enter your user ID here
Password = "" ' Enter your password here
SQLStr = "SELECT * FROM [SalesLT].[Customer]" ' 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
Mir ist aber nicht klar was ich bei
"SQLStr = "SELECT * FROM [SalesLT].[Customer]" ' Enter your SQL here" eintragen muss vorallem bei [SalesLT] und [Customer]
Außerdem weiß ich nicht wie ich den Rückgabewert (die Bild-Datei) in ein Verzeichnis speichere.
Wenn ich das richtig verstehe wird hier der Rückgabewert in irgendwelche Zellen bzw. Bereiche der Excel-Mappe geschrieben.
Es wäre echt cool wenn mir jemand weiterhelfen könnte, da ich mit meinen Programmierkenntnissen hier an Grenzen stoße.
Gruß
Dominik
|