customize custom toolbar at run-time via VBA code

  • Thread starter Thread starter Jesse Aufiero
  • Start date Start date
J

Jesse Aufiero

Can commands on a custom toolbar be added removed at runtime via VBA code?
Where can I find sample code?

Can the main Access menu (File, Edit, View, etc.) be shown or hidden via VBA
code? sample code?

Can the built-in 'Forms' toolbar be shown or hidden via VBA code? sample
code?

Thanks!
 
Yes it can be done, we do it here at work.

I don't know where you might find sample code, and our code here is
copyrighted so I can't post it.
 
thank you. might you have a few lines of example code from which i can
figure the rest out myself? Really, I just need a starting point, like what
references to add to my project or what objects to use...
 
first, you REALLY don't want to use code to manage your menu bars if you
don't have to!!

If you have 3 forms open, then changing, and managing what menu bar shows
becomes very difficult process.

However, setting/showing particular options of a particular menu bar does
work quite well.

You most certainly can, and should hide all of the ms-access interface. The
options to complete hide and keep people out of the ms-access interface can
easily be done using the tools->start-up options. Using those options allows
you to complete hide the ms-access interface (tool bars, database window
etc). Also, using these options means you
do not have to bother setting up security.

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

Take WELL note of how the menus change for differtn forms opened (and no
code was needed).

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. If
want, you can even disable the shift key by pass. I have a sample mdb file
that will let you "set" the shift key bypass on any application you want.
You can get this at:

http://www.members.shaw.ca/AlbertKallal/msaccess/msaccess.html

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

for indivual menu otpons, you can enable/disapble, or even hide them....

if IsInGroup(CurrentUser,"SuperUser" then

CommandBars("menu bar").Controls("records").Controls("refresh").Visible
= True

end if
\
if IsInGroup(CurrentUser(),"InvoideDeleteGroup") = true then


CommandBars("myCustomBar").Controls("AdminOptions").Controls("DleeteInvoice"
).Visible = True

end if

Note that short cut menus are their own name also:

commandbars("your shortcut name").Contorls("contorlName").visiable = false

You can replace the above exmaples with "enabled" if you just want to "gray"
out (disable) the contorls in palce of hiding them...
 
Albert, wow, thanks for a very comprehensive answer. i will read this more
thoroughly and see if i can put the suggestions to good use.
 
Back
Top