[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 135
  • Last Modified:

Trigger only once

I want an Onchange event to call a function and trigger only once

private sub xyz_OnChange()
   cocojumbo() 'This should be executed only once and in later onchange event I do not want anything to happen
End sub

Pls help
0
santosh_14
Asked:
santosh_14
1 Solution
 
OtanaCommented:
Use a variable at from level.

private HasRun as boolean

set it to false in your form_load

private sub xyz_OnChange()

If not HasRun then
  cocojumbo()
  HasRun=true
End If

End sub



0
 
OtanaCommented:
Sorry that should be form level, not from...
0
 
santosh_14Author Commented:
Thnks!!
Is there nothing in visual basic like:

set cocojumbo = dead

:-)

??

Will wait for today and if no better answer will give you the credit.
0
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
santosh_14Author Commented:
Thnks!!
Is there nothing in visual basic like:

set cocojumbo = dead

:-)

??

Will wait for today and if no better answer will give you the credit.
0
 
OtanaCommented:
Another option I can think off is adding a static variable to your function, which you set to true/false the first time your function runs, and test on that variable inside your function.

But I'm not entirely sure which default valeu a sttic boolean will get when you declare it.

public function CocoJumbo()
  dim static HasRun as boolean

  If HasRun = false Then
    ... ' Run code

    HasRun=true
  End If
end function
0
 
BozzoCageCommented:
Otana, correct is
   static HasRun as boolean
and not
   dim static HasRun as boolean

>But I'm not entirely sure which default valeu a sttic boolean will get when you declare it.

Every variable has default value of it's type (Boolen->False, Integer->0, String->"") at creation time.
So static boolean var has default value False.
Otherwise your example is correct (and preferred for "triggers", since I doesn't require global variable.


santosh_14, just press F1 on Static, and you'll get an explanation. I think there is no better way of figuring out if (or how many times) function was already run than using static var.

-BozzoCage
0
 
OtanaCommented:
BozzoCage

You're right about the static. Sorry, I haven't used statics in quite a while, and on my age you tend to forget these things... :)

Thnx
0
 
deightonCommented:
static b as boolean

if b then exit sub else b = true
0
 
Arthur_WoodCommented:
Like ANY Boolean variable, a STATIC Bool;ean get a default value of FALSE
0
 
VKCommented:
Hey Experts:

Why call xyz_OnChange() twice ?
If the event initiator is a Textbox-Change for example:

Sub Text1_Change
   call xyz_OnChange
   TextBox1.Locked = True
end sub

But perhaps your context doesn't allow this.

:-)
0
 
santosh_14Author Commented:
Ok! Serves the purpose
0

Featured Post

[Webinar] Improve your customer journey

A positive customer journey is important in attracting and retaining business. To improve this experience, you can use Google Maps APIs to increase checkout conversions, boost user engagement, and optimize order fulfillment. Learn how in this webinar presented by Dito.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now