Wolle Geschrieben 6. Oktober 2003 Geschrieben 6. Oktober 2003 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? Zitieren
Blondi Geschrieben 6. Oktober 2003 Geschrieben 6. Oktober 2003 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 Zitieren
Wolle Geschrieben 6. Oktober 2003 Autor Geschrieben 6. Oktober 2003 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. Zitieren
Wolle Geschrieben 7. Oktober 2003 Autor Geschrieben 7. Oktober 2003 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. Zitieren
-roTekuGeL- Geschrieben 8. Oktober 2003 Geschrieben 8. Oktober 2003 Original geschrieben von Wolle Das DoEvents hat leider nichts geholfen. DoEvents sind eigentlich auch nur dafür da, Windows mit einem Programm das viel machen muss nicht einzufrieren... z.b. lässt das DoEvent zu das der Taskmanager auf Anweisung ausgeführt wird... Zitieren
Empfohlene Beiträge
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.