Zum Inhalt springen

[VB6] Programm anhalten bis DB-Zugriff beendet ist


Wolle

Empfohlene Beiträge

Ich sitze gerade an einem Formular das aus einer dll raus gestartet wird. Im Form-Load-Ereignis will ich folgendes machen:

1. Den Inhalt einer Tabelle in einer Accessdb per ADO-Recordset löschen

2. Das Ergebnis einer Abfrage über 3 Tabellen in die leere Tabelle schreiben, ebenfalls per ADO-Recordset

3. Ein Flexgrid mit dem Inhalt dieser Tabelle füllen

Komischerweise werden die Daten aus der Abfrage nur bei jedem 2. Durchlauf in die Tabelle geschrieben, wobei der letzte Datensatz im Flexgrid (nicht in der Tabelle) fehlt. Lasse ich mir in der Schleife des Recordsets die Datensätze ausgeben, werden diese vollständig bearbeitet.

Zur Überprüfung habe ich hinter jeden dieser Schritte eine Messagebox gesetzt um die Ausführung anzuhalten. Warte ich mit dem bestätigen der Messagebox einige Sekunden, wird der Inhalt jedesmal korrekt in die Tabelle geschrieben und alle Datensätze in dem Flexgrid angezeigt.

Das Ganze sieht für mich so aus, als ob der Code schon weiter abgearbeitet wird, obwohl die Daten in der Access-Tabelle noch nicht vollständig aktualisiert sind.

Kann man irgendwie das weiterlaufen des Programms anhalten, bis die Datenbank vollständig aktualisiert ist? Oder könnte das an etwas anderem liegen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Versuchs mal mit einem Doevent zwischen deinen Anweisungen.

Normalerweise müsste er dann warten bis die Anweisungen bis zu diesem Zeitpunkt vollständig ausgeführt wurden.

Falls das Problem bei Access liegt, dann setz ein Timer dazwischen oder frag in ner Schleife nach bis alle Datensätze erstellt wurden.

Hoffe ich konnte dir weiterhelfen.

Blondi

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke schon mal. Das Doevents werde ich morgen probieren.

Einen Timer oder eine "Warteschleife" wollte ich eigentlich vermeiden, da die Anzahl der Datensätze die die Abfrage liefert sehr stark schwanken kann und ich unnötige Wartezeit, bei nur wenigen Datensätzen vermeiden will.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das DoEvents hat leider nichts geholfen.

Ich hab das jetzt aber hinbekommen. Wenn ich nach jedem Schritt das Recordset noch mal mit einer normalen Select-Anweisung öffne und direkt wieder schliesse werden die Schritte richtig ausgeführt.

Ist so zwar nicht sonderlich schön, aber wenigstens funktioniert es.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...