Hallo zusammen,
ich habe es bereits geschafft, meine Schnittstelle von Excel zu meiner MS SQL Datenbank herzustellen.
Die Werte werden auch per Update-Befehl in die Datenbank sauber geschrieben, wenn ich eine ID fest vergebe.
Ich wollte meinen Code jetzt optimieren, eine Art Loop bauen, weis aber nicht wie.
Generell möchte ich meine Tabellenblöcke mit je 250 Zeilen nur dann übergeben, wennich explizit auch "JA" aktiviert habe.
Das Feld prüfe ich relativ dazu vorher ab.
<pre>
Sub Kalkulation_speichern()
Set con = CreateObject("ADODB.Connection")
Set cmd = CreateObject("ADODB.Command")
Worksheets("eBay").Activate
If ActiveCell.Value = "JA" Then
con.ConnectionString = "Provider=SQLOLEDB.1;" _
& "Server=SERVER,PORTINSTANZ;" _
& "Database=DATENBANK;" _
& "User ID=USER;" _
& "Password=PASSWORT;" _
& "Integrated Security=SSPI;" _
& "DataTypeCompatibility=80;"
con.Open
Set cmd.ActiveConnection = con
cmd.CommandText = "UPDATE meine-tabelle SET mein-feld-db = '" & ActiveCell.Offset(3, -5).Value & "' WHERE mein-pk-db ='" & ActiveCell.Offset(3, -6).Value & "';"
cmd.Execute
cmd.CommandText = "UPDATE meine-tabelle SET mein-feld-db = '" & ActiveCell.Offset(4, -5).Value & "' WHERE mein-pk-db ='" & ActiveCell.Offset(4, -6).Value & "';"
cmd.Execute
cmd.CommandText = "UPDATE meine-tabelle SET mein-feld-db = '" & ActiveCell.Offset(5, -5).Value & "' WHERE mein-pk-db ='" & ActiveCell.Offset(5, -6).Value & "';"
cmd.Execute
..... bis 250 Zeilen .....
cmd.CommandText = "UPDATE meine-tabelle SET mein-feld-db = '" & ActiveCell.Offset(253, -5).Value & "' WHERE mein-pk-db ='" & ActiveCell.Offset(253, -6).Value & "';"
cmd.Execute
con.Close
Set con = Nothing
ActiveCell.Offset(0, -5).Value = "Stand: " + Format(Now, "dd.mm.yyyy - hh:mm") + " Uhr"
ActiveCell.Value = ""
Else
Exit Sub
End If
End Sub
</pre>
|