Discussion:
TimerInterval setzen
(zu alt für eine Antwort)
Jörg Meier
2005-05-30 14:52:07 UTC
Permalink
Hallo NG,

ich habe ein ausgeblendetes Formular (A) mit dem TimerInterval = 120000.
Außerdem habe ich ein anderes Formular (B) geöffnet. Mit einer
Befehlsschaltfläche möchte ich das TimerInterval des Formulars auf 0 setzen.

Ich habe das mit

Private Sub button_click()
Forms!A.TimerInterval = 0
end sub

versucht.

Leider wird der Timer nicht gesetzt bzw. nicht verändert.

Was mache ich falsch?

Danke, Gruß

Jörg
Jörg Ackermann
2005-05-30 16:17:35 UTC
Permalink
Hi,
Post by Jörg Meier
ich habe ein ausgeblendetes Formular (A) mit dem TimerInterval =
120000. Außerdem habe ich ein anderes Formular (B) geöffnet. Mit einer
Befehlsschaltfläche möchte ich das TimerInterval des Formulars auf 0 setzen.
Ich habe das mit
Private Sub button_click()
Forms!A.TimerInterval = 0
end sub
versucht.
Leider wird der Timer nicht gesetzt bzw. nicht verändert.
Bist Du sicher?

mache mal testweise das:

Private Sub button_click()
Forms!A.TimerInterval = 0
Msgbox "Der TimerIntervall ist: " & Forms!A.TimerInterval
end sub

Gruß
Walther Lückemann
2005-05-30 16:22:04 UTC
Permalink
Hallo Jörg,

das kann ich gar nicht glauben, ich hab's gerade nachgestellt, bei mir funkts.

Wenn Du magst, dann mail mir doch das Beispiel wo's nicht geht, villeicht
seh ich was:

***@paibosoft.de

Walther
Post by Jörg Meier
Hallo NG,
ich habe ein ausgeblendetes Formular (A) mit dem TimerInterval = 120000.
Außerdem habe ich ein anderes Formular (B) geöffnet. Mit einer
Befehlsschaltfläche möchte ich das TimerInterval des Formulars auf 0 setzen.
Ich habe das mit
Private Sub button_click()
Forms!A.TimerInterval = 0
end sub
versucht.
Leider wird der Timer nicht gesetzt bzw. nicht verändert.
Was mache ich falsch?
Danke, Gruß
Jörg
lukorgprog
2005-05-30 19:02:01 UTC
Permalink
Post by Walther Lückemann
das kann ich gar nicht glauben, ich hab's gerade nachgestellt, bei mir funkts.
Und wo kriegt man den Timer-"Start" hin außer im Load?!
Abschalten kriege ich bei meinem Problem gut hin, nur das
Einschalten, den Run, den Start des Form_Timer-Ereignisses, den nicht.

Wie ist da zu verfahren?!

der+braune+Pelikan
++Frau Schiller
++KurtLukas#
Michael Zimmermann
2005-05-31 09:03:06 UTC
Permalink
Hallo!
Post by lukorgprog
der+braune+Pelikan
++Frau Schiller
++KurtLukas#
Welche Programmiersprache ist das?

Gruß aus Mainz
Michael, neugierig
Jörg Meier
2005-05-31 09:09:07 UTC
Permalink
Hallo,

da habe ich mich wohl unglücklich ausgedrückt.
Das TimerInterval wird gesetzt, aber wie "lukorgprog" geschrieben hat, liegt
das eigentlich Problem daran, dass das TimerInterval wohl nicht gestartet
wird.
In der OH habe ich gelesen, dass dies beim Load-Ereignis des Formulars
passiert.

Aber wie starte ich den Timer, wenn das Formular bereits geöffnet (somit
wohl auch geladen) und ausgeblendet ist?

Gibt es eine Funktion, Methode, etc. wie ich
- ein bereits geladenes Formular neu lade oder
- das TimerInterval anderweitig starte?

