• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1006
  • Last Modified:

Assigning a module to a menu button (onclick event)

I want to assign a VB module to a menu button and have the code executed upon the OnClick event; however, I'm not finding the method to accomplish this via the OnClick options.  My research indicates that this call to the module must be made through an establshed function...? Seems straight forward enough but my feeble attempts to make this work have failed.  Any assistance is appreciated.
0
Gruffman
Asked:
Gruffman
  • 6
  • 5
  • 4
  • +1
2 Solutions
 
omgangCommented:
You don't actually call a module.  You can call a function.  The trick is you can create a function whose purpose is to call a sub.

Private Function CallSub()

    Call MySubProcedure

End Function


Now you set the OnClick event to the function CallSub, e.g. =CallSub()

OM Gang
0
 
Scott McDaniel (Microsoft Access MVP - EE MVE )Infotrakker SoftwareCommented:
What do you mean by "menu item"? Are you referencing a ribbon item? Or are you using the term for something else?
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
"My research indicates that this call to the module must be made through an establshed function."

Not the case.

Say this is the Function you want to call, either in a Form Module or VBA Module

Public Function mMyCoolFx()

 ' code does whatever

End Function

On the property sheet of the command button - Event tab ... do this - see image,

mx
Capture1.gif
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
GruffmanAuthor Commented:
I created the function but when I click on the menu button I get an error message that Access can't find the object "StartPDfEmail" (my function).  I typed the name of this function on the "OnClick" line in properties for this button - is that the correct method?
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
You need to include the Equals sign ... and no quotes ... see image above

mx
0
 
omgangCommented:
Where did you create the Function StartPDfEmail?  Did you make it a public function?
OM Gang
0
 
GruffmanAuthor Commented:
Okay, did that, but now geting a compile error - "expected variable or procedure, not module"
0
 
GruffmanAuthor Commented:
StartPDFEmail is a not a function, it's a Public Sub.
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
"it's a Public Sub."

It needs to be a Public Function, not Sub

mx
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
Everything you need is @ http:#a34921945

mx
0
 
GruffmanAuthor Commented:
Thank you.
0
 
omgangCommented:
My first post shows how to use a function to call a sub.
OM Gang
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
But why would you want to do that?
I *never* ever use Subs. To me they are totally useless in today's world.

mx
0
 
omgangCommented:
mx, understood.  I interpreted the original Q as to how to call a Sub Procedure directly from the OnClick action of a command button.  A method to do so is to create a function to call the sub.  Now this should seem silly to just about anyone who goes through the excercise since simply converting the called Sub to a Function (as you suggested) provides solution in fewer lines of code.
OM Gang
0
 
GruffmanAuthor Commented:
A function to call a function, interesting.
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
@omgang:
ok.

mx
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 6
  • 5
  • 4
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now