Thema Datum  Von Nutzer Rating
Antwort
Rot VBA - Werte in MS-SQL Datenbank schreibe
22.02.2022 18:49:52 CHGS
NotSolved
22.02.2022 19:16:47 Mase
NotSolved
22.02.2022 19:26:08 Gast15652
NotSolved

Ansicht des Beitrags:
Von:
CHGS
Datum:
22.02.2022 18:49:52
Views:
707
Rating: Antwort:
  Ja
Thema:
VBA - Werte in MS-SQL Datenbank schreibe

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>


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot VBA - Werte in MS-SQL Datenbank schreibe
22.02.2022 18:49:52 CHGS
NotSolved
22.02.2022 19:16:47 Mase
NotSolved
22.02.2022 19:26:08 Gast15652
NotSolved