Danke, Gruß
Jörg
Michael Zimmermann
2005-05-31 09:44:59 UTC
Permalink
Hallo!
Post by Jörg Meier
da habe ich mich wohl unglücklich ausgedrückt.
Das TimerInterval wird gesetzt, aber wie "lukorgprog"
geschrieben hat, liegt das eigentlich Problem daran, dass
das TimerInterval wohl nicht gestartet wird.
In der OH habe ich gelesen, dass dies beim Load-Ereignis
des Formulars passiert.
Aber wie starte ich den Timer, wenn das Formular bereits
geöffnet (somit wohl auch geladen) und ausgeblendet ist?
Gibt es eine Funktion, Methode, etc. wie ich
- ein bereits geladenes Formular neu lade oder
- das TimerInterval anderweitig starte?
Wofür soll das denn eigentlich gut sein?

Wenn Du das TimerInterval auf 0 setzt, heißt das ja, daß
der Code eben nicht wiederholt wird. Solchen Code würde
ich in eine Prozedur schreiben, die in der
Timer-Ereignisprozedur einfach nicht aufgerufen wird.

Falls Du Code hast, der in Abhängigkeit von einer Bedingung
entweder periodisch laufen oder aber angehalten werden soll,
kannst Du die Ausführung einfach von einem Boolean-Flag
abhängig machen.

Auch für mehrere verschiedene Timer-Intervalle braucht's
nur einen Timer, der die kleinste erforderliche Auflösung
hat. Größere Intervalle ergeben sich daraus im Code mit
Ganzzahldivision.

Ich behaupte jetzt mal ganz vollmundig (und warte auf
Einspruch ;-) ), daß es grundsätzlich nur einen Zeitgeber,
der immer laufen kann, braucht und sich daraus jedes
gewünschte Zeitverhalten - auch synchron mehrere
verschiedene - mit klassischen Prozedurbefehlen und
etwas Arithmetik erzeugen läßt.

Ein nachträgliches Ändern des Intervalls wäre somit obsolet.

Gruß aus Mainz
Michael
stefan hoffmann
2005-05-31 10:01:51 UTC
Permalink
tach Michael,
Post by Michael Zimmermann
Ich behaupte jetzt mal ganz vollmundig (und warte auf
Einspruch ;-) ), daß es grundsätzlich nur einen Zeitgeber,
der immer laufen kann, braucht und sich daraus jedes
gewünschte Zeitverhalten - auch synchron mehrere
verschiedene - mit klassischen Prozedurbefehlen und
etwas Arithmetik erzeugen läßt.
Sprich er nicht mit vollem Munde.

btw, es gibt in den meisten Computersystemen nur einen Zeitgeber.
Post by Michael Zimmermann
Ein nachträgliches Ändern des Intervalls wäre somit obsolet.
Nehmen wir den Fall einer Accessanwendung an, die für einen Einsatz auf
der ISS vorgesehen ist.
Deren Bahnänderungen führen zu Geschwindigkeitsänderungen, welche
natürlich zu Zeitdilatation führen.
Um diese zu kompensieren, muß natürlich das (kgT) Intervall korrigiert
werden.

qed.

mfG
--> stefan <--
Michael Zimmermann
2005-05-31 11:58:18 UTC
Permalink
Hallo!
Post by stefan hoffmann
Post by Michael Zimmermann
Ich behaupte jetzt mal ganz vollmundig (und warte auf
Einspruch ;-) ), daß es grundsätzlich nur einen
Zeitgeber, der immer laufen kann, braucht und sich
daraus jedes gewünschte Zeitverhalten - auch synchron
mehrere verschiedene - mit klassischen
Prozedurbefehlen und etwas Arithmetik erzeugen läßt.
Sprich er nicht mit vollem Munde.
Ach, edler Herr, vergebt einem unwissenden Knecht sein
ungehobeltes Gebaren.
Post by stefan hoffmann
btw, es gibt in den meisten Computersystemen nur einen
Zeitgeber.
Korinthen... äh, bewundernswert akribischer Akkurateur!
Von dem braucht der Accesianer nur eine Instanz statt derer
viele. ;-)
Post by stefan hoffmann
Nehmen wir den Fall einer Accessanwendung an, die für
einen Einsatz auf der ISS vorgesehen ist.
Das können wir ausschließen. Mit Access-Anwendungen hätte
es da oben keine Pannen gegeben.
Post by stefan hoffmann
Deren Bahnänderungen führen zu
Geschwindigkeitsänderungen, welche natürlich zu
Zeitdilatation führen. Um diese zu kompensieren, muß
natürlich das (kgT)
Intervall korrigiert werden.
Papperlapapp! Das Intervall dehnt sich doch mit, so daß
ein Beobachter innerhalb desselben Inertialsystems von der
Dilatation gar nichts bemerkt.

Ein relativ bewegter Beobachter stellt bei dem zu steuernden
Prozeß und dem Timer zwar gegen seine eigene Uhr eine
Dilatation fest, aber untereinader bleiben der ISS-Timer
und die ISS-Toilettenspülung synchron.

Gruß aus Mainz
Michael
stefan hoffmann
2005-05-31 12:40:45 UTC
Permalink
tach Michael,
Post by Michael Zimmermann
Ach, edler Herr, vergebt einem unwissenden Knecht sein
ungehobeltes Gebaren.
So sei es ihm vergeben.
Post by Michael Zimmermann
Post by stefan hoffmann
btw, es gibt in den meisten Computersystemen nur einen
Zeitgeber.
Korinthen... äh, bewundernswert akribischer Akkurateur!
Von dem braucht der Accesianer nur eine Instanz statt derer
viele. ;-)
Ich bewunner moi Werk a.)
Post by Michael Zimmermann
Post by stefan hoffmann
Nehmen wir den Fall einer Accessanwendung an, die für
einen Einsatz auf der ISS vorgesehen ist.
Das können wir ausschließen. Mit Access-Anwendungen hätte
es da oben keine Pannen gegeben.
Post by stefan hoffmann
Deren Bahnänderungen führen zu
Geschwindigkeitsänderungen, welche natürlich zu
Zeitdilatation führen. Um diese zu kompensieren, muß natürlich das (kgT)
Intervall korrigiert werden.
Papperlapapp! Das Intervall dehnt sich doch mit, so daß
ein Beobachter innerhalb desselben Inertialsystems von der Dilatation
gar nichts bemerkt.
Wohl aber der mit unserer Anwendung generierte Fahrplan benötigt diese
Korrektur.
Post by Michael Zimmermann
Ein relativ bewegter Beobachter stellt bei dem zu steuernden
Prozeß und dem Timer zwar gegen seine eigene Uhr eine
Dilatation fest, aber untereinader bleiben der ISS-Timer
und die ISS-Toilettenspülung synchron.
Interessante Idee. Timer wird mit Toilettenspülung synchronisiert. Wie
taktlos.

mfG
--> stefan <--
--
Access-FAQ http://www.donkarl.com/
KnowHow.mdb http://www.freeaccess.de
Newbie-Info http://www.doerbandt.de/Access/Newbie.htm
Kurt Lukas OLDlukorgprog
2005-05-31 22:53:35 UTC
Permalink
...hier isss ja fey lustig...

Hallo, Guten Abend!

Das mit dem Timertrol ist langsam mehr und mehr unklar.

Wie kann man grundsätzlich den Form_Timer in Access
ansteuern, starten, beginnen lassen?!

1. Forms(1) öff.net Forms(2) bei einem User_click
2. Forms(2) soll dann Progressieren, solange Forms(1) noch
den Rest des Click-Codes abarbeitet(z.B. TreeView-Bestückungen)
3. Abarbeiten=fertig, dann TimerIntervall(Forms( ? ))=0

Idee?!
--
der+braune+Pelikan
++Frau Schiller
++KurtLukas#
Danke.
Jörg Meier
2005-05-31 10:09:12 UTC
Permalink
Hallo,

das ist eine ziemlich lange Geschichte :-)
Ich habe eine Frontend-Version für Benutzer und die gleiche für
Administratoren. Das soll auch so bleiben.
Die Version wird standardmäßig ausgeliefert, mit einem ausgeblendeten
Formular, dessen Timer auf 120000 steht. Da laufen einige Timerereignisse ab.
Ein Timer, für viele Aufgaben :-)

Aber wenn ein Admin eine bestimmte Pflegefunktion in seiner Frontend
auslöst, z.B. Komprimierung, dürfen bei genau dieser Frontend die
Timer-Ereignisse nicht ablaufen.
Der Admin soll aber ansonsten auch normal arbeiten können.

Ich möchte mein Vorgehen nicht groß ändern, da das schon gut überlegt ist.
Details würde diese NG sprengen.

Das mit dem Boolean-Flag sagt mir leider nichts.

Im Gesamten würde ich schon gerne bei meinem Vorgehen bleiben, den Timer im
Formular zu setzen / zu ändern und zu starten.

Geändert habe ich es ja, gestartet? Das ist mein Problem !

Mir fällt sonst nur ein, dass ich nach dem Timer setzen / ändern, das
Formular schließe und erneut öffne. Aber muss das so umständlich sein?

Danke, Gruß Jörg
Michael Zimmermann
2005-05-31 11:45:46 UTC
Permalink
Hallo!
Post by Jörg Meier
Das mit dem Boolean-Flag sagt mir leider nichts.
Public DeinFlag as Boolean

Private Sub Form_Timer()

If DeinFlag = True _
Then
'Code, der bei Timer ausgeführt werden soll
End If

End Sub

oder

Private Sub Form_Timer()

If DeinFlag = False Then Exit Sub
'Code, der bei Timer ausgeführt werden soll

End Sub

Gruß aus Mainz
Michael
Walther Lückemann
2005-05-31 10:33:01 UTC
Permalink
Hallo!

Also so ganz ohne die große Sinnfrage:


Also ich hab eine Form a, das timerintervall anfänglich auf 12000
eingestellt mit

Private Sub Form_Timer()
MsgBox ("jaja")
End Sub



Und eine Form b mit einem Textfeld „laenge“ mit

Private Sub laenge_AfterUpdate()

Forms!a.TimerInterval = Val(Me.laenge)

MsgBox Forms!a.TimerInterval


End Sub


Und jetzt kann ich das jaja beliebig in der Zeit steuern – es sei denn ich
mach’s so schnell, dass nur noch unterbrechen wirkt 

(Die mdb kann gern versendet werden)
Post by Michael Zimmermann
Hallo!
Post by Jörg Meier
da habe ich mich wohl unglücklich ausgedrückt.
Das TimerInterval wird gesetzt, aber wie "lukorgprog"
geschrieben hat, liegt das eigentlich Problem daran, dass
das TimerInterval wohl nicht gestartet wird.
In der OH habe ich gelesen, dass dies beim Load-Ereignis
des Formulars passiert.
Aber wie starte ich den Timer, wenn das Formular bereits
geöffnet (somit wohl auch geladen) und ausgeblendet ist?
Gibt es eine Funktion, Methode, etc. wie ich
- ein bereits geladenes Formular neu lade oder
- das TimerInterval anderweitig starte?
Wofür soll das denn eigentlich gut sein?
Wenn Du das TimerInterval auf 0 setzt, heißt das ja, daß
der Code eben nicht wiederholt wird. Solchen Code würde
ich in eine Prozedur schreiben, die in der
Timer-Ereignisprozedur einfach nicht aufgerufen wird.
Falls Du Code hast, der in Abhängigkeit von einer Bedingung
entweder periodisch laufen oder aber angehalten werden soll,
kannst Du die Ausführung einfach von einem Boolean-Flag
abhängig machen.
Auch für mehrere verschiedene Timer-Intervalle braucht's
nur einen Timer, der die kleinste erforderliche Auflösung
hat. Größere Intervalle ergeben sich daraus im Code mit
Ganzzahldivision.
Ich behaupte jetzt mal ganz vollmundig (und warte auf
Einspruch ;-) ), daß es grundsätzlich nur einen Zeitgeber,
der immer laufen kann, braucht und sich daraus jedes
gewünschte Zeitverhalten - auch synchron mehrere
verschiedene - mit klassischen Prozedurbefehlen und
etwas Arithmetik erzeugen läßt.
Ein nachträgliches Ändern des Intervalls wäre somit obsolet.
Gruß aus Mainz
Michael
Loading...