Aktualisierungsabfrage über VBA
SoeSchi
Gesendet: 25.02.21 16:23
Betreff: Aktualisierungsabfrage über VBA


Member

Beiträge: 9

Hallo,

ich möchte - recht banal - Werte in einer Tabelle austauschen. Per VBA werden zunächst 2 Hilfstabellen gefüllt, die eigentliche Arbeit soll am Ende des Codes eine Aktualisierungsabfrage erledigen:

 Set qry = cdb.QueryDefs('qupdMeineAbfrage')

qry.Parameters('p1') = TempVars(conUser).Value

On Error Resume Next

qry.Execute dbFailOnError

If Err.Number = 0 Then

    MsgBox "Die gewünschten Werte wurden ersetzt!", vbInformation, conAppName

Else

    MsgBox "Beim Ersetzen der Werte ist ein Fehler aufgetreten!", vbCritical, conAppName

End If

Problem: Die Abfrage wird zwar ohne Fehler ausgeführt, änder aber nichts an den Daten. Die selbe Abfrage - unmittelbar danach - per Hand ausgeführt, ändert die Daten genaus so wie beabsichtigt.

Da ich die Erfahrung gemacht habe, dass cdb.execute noch ausgeführt wird, während der Code  schon weiterläuft (was oftmals zu Problemen führt), habe ich den vorherlaufenden Code (Anfüge- und Aktualisierungsabfragen) in eine Transaktion verpackt (so dass sichergestellt ist, das er fertig abgearbeitet wurde. Ich habe auch diese Abfrage in eine Transaktion gepackt: wrk.CommitTrans wird ausgeführt, nur Daten werden nicht geändert.

Die Abfrage selbst verbindet über INNER JOINS 6 Tabellen und enthält - neben dem Parameter mit einem zu schreibenden Wert (s.o.) -nur noch ein Filterkriterium. Der Parameter wird übrigens richtig gesetzt. In einer Vorabfrage ist eine Funktion untergebracht, die ein ReplikationsID-Feld in einen String umwandelt.

Hat jemand eine Idee, wo hier das Problem liegen könnte?

Besten Dank schon mal vorab!

Top of the page Bottom of the page