Toon posts:

[VBA/Access] Timer probs

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een form met daarop een selectbox met een aantal standaard vastgelegde datawaardes (vandaag/gisteren/vorigeweek etc) die zijn gekoppeld aan 2 tabelvelden: Eindmoment & Beginmoment

Dit werkt helemaal perfect op 1 ding na, ik heb ook een variabele periode waarbij jezelf 2 data moet invullen.

Nu komt het probleem, dit werkt niet i.c.m. de Timer op het form. Ik heb een timer ingesteld die om de paar seconde het form refreshed. In die tussentijd kan ik geen variabele waardes ingeven in de begin- en einddatumvelden. Hij geeft dan een error melding.

Hoe kan ik zorgen dat die Timer bij een variabele input even stopt en verder gaat wanneer de data is ingevuld?

Ik heb zitten denken aan een timer stop wanneer de Focus op beginmoment komt en een timer hervatting na invullen van de data.

Iemand een suggestie hoe dit te realiseren valt?

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
De timer wegpleuren is het beste, waarvoor heb je deze nodig?

Anders zou je met OnEnter een vlaggetje moeten zetten dat de refresh niet de periodes opnieuw invult, en OnExit het vlaggetje weer cleared.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
Ik gebruik de timer om te zorgen dat de data die wordt weergegeven ook daadwerkelijk actueel is.

Deze code werkt iig niet:

Private Sub Beginmoment_GotFocus()
Me.TimerInterval = 0
End Sub

Wat bedoel jij precies?

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
Een boolean die je als private module level variabele hebt gedeclareerd hoog maken als je in een van je vakjes klikt, en laag als je er weer uit gaat.

Je laat de timer gewoon doorlopen, maar bij het invullen kijk je eerst of het vlaggetje hoog is. Als ie hoog is, sla je het invullen van die tekstvakken over.

Ik moet eerlijk zeggen dat ik dit verre van mooi vind, maargoed.

[ Voor 10% gewijzigd door farlane op 03-05-2004 14:41 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Ik denk dat Farlane een VB-programmeur is. Daarin kun je een timer diablen door de interval op 0 te zetten, en ik dacth dat dat in Access niet kon.

Wat je zou kunnen doen is je timer op 1 seconde instellen, en zelf in de code van het timer event dan kijken of je interval van x seconden is afgelopen. Door middel van een variabele kun je dan het tellen van de seconden aan en uit zetten

dus zoiets als

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const Teller1Interval = 10

dim SecondenTeller as long
dim TimerEnabled as boolean

public sub Timer1Timer '
  if timerenabled then
    Secondenteller = secondenteller + 1
    if secondenteller >= Teller1Interval then
      timerenabled = false
      ' Hier de verwerking 
      timerenabled = true
    end if
  end if
end sub


Let er wel op dat deze code niet in 1 keer bruikbaar is, je zult hem nog wel even moeten ombouwen naar je eigen programma, maar het principe lijkt me duidelijk,

[ Voor 11% gewijzigd door Verwijderd op 03-05-2004 14:46 ]


Verwijderd

Topicstarter
Oke bedankt, het is inmiddels gelukt.

Bedankt voor jullie tips. Slot O-)

Verwijderd

Misschien is het voor latere generaties die dit topic bekijken ook handig om te zeggen HOE je het opgelost hebt.....

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
Verwijderd schreef op 03 mei 2004 @ 14:45:
Ik denk dat Farlane een VB-programmeur is. Daarin kun je een timer diablen door de interval op 0 te zetten, en ik dacth dat dat in Access niet kon.
Ik heb ook vermeld dat je de timer het beste gewoon kunt weghalen, of anders gewoon door laten lopen. Overigens zou ik mezelf geen VB programmeur noemen.... :o

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
Bedankt voor jullie tips!

Ik heb het uiteindelijk kunnen afvangen door de code (van Farlane) te verbasteren en toe te passen op mijn situatie.
Ik ben overigens wel aan het nakijken of de Timer echt nodig is of dat het niet gewoon met een andere evenat kan worden afgehandeld. Misschien een combi van load en afterupdate.
Pagina: 1