Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1892to1896
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ADODB Execute Return Code

ADODB Execute Return Code
24.08.2022 10:27:37
Guenter
Ich füge mit einem SQL-INSERT Statement Excel-Zellen per ADODB in eine Datenbank ein. Codeausschnitt:

Dim connection As new ADODB.connection
With connection
.ConnectionString =  "... " 'mein Connection String
.ConnectionTimeout = 10
.Open
If .state = 1 then 'Verbindungsaufbau erfolgreich
.Excecute (...) 'meine SQL Insert-Anweisung
Else
'Fehlermeldung, keine Verbindung
End if
End With
Das geht alles wunderbar. Meine Frage ist: Wie kann ich prüfen, od die Execute Methode erfolreich war oder beim Insert ein Fehler auftrat, z.B. falscher Datentyp für ein Attributs oder falscher Attributname?

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ADODB Execute Return Code
24.08.2022 12:48:54
Tobias
Hallo Günter,
wahrscheinlich über die connection.errors Collection, allerdings wirft bei mir direkt schon vba ein Fehler wenn das Insert nicht korrekt ist. Der Rest wäre dann reine Spekulation, vielleicht hilft dir das ja aber schon weiter.
Schöne Grüße
Tobias
AW: ADODB Execute Return Code
24.08.2022 17:11:55
Guenter
Hallo Tobias,
Danke für Deine Antwort. Leider liefert Connection.errors keine Information, ob die SQL-Anweisung erfolgreich durchgeführt wurde. Wenn z.B. ein Datentyp eines Attributs nicht korrekt ist, wird kein INSERT durchgeführt und keine Rückmeldung gegeben (errors.count = 0). Ich habe u.a. versucht, die SQL-Anweisung nicht über Connection.Execute, sondern über Command.Execute und Recordset.Execute durchzuführen. Das funktioniert (wenn auch mit mehr Parameter-Aufwand), aber im Fehlerfall konnte ich auch hier keinen Weg finden, den Fehler zu erkennen. Eine errors-Eigenschaft gibt es bei Command und RecordSet nicht.
Der einzige Weg scheint zu sein, den Datensatz nach dem Einfügen wieder einzulesen und zu vergleichen, ob er vorhanden und korrekt ist. Oder hat jemand einen anderen Weg gefunden? Übrigens die Datenbank ist SQL Server in Azure.
Viele Grüße
Günter
Anzeige
AW: ADODB Execute Return Code
25.08.2022 08:32:55
Tobias
Hallo Günter,
dann würde mir nur noch einfallen das du über Recordset.addnew und .update den Insert durchführst, so überprüft zumindest VBA ob der Typ und die Eingabe pro Feld jeweils zusammenpasst. Ansonsten wüsste ich nicht ob es eine andere Lösung gibt, daher würde ich die Frage mal noch als offen stehen lassen.
Schöne Grüße
Tobias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige