Toolbar - Generic Button

  • Thread starter Thread starter Bob Betts
  • Start date Start date
B

Bob Betts

Hi! I thought of making a toolbar that would activate everytime a form is
open with commonly used buttons like add record .. delete record ... etc...
and it works fine.

This works perfect because I wouldn't have to put same buttons again in
every form ... problem is how do I make a generic button in the toolbar like
a button that would close the current form active ... I tried doing a macro
being called by a button but the macro needs to be specific in what form to
close ... what I want is that for the form to close the current button
active.

Thanks.

By the way if this works .. would like to add more generic buttons like
making the form editable ... uneditable ... etc.
 
I would say that 90% of my custom menu bars call, and run my VBA code.

All you need to do is make the code (a function) public, and then simply
place the function name in the buttons on-action event code.

Further, likely often you will have specific code to a particular form, and
once again, you simply declare those functions (in that form) as public.

The syntax to call the code then is:

=YourFunctionName()

Often, (if not most of the time), you code you call will need to pick up
some information about he current screen etc. So, my code most of the time
starts out, and grabs the current screen name. I use:

Public Function AskInvoicePrint()

Dim tblgroupid As Long
Dim frmActive As Form

Set frmActive = Screen.ActiveForm

tblgroupid = frmActive.frmMainClientB.Form!ID

If frmActive.InvoiceNumber = 0 Then
frmActive.InvoiceNumber = nextinvoice
frmActive.Refresh
End If

DoCmd.OpenForm "guiInvoicePrint", , , "id = " & tblgroupid

End Function

The above is code that the invoice print button runs. note how I right away
pick up the active form. After that, I can easily ref the forms object as if
the code was running much like the code would if put behind a button on the
form. In the above example, I also check if a invoice number has been
generated before printing. And, the Refresh forces a disk write if in fact I
do change the invoice number. And, in addition the above clip also passes
the currently selected sub-form item that the invoice print form needs.

Also, if the code you write is for the particular form, then as mentioned,
you can simply place the code into the forms module code. There is no need
to pick up the active screen...and you can use me. as you
always used.

If you want to see some sample menu bars, and why I use them, you can read
the following:

http://www.members.shaw.ca/AlbertKallal/Articles/UseAbility/UserFriendly.htm

And, if you want an example of a menu bar that has a "close" option on
it...try

Try downloading and running the 3rd example at my following web site that
shows a hidden ms-access interface, and NO CODE is required to do
this....but just some settings in the start-up.

Check out:

http://www.members.shaw.ca/AlbertKallal/msaccess/DownLoad.htm

After you try the application, you can exit, and then re-load the
application, but hold down the shift key to by-pass the start-up options.
 
Thanks Albert ... been using access for the past two years but only on the
beginner level .... its only now that I'm beginning to program ... no wonder
my button doesn't work because it is in the class module and not in the
module. What's the difference between the two? Still using them blindly ...
Thanks for the info and will try the links that you mentioned... my button
now works and continue studying.
 
... no wonder my button doesn't work because it is in the class module and
not in the module.

By class module, do you mean the forms code module? (each form that has code
acutally is a class module).

You can also create a class module by using the "insert" menu, and with that
you create what is called a class object.

You can read about using class ojbect moduels here...
http://www.members.shaw.ca/AlbertKallal/Articles/WhyClass.html

So, a standard module is what you need. Class modules when created are the
first step in creating a re-usable object, and the first step in object
orientated programming...
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top