Loading in Access

Status
Niet open voor verdere reacties.

Thomassoft

Verenigingslid
Lid geworden
6 jul 2010
Berichten
130
L.S.
Zie eerst: http://www.helpmij.nl/forum/showthr...-na-10-seconden-verder-naar-het-volgende-form
Ik heb van de vraag hierboven het loding component al ik een nieuw formulier staan. Ik wil dat na het klikken op een knop dit formulier 5 seconden komt met het bewegende balkje. Hierna moet het menu formulier verschijnen. Wat moet ik nu met dat formulier en component doen zodat het 5 seconden wordt weergegeven na inloggen (als er op de knop is geklikt) het loading balkje komt en dan het menu.

Kan iemand het me iets duidelijker uitleggen.........

Al vast bedankt.
 
Zonder voorbeeldje wordt het lastig om te zien hoever je bent gekomen, want de aanwijzingen in het linkje spreken redelijk voor zich. Maar het zou er zo uit kunnen zien:

Code:
Private Sub Form_Timer()
Dim i As Integer
Dim bChk As Boolean

For i = 1 To 10
    Me.ProgressBar.Value = Me.ProgressBar.Value + 10
    PauseTime = 1    ' Tijdsduur instellen.
    Start = Timer    ' Aanvangstijd instellen.
    Do While Timer < Start + PauseTime
        DoEvents    ' Overdragen aan andere processen.
    Loop
Next i
If Me.ProgressBar.Value >= Me.ProgressBar.Max Then
    DoCmd.Close acForm, Me.Form.Name
    DoCmd.OpenForm "fKruistabel"
End If
End Sub

Deze code staat op je pauzeformulier, waarbij ik de progressbar dus ProgressBar heb genoemd. Zet de Timer op 1000, en de Max waarde van de Progressbar op 50 o.i.d. als je ongeveer 5 seconde wilt pauzeren.
Uiteraard ook de namen van de formulieren nog aanpassen...
 
HElp

Michel,
Bedankt! Het is me alleen nog niet gelukt. Ik heb het script geplekt onder timer van het formulier. Ook zijn de formulier namen aangepast en heb ik van ProgressBar ProgressBar0 gemaakt. Als ik het zormulier open zie ik alleen maar een grijs vlakje. Ik zal bij mijn berichtje de db meesturen, zou jij er e.v.t. even naar willen kijken/verbeteren en mij vertellen wat er fout ging?

Al vast heel erg bedankt.

File: https://www.dropbox.com/s/59sz4fhmgp3ieqr/PIMS2012v1helpmij.zip?m
 
Je was er bijna, maar je maakte een typfoutje (vermoed ik).

Code:
For i = 1 To 10
    Me.ProgressBar0.Value = Me.ProgressBar[B][COLOR="#FF0000"]0[/COLOR][/B].Value + 10
    PauseTime = 1    ' Tijdsduur instellen.
    Start = Timer    ' Aanvangstijd instellen.
    Do While Timer < Start + PauseTime
        DoEvents    ' Overdragen aan andere processen.
    Loop
Next i

En je had nog geen Timerinterval ingegesteld op je Progressbar formulier. En zolang daar de (standaard)waarde 0 staat, zal de bar nooit gaan lopen.
 
Bij de Gebeurtenissen. Onder de gebeurtenis <Bij Timer> die je al gemaakt hebt.
 
Timer??

Daar zit nu dat script van jou onder maar hij loopt nog steeds niet.
Onder de timer staat dat script van jou, zoals je had gezien in de db, met de aanpassing die jij in rood had aangegeven. Waar moet ik dan in het script de timer zetten. Ik wil de timer op 5 of 7 sec hebben en dan dat de timer sluit en het formulier menu opent.
 
De Tijdinstelling is een getal. Niks meer en niks minder. Hoe hoger het getal, hoe langzamer de timer loopt. De code heb je, en die werkt :) Ik zou zeggen: experimenteer wat met de getallen.
Overigens zou ik, als ik zie wat de bedoeling is van je progerssbar formulier, daar ogenblikkelijk vanaf stappen, want het voegt niks toe, behalve dat je de gebruikers dwingt om te wachten op niks. En in mijn ogen maak je daar geen vrienden mee...
 
Krijg nog niet aan het werk :confused:.
Geen iedee waar de getallen moeten komen.
Het is de bedoelding dat de timer idd vertraagd, als de db snel is de timer en als de db trager wordt in de toekomst de timer weg. Gebruikers merken dan geen verschil. Daarvoor was de timer mijn opdracht. Maar kun je me het script sturen voor als ik de timer 5 seconden wil hebben. Ik heb geen iedee waar ik die gatallen moet invullen. Krijg hem niet werkend. Ik lijk wel dom xd
 
Ik heb een iets andere variant gemaakt, waarin je simpel kunt experimenteren met de tijdsduur.

Code:
Private Sub Form_Load()
    Me.ProgressBar0.Max = 50
End Sub
Door de waarde MAX te veranderen, maak je de wachtlus langer of korter.

Code:
Private Sub Form_Timer()
Dim i As Integer

Do While Me.ProgressBar0.Value < Me.ProgressBar0.Max
    i = i + 1
    Me.ProgressBar0.Value = i * 10
    PauseTime = 1    ' Tijdsduur instellen.
    Start = Timer    ' Aanvangstijd instellen.
    Do While Timer < Start + PauseTime
        DoEvents    ' Overdragen aan andere processen.
    Loop
Loop

If Me.ProgressBar0.Value >= Me.ProgressBar0.Max Then
    DoCmd.Close acForm, Me.Form.Name
    DoCmd.OpenForm "Menu"
End If
End Sub
Bovenstaande code verhoogt de waarde van de Progressbar in stappen van 10. Doordat de TimerInterval (vind je dus zoals gezegd op het tabblad <Gebeurtenis> van de formuliereigenschappen) op 1000 te zetten krijg je stappen van één seconde. Een factor 50 is dus 5 seconde
 
Het is inderdaad een klein raadsel waarom je de instelling <Timerinterval> niet kunt vinden :)
 

Bijlagen

  • TimerInterval.png
    TimerInterval.png
    17,9 KB · Weergaven: 51
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan