Textausgabe wärend einer Abfrage als Infobox

Hallo,
ich möchte wärend eine Abfrage läuft, bei der ich die Bestätigungsbuttons deaktiviert habe, ein Infofenster geöffnet haben indem steht, welche Abfrage zur Zeit ausgeführt wird (ohne Button), so dass der Anwender nicht jedes mal etwas bestätigen muss.
Wie mach ich das?
Gibt es eine Direktausgabe, die aktiv bleibt, wärend eine Abfrage ausgeführt wird und die ich nach der Abfrage wieder schließe und z.B. durch eine neue Ausgabe ersetze?
Sollte ich mich nicht verständlich ausgedrückt haben oder noch Informationen fehlen, meldet Euch bitte.
Ich hoffe Ihr könnt mir helfen.
Danke
André

Hallo,

nein, sowas gibt es nicht gemäß Deinen Vorgaben.

Die eigentliche Frage wäre,warum soll denn der Anwender über irgendwelche akt. laufenden Abfragen informiert werden?

Gruß
Franz,DF6GL

Hallo,

nein, sowas gibt es nicht gemäß Deinen Vorgaben.

Die eigentliche Frage wäre,warum soll denn der Anwender über
irgendwelche akt. laufenden Abfragen informiert werden?

Da es mehrere lange laufenden Abfragen hintereinander sind soll der Anwender sehen können, welche der Abfragen gerade läuft.

Fällt Dir eine andere Möglichkeit ein, wie ich mein Problem lösen könnte?
Danke für Deine Hilfe

Hallo,

das ist keine Begründung für meine Frage…

Es gibt in Access keinen „Abfrageausführungsstatus“, auf den man zugreifen könnte. Die Jet-Engine liefert keine Rückmeldeinformation zum akt. Abarbeitungsstatus einer Abfrage.

WIE/WOMIT werden die Abfragen nacheinander ausgeführt?

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo,

das ist keine Begründung für meine Frage…

Upps, dann habe ich Dich wohl falsch verstanden

Es gibt in Access keinen „Abfrageausführungsstatus“, auf den
man zugreifen könnte. Die Jet-Engine liefert keine
Rückmeldeinformation zum akt. Abarbeitungsstatus einer
Abfrage.

WIE/WOMIT werden die Abfragen nacheinander ausgeführt?

Im Visual Basic Editor habe ich unter anderem diese Eintragungen:
DoCmd.OpenQuery „020 Abgabepfl_alle“, acNormal, acEdit
DoCmd.Close acQuery, „020 Abgabepfl_alle“ 'erstellt Tabelle „Abgabepflichtige“

DoCmd.OpenQuery „060 Abgabepfl_Herkunft“, acNormal, acEdit
DoCmd.Close acQuery, „060 Abgabepfl_Herkunft“ 'erstellt Tabelle „Abgabepflichtige mit Herkunft“

Davon habe ich 21 Stück die nacheinander ablaufen. Alle dauern unterschiedlich lange (ings. ca. 28 min.). Damit der Anwender nicht jede Abfrage und Tabellenerstellung bestätigen muss, habe ich den Befehl:
DoCmd.SetWarnings False
vorangestellt. Nun sieht der Anwender unten in der Statuszeile zwar, dass eine Abfrage ausgeführt wird, aber nicht welche. Somit kann er nicht abschätzen, wie lange der Vorgang noch dauert (und ob er sich noch einen Kaffee holen kann).
Ich habe schon versucht vor die eigentliche Abfrage einen Formularaufruf zu schalten, den ich nach der Ausführung wieder lösche und dann den nächsten starte. Das ist mir aber bei 21 Abfragen zu umständlich und auch nicht so elegant.
Kann man bei der MsgBox den o.k. Button nicht deaktivieren und die Box durch einen .close-Befehl schließen zu einem Zeitpunkt nach Ablauf der Abfrage, aber so, dass das Skript nicht angehalten wird?
Gibt es eine andere, elegantere Lösung als meine?
Danke
André

Hallo,

28 Min ??? Wenn das nicht eine an die Access-Grenzen gehende DB ist, liegt vermutlich ein Tabellenstruktur-Fehler vor…

Wie auch immer,

versuch mal sowas:

Sub irgendeineSub ()
Dim db as Database

Set Db= Currentdb
SysCmd(acSysCmdSetStatus, „020 Abgabepfl_alle läuft“ )
db.execute „020 Abgabepfl_alle“, dbFailOnError

SysCmd(acSysCmdSetStatus, „020 Abgabepfl_alle läuft“)
db.execute "Tabelle „Abgabepflichtige“, dbFailOnError

SysCmd(acSysCmdSetStatus, „Abgabepflichtige läuft“
db.execute „060 Abgabepfl_Herkunft“, dbFailOnError

SysCmd(acSysCmdSetStatus,„060 Abgabepfl_Herkunft läuft“
db.execute „Abgabepflichtige mit Herkunft“, dbFailOnError

SysCmd(acSysCmdSetStatus,„done“)

End Sub

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo,

28 Min ??? Wenn das nicht eine an die Access-Grenzen
gehende DB ist, liegt vermutlich ein Tabellenstruktur-Fehler
vor…

Das kann ich nicht beurteilen. Die lange Zeit hängt aber eher damit zusammen, dass Daten aus einer externen Datenbank (über ODBC verknüpft) gezogen werden, daraus neue Tabellen erstellt werden (über Zwischentabellen, die später im Skripps wieder gelöscht werden).

Wie auch immer,

versuch mal sowas:

Sub irgendeineSub ()

Dim db as Database

Set Db= Currentdb

SysCmd(acSysCmdSetStatus, „020 Abgabepfl_alle läuft“ )

db.execute „020 Abgabepfl_alle“, dbFailOnError

SysCmd(acSysCmdSetStatus, „020 Abgabepfl_alle läuft“)

db.execute "Tabelle „Abgabepflichtige“, dbFailOnError

SysCmd(acSysCmdSetStatus, „Abgabepflichtige läuft“

db.execute „060 Abgabepfl_Herkunft“, dbFailOnError

SysCmd(acSysCmdSetStatus,„060 Abgabepfl_Herkunft läuft“

db.execute „Abgabepflichtige mit Herkunft“, dbFailOnError

SysCmd(acSysCmdSetStatus,„done“)

End Sub

hat so nicht geklappt, aber so

varreturn = SysCmd(acSysCmdSetStatus, „060 Abgabepfl_Herkunft erstellen läuft“)
DoCmd.OpenQuery „060 Abgabepfl_Herkunft“, acNormal, acEdit
DoCmd.Close acQuery, „060 Abgabepfl_Herkunft“ 'erstellt Tabelle „Abgabepflichtige mit Herkunft“
varreturn = SysCmd(acSysCmdSetStatus, „060 done“)

gehts.
Nur leider wird diese Anzeige durch die Angabe „Abfrage läuft“ überschrieben. Die müsste ich jetz noch hinter die Syscmd-Angabe angehängt werden können, damit der Ablaufbalken für den jeweils gerade laufenden Prozess mit angezeigt wird.

Aber das wohl ein bisschen viel verlangt, oder.
Deine Idee hat mir aber schon ein bisschen geholfen.
Danke dafür!
Liebe Grüße
André

Hallo,

OpenQuery und Close sind FALSCH für Aktualisierungsabfragen.

Wenn über Access: Docmd.RunSQL „AktualisierungsAbfragename“

Wenn direkt in Jet: Currentdb.Execute „AktualisierungsAbfragename“