Warteschleife in ACCESS
04.01.2007 20:48:26
Uwe
(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)