Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
832to836
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
832to836
832to836
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Warteschleife in ACCESS

Warteschleife in ACCESS
04.01.2007 20:48:26
Uwe
Hallo Forum,
(hoffe der viele Text schreckt Euch nicht ab (:-)),
ich weiß das hier ist eigentlich ein Excel-Forum, aber ich fühl mich hier "zu Hause" und hoffe das mir auch mit meinem Access-Problem hier geholfen wird.
Oder vielleich bekomm ich auch einen Tip für ein gutes Access-Forum (so toll wie dieses Forum kann es natürlich nicht sein!). Also mein Problem:
Ich komm mit VBA in Excel ganz gut klar, muss aber jetzt eine Access-Datenbank erstellen. Auf einem Rechner in unserem Netzwerk soll auschließlich ein Formular dieser Datenbank immer angezeigt werden. In diesem Formular wird berechnet wieviel Zeit noch zur Bearbeitung eines Wareneingangs bleibt. Das muss jede Minute neu berechnet werden und evtl. auch neu sortiert. Da in VBA für Access Application.Calculate nicht geht und ich auch nichts ähnliches gefunden habe, habe ich ein Programm geschrieben, das das Formular alle 60 Sek, schließt und neu öffnet:
Option Compare Database
Option Explicit
Declare

Sub Sleep Lib "Kernel32.dll" (ByVal Schlafzeit As Long)

Sub PlasmaFormÖffnen()
Dim L As Long
Dim M As Long
DoCmd.OpenForm "frmAnzeigRestzeitLEER2"
Do
DoCmd.OpenForm "frmAnzeigRestzeit"
'For L = 1 To 10000
'    For M = 1 To 20000
'    Next M
'Next L
DoEvents
Sleep 60000
DoCmd.Close acForm, "frmAnzeigRestzeit", acSaveNo
DoEvents
Loop
End Sub

Das funktioniert auch so, ABER... : In dem Formular sind alle Felder mit einer bedingten Formatierung formatiert. Diese Formatierung wird nur ab und zu mal nach dem Öffnen angezeigt, meisten nicht. Wenn das Programm direkt auf dem PC läuft klappt es, im Netzwerk aber nur ab und zu. Ich denke der Sleep-Befehl (diese API Funktion habe ich hier aus dem Forum, nochmal Danke!) läßt dem Öffnen nicht genug Zeit für die Berechnung des Formats. Ich habe schon versucht mit einer leeren Zählschleife (s.o. Auskommentiert) und DoEvents an verschiedenen Stellen was auszurichten, aber es haut nicht hin.
Hat jemand einen Tip was ich da manchen kann. Gibt es in ACCESS (bin da nicht soooo fit) vielleicht eine andere Möglichkeit das Formular jede Minute neu zu berechnen? Oder wie kann ich dem Öffnen-Befehl "genug Zeit verschaffen".
Vielleicht habt ihr auch einen Tip, wie ich die Schleife ohne ESC anhalten kann? (Da knibbel ich noch dran, evtl mit einer Variablen, die umgestellt wird und dann: IF Variable = 1 then exit sub... oder so)
Ich freue mich auf jeden Fall über jeden Tip und werde auch bestimmt (allerdings wohl erst morgen) antworten.
Gruß
Uwe
(:o)

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Warteschleife in ACCESS (mit Zeilenumbruch)
04.01.2007 20:55:21
Uwe
Hi,
uuuppps, irgendwie fehlt der Zeilenumbruch, habe es mal manuele versucht.
Also nochmal der gleiche Text:
Hallo Forum,
(hoffe der viele Text schreckt Euch nicht ab (:-)),
ich weiß das hier ist eigentlich ein Excel-Forum,
aber ich fühl mich hier "zu Hause" und hoffe das mir auch
mit meinem Access-Problem hier geholfen wird.
Oder vielleich bekomm ich auch einen Tip für ein gutes Access-Forum
(so toll wie dieses Forum kann es natürlich nicht sein!).
Also mein Problem:
Ich komm mit VBA in Excel ganz gut klar, muss aber jetzt eine Access-Datenbank
erstellen. Auf einem Rechner in unserem Netzwerk soll auschließlich ein Formular
dieser Datenbank immer angezeigt werden.
In diesem Formular wird berechnet wieviel Zeit noch zur Bearbeitung eines
Wareneingangs bleibt. Das muss jede Minute neu berechnet werden
und evtl. auch neu sortiert.
Da in VBA für Access Application.Calculate nicht geht und
ich auch nichts ähnliches gefunden habe, habe ich ein Programm geschrieben,
das das Formular alle 60 Sek, schließt und neu öffnet:
Option Compare Database
Option Explicit
Declare

Sub Sleep Lib "Kernel32.dll" (ByVal Schlafzeit As Long)

Sub PlasmaFormÖffnen()
Dim L As Long
Dim M As Long
DoCmd.OpenForm "frmAnzeigRestzeitLEER2"
Do
DoCmd.OpenForm "frmAnzeigRestzeit"
'For L = 1 To 10000
'    For M = 1 To 20000
'    Next M
'Next L
DoEvents
Sleep 60000
DoCmd.Close acForm, "frmAnzeigRestzeit", acSaveNo
DoEvents
Loop
End Sub

Das funktioniert auch so, ABER... :
In dem Formular sind alle Felder mit einer bedingten Formatierung formatiert.
Diese Formatierung wird nur ab und zu mal nach dem Öffnen angezeigt, meisten nicht.
Wenn das Programm direkt auf dem PC läuft klappt es, im Netzwerk aber nur ab und zu.
Ich denke der Sleep-Befehl (diese API Funktion habe ich hier aus dem Forum,
nochmal Danke!) läßt dem Öffnen nicht genug Zeit für die Berechnung des Formats.
Ich habe schon versucht mit einer leeren Zählschleife (s.o. Auskommentiert) und
DoEvents an verschiedenen Stellen was auszurichten, aber es haut nicht hin.
Hat jemand einen Tip was ich da manchen kann.
Gibt es in ACCESS (bin da nicht soooo fit) vielleicht eine andere Möglichkeit
das Formular jede Minute neu zu berechnen?
Oder wie kann ich dem Öffnen-Befehl "genug Zeit verschaffen".
Vielleicht habt ihr auch einen Tip, wie ich die Schleife ohne ESC anhalten kann?
(Da knibbel ich noch dran, evtl mit einer Variablen, die umgestellt wird und dann:
IF Variable = 1 then exit sub... oder so)
Ich freue mich auf jeden Fall über jeden Tip und werde auch bestimmt
(allerdings wohl erst morgen) antworten.
Gruß
Uwe
(:o)
Anzeige
AW: Warteschleife in ACCESS
04.01.2007 21:06:47
Peter
Hallo Uwe,
im Access Forum von www.spotlight.de gibt es doch sehr pfiffige Helfer.
Hast du es da schon einmal versucht Hilfe zu bekommen?
Viele Grüße Peter
AW: Warteschleife in ACCESS
04.01.2007 21:25:35
Peter
Hallo Uwe,
vielleicht hilft dir das weiter:

Sub delay(zeit!)
Dim zeitl  As Variant
zeitl = Timer
Do
DoEvents
Loop Until (timer - zeitl > zeit
End Sub

So kann anderen Anwendungen ermöglicht werden, ihre 'Tätigkeit' fortzusetzen.
Wieviel Zeit du dem Makro zuteilst, solltest du ausprobieren.
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Warteschleife in ACCESS
05.01.2007 20:08:33
Uwe
Hi Peter,
der Tip mit dem Timer hilft mir auf jeden Fall weiter. Ich hatte es über application.ontime versucht, aber das kennt er in ACCESS nicht. Ich konnte es heute noch nicht ausgiebig testen, weil das Programm schon läuft (und bei uns heute mal wieder Chaos herrschte..(;-)), aber mit der Timer-Schleife scheint es auf jeden Fall besser zu klappen. Ich werde noch versuchen ganz auf die Sleep-Funktion zu verzichten und nur mit dem Timer zu arbeiten. Aber jetzt ist erstmal Wochenende... . Evtl werde ich auch nochmal in spotlight nachfragen ob es in Access eine eigene Wartefunktion gibt.
Ich bedanke mich auf jeden Fall vielmals für Deine Hilfe.
Gruß
Uwe
(:o)
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige