Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Cancel Event (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/4884-cancel-event.html)

γιώργοςΚ 23-04-18 13:22

Cancel Event
 
Φίλοι μου γειά σας,

Αντιμετωπίζω ένα πρόβλημα το οποίο σχετίζεται με το Timer σε μια φόρμα. Πιο συγκεκριμένα:

Σε μια φόρμα έχω καθορίσει στo Timer Event να εκτελείται ένας κώδικας. Εχω καθορίσει το Timer Interval στο 400 διότι αυτό με βολεύει. Ωστόσο το πρόβλημα που αντιμετωπίζω είναι ότι εφόσον ολοκληθωθεί ένας χρονικός κύκλος εκτέλεσης του κώδικα, τότε θα ήθελα να σταματά και να μην εκτελεόται ξανά.. Οπότε δοκίμασα διάφορα χωρίς όμως αποτέλεσμα.

Εχω γράψει τον πιο κάτω κώδικα και θα ήθελα την βοήθεια σας έτσι ώστε να μπορέσω να φτάσω στο ζητούμενο:

Private Sub Form_Timer()
Static intCount As Integer
intCount = intCount + 10

Me.ProgressBar.Value = intCount

If intCount = 20 Then
Me.txtProgress = "Loading 20%"
Else
If intCount = 30 Then
Me.txtProgress = "Loading 30%"
Else
If intCount = 40 Then
Me.txtProgress = "Loading 40%"
Else
If intCount = 50 Then
Me.txtProgress = "Loading 50%"
Else
If intCount = 60 Then
Me.txtProgress = "Loading 60%"
Else
If intCount = 70 Then
Me.txtProgress = "Loading 70%"
Else
If intCount = 80 Then
Me.txtProgress = "Loading 80%"
Else
If intCount = 90 Then
Me.txtProgress = "Loading 90%"
Else
If intCount = 100 Then
Me.txtProgress = "Loading 100%"
Else
If intCount = 105 Then
Me.txtProgress = "Finished 100%"
Else
If intCount = 110 Then
Me.txtProgress = "Finished 100%"
DoCmd.CancelEvent ' Δοκίμασα αυτή την εντολή αλλά μάταια..

End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End Sub

pctechdr 26-04-18 13:46

Φυσικά και δοκίμασες αλλά μάταια γιατί ο κώδικας εκτελείται ΚΑΘΕ 0.4 Δευτερόλεπτα εφόσον τον έχεις γράψει στο Timer της φόρμας σου.

γιώργοςΚ 26-04-18 14:40

Γειά σου Χρίστο,

αν και δεν κατάλαβα πως αλιώς θα το έκανες εσύ φίλε μου, θα ήθελες να το μοιραστείς μαζί μας? Και ξέχασα να αναφέρω πως την λύση την προσέφερε ο φίλος George Vrachnakis αλλάζωντας απλά μια εντολη την Me.TimerInterval=0 στο τελος του κώδικα

Else
If intCount = 110 Then
Me.txtProgress = "Finished 100%"
Me.TimerInterval=0


Σε κάθε περίτωση σε ευχαριστώ πολύ..!!


Η ώρα είναι 07:15.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2