VBS-ODBC-Verbindung-Insert-wird nicht ausgefuehrt
Hallo liebe Administrator-Gemeinde,
ich habe ein Problem mit einem VB-Script (ich hoffe, da bin ich hier an der richtigen Stelle, obwohl der Bereich ausdrücklich VBA heißt).
In dem Script wird über eine ODBC-Schnittstelle eine Verbindung zu einer Access-Datenbank aufgebaut.
In der Datenbank sind 2 Tabellen enthalten.
Als erstes wird in dem Script die Verbindung wie folgt aufgebaut:
Später wird ein Datensatz aus einer der Tabellen ausgelesen:
Bis hierher funktioniert auch alles wunderbar.
Anschließend wird eine INSERT-Anweisung in einer Variable (SQuerry) gespeichert. Diese soll wie folgt ausgeführt werden:
Die Insertanweisung (SQuerry) lasse ich mir mittlerweile zu testzwecken auch in eine Textdatei schreiben.
Kopiere ich die Anweisung und führe sie direkt in der Datenbank über ein Querry aus, wird der Datensatz auch korrekt eingetragen.
Mich wundert nun, dass 1.) Die Verbindung zur Datenbank funktioniert, 2.) der Insert-Befehlt funktioniert aber 3.) nicht beides zusammen?! O.o
Das Script läuft auch komplett ohne Fehler durch und ich weiß nicht mehr, wo/was ich noch suchen soll.
Ich hoffe ihr könnt mir weiter helfen und verbleibe mit freundlichem Gruß,
Huan90
p.s. Die Insertanweisung ist mit Leerzeichen 1468 Zeichen lang.
ich habe ein Problem mit einem VB-Script (ich hoffe, da bin ich hier an der richtigen Stelle, obwohl der Bereich ausdrücklich VBA heißt).
In dem Script wird über eine ODBC-Schnittstelle eine Verbindung zu einer Access-Datenbank aufgebaut.
In der Datenbank sind 2 Tabellen enthalten.
Als erstes wird in dem Script die Verbindung wie folgt aufgebaut:
cnStr = "Provider=MSDASQL;DSN=XYZ;UID=;PWD=;"
Set cn = CreateObject("ADODB.Connection")
cn.ConnectionString = cnStr
cn.Open
Set ac = CreateObject("ADODB.Command")
Set rs = CreateObject("ADODB.RecordSet")
Später wird ein Datensatz aus einer der Tabellen ausgelesen:
SQuery = "SELECT * FROM SAP_XYZ WHERE Linie = " & linie & " And Status = 1"
rs.OPEN SQuery,cn
Set rs = cn.Execute(SQuery)
Bis hierher funktioniert auch alles wunderbar.
Anschließend wird eine INSERT-Anweisung in einer Variable (SQuerry) gespeichert. Diese soll wie folgt ausgeführt werden:
ac.ActiveConnection = cn
ac.CommandText = SQuery
ac.Execute
Die Insertanweisung (SQuerry) lasse ich mir mittlerweile zu testzwecken auch in eine Textdatei schreiben.
Kopiere ich die Anweisung und führe sie direkt in der Datenbank über ein Querry aus, wird der Datensatz auch korrekt eingetragen.
Mich wundert nun, dass 1.) Die Verbindung zur Datenbank funktioniert, 2.) der Insert-Befehlt funktioniert aber 3.) nicht beides zusammen?! O.o
Das Script läuft auch komplett ohne Fehler durch und ich weiß nicht mehr, wo/was ich noch suchen soll.
Ich hoffe ihr könnt mir weiter helfen und verbleibe mit freundlichem Gruß,
Huan90
p.s. Die Insertanweisung ist mit Leerzeichen 1468 Zeichen lang.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 261426
Url: https://administrator.de/forum/vbs-odbc-verbindung-insert-wird-nicht-ausgefuehrt-261426.html
Ausgedruckt am: 18.05.2025 um 23:05 Uhr
5 Kommentare
Neuester Kommentar

Moin,
dann liegt der Fehler vermutlich in der Insert-Anweisung. Eine Query aus Access kann nicht immer 1zu1 aus Access in den Code übernommen werden, deswegen ist eine Analyse hier ohne deine Insert-Query sehr schwer.
Gruß jodel32
dann liegt der Fehler vermutlich in der Insert-Anweisung. Eine Query aus Access kann nicht immer 1zu1 aus Access in den Code übernommen werden, deswegen ist eine Analyse hier ohne deine Insert-Query sehr schwer.
Gruß jodel32
Hi,
Code-Tags verwenden!
Haste schon mal versucht, die Connection zu schließen und vor dem INSERT eine neue aufzubauen?
Schon mal den Weg über die Recordset-Methoden versucht?
Allerdings musst Du dann das Recordset schreibbar öffnen.
E.
Code-Tags verwenden!
Haste schon mal versucht, die Connection zu schließen und vor dem INSERT eine neue aufzubauen?
Schon mal den Weg über die Recordset-Methoden versucht?
rs.AddNew
rs.Fields("Field1").Value = Value1
rs.Fields("Field2").Value = Value2
...
rs.Update
E.
