[AccessD] Controlling Custom Toolbars

Darryl Collins Darryl.Collins at coles.com.au
Thu Sep 11 23:58:40 CDT 2008


Ok... Got these pesky Access toolbars to work as expected - *phew* spend much of today on this.  You know, it is a complete b at stard trying to find the Toolbar FaceID's that work in Access.  Dead easy in Excel to get that info - anyway, a bit of hacking Excel VBA and trial and error with ID's in Access and I have this working well now.  Thanks for everyones help.  Love the toolbars though, much neater than making custom buttons on each form.

Definately need to set a reference to the Microsoft Office Object Libarary!

'=========================================================
Option Compare Database
Option Explicit

Sub CreateNavigationToolbar()

Dim cmdbarNavigation As CommandBar

' Destroy the existing toolbar if exists
On Error Resume Next
CommandBars("Navigation Toolbar").Delete
On Error GoTo 0

' Create the toolbar
Set cmdbarNavigation = CommandBars.Add(Name:="Navigation Toolbar", _
            Position:=msoBarBottom, _
            Temporary:=True)

With cmdbarNavigation
    .Controls.Add Type:=msoControlButton, Id:=1786 '1 Close
    .Controls.Add Type:=msoControlButton, Id:=154 '2 GotoFirst
    .Controls.Add Type:=msoControlButton, Id:=155 '3 GotoPrev
    .Controls.Add Type:=msoControlButton, Id:=156 '4 GotoNext
    .Controls.Add Type:=msoControlButton, Id:=157 '5 GotoLast
    .Controls.Add Type:=msoControlButton, Id:=539 '6 New
    .Controls.Add Type:=msoControlButton, Id:=530 '7 Duplicate
    .Controls.Add Type:=msoControlButton, Id:=644 '8 Delete
    .Visible = True
End With


'-- Define the Close button
With cmdbarNavigation.Controls(1)
  .Style = msoButtonIconAndCaption
  .Caption = "Close Form"
  .OnAction = "CloseActiveForm"
  .TooltipText = "Close Form"
End With

'-- Define the Duplicate button
With cmdbarNavigation.Controls(7)
  .Style = msoButtonIcon 'AndCaption
  '.Caption = "Duplicate"
  .OnAction = "DuplicateRecord"
  .TooltipText = "Duplicate active record"
End With

Set cmdbarNavigation = Nothing

End Sub
'======================================================================



-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Stuart
McLachlan
Sent: Friday, 12 September 2008 12:44 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Controlling Custom Toolbars


CommandBars("Customer").Position = msoBarTop

But make sure you have a reference to the Microsoft Office Object Libarary


On 12 Sep 2008 at 10:39, Darryl Collins wrote:

>
> Ok Folks
>
> That works great.  Now I have a new (but related issue).  How do i control the docking position on built in/ existing toolbars?
>
> In Excel VBA the code is
>
> gxltbMyToolbar.Position = 1
>
> The control options being
> Top     1
> Right   2
> Left    0
> Bottom  3
> Floating        4
>
> It seems that 4 (floating is the default) in Access, but what is the darn syntax to get them to dock?
>
> I can do this if i create the command bar from scratch, but in this case I am just using commandbars I custom built using the default button set.
>
>
> Set myBar = CommandBars.Add(Name:="Customer", _
>             Position:=msoBarTop, _
>             Temporary:=True)
>
> but I cannot figure out how to make existing toolbars behave!
>
> Thanks once again
>
> Darryl.
>
>
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Stuart
> McLachlan
> Sent: Thursday, 11 September 2008 4:07 PM
> To: Access Developers discussion and problem solving
> Subject: Re: [AccessD] Controlling Custom Toolbars
>
>
> If you ONLY want the custom toolbar (ie you don't want the default Form toolbar as well),
> just set the Toolbar property in the Forms Property Sheet-Other tab.
>
> Otherwise use
>
> DoCmd.ShowToolbar "IT PMO Financial Control Tool", acToolbarYes
> and
> DoCmd.ShowToolbar "IT PMO Financial Control Tool", acToolbarNo
>
> to display/hide it.
>
>
> On 11 Sep 2008 at 15:48, Darryl Collins wrote:
>
> > Hi Folks,
> >
> > When I code in Excel I use custom toolbars a lot and they are dead
> > easy to control.  Often each set will have it own toolbar that has
> > tools specific to its purpose and these are turned off and off using
> > worksheet activate/deactive.
> >
> > In this Access beastie I am building I have made up a nice little
> > custom toolbar, but I only want it to be available on when certain
> > forms are active.  Struggling to get the syntax right on making the
> > toolbar appear / disappear.
> >
> > Here is what I have go so far (which works - it is just too darn untidy - there has to be a better way).
> >
> > '========WHAT I HAVE (which works) =======================
> > Sub RemoveDataEditToolbar()
> >
> > Dim mtb As Variant ' <-- Don't like using variant, but it is the only thing I can find that works.
> > Dim strToolbar As String
> >
> > strToolbar = "IT PMO Financial Control Tool"
> >
> > For Each mtb In CommandBars ' <-- Don't like having to loop. Just want to set this to true or false
> >     If mtb.Name = strToolbar Then
> >         mtb.Visible = False
> >         MsgBox mtb.Name & " Hidden"
> >     End If
> > Next mtb
> > End Sub
> > '===============================================
> >
> > '========WHAT I WANT (which doesn't) ===================
> > Sub RemoveDataEditToolbar()
> >
> > Dim mtb As Access.CommandBar
> > Dim strToolbar As String
> >
> > strToolbar = "IT PMO Financial Control Tool"
> > Set mtb = Access.CommandBar.Name(strToolbar)
> > mtb.Visible = False
> >
> > set mtb = nothing
> > End Sub
> > '===============================================
> >
> >
> > Any ideas?
> >
> > cheers
> > Darryl
> >
> > This email and any attachments may contain privileged and confidential information
> > and are intended for the named addressee only. If you have received this e-mail in
> > error, please notify the sender and delete this e-mail immediately. Any
> > confidentiality, privilege or copyright is not waived or lost because this e-mail
> > has been sent to you in error. It is your responsibility to check this e-mail and
> > any attachments for viruses.  No warranty is made that this material is free from
> > computer virus or any other defect or error.  Any loss/damage incurred by using this
> > material is not the sender's responsibility.  The sender's entire liability will be
> > limited to resupplying the material.
> >
> >
> > --
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
>
> --
> Stuart Mclachlan
>
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>
> This email and any attachments may contain privileged and confidential information
> and are intended for the named addressee only. If you have received this e-mail in
> error, please notify the sender and delete this e-mail immediately. Any
> confidentiality, privilege or copyright is not waived or lost because this e-mail
> has been sent to you in error. It is your responsibility to check this e-mail and
> any attachments for viruses.  No warranty is made that this material is free from
> computer virus or any other defect or error.  Any loss/damage incurred by using this
> material is not the sender's responsibility.  The sender's entire liability will be
> limited to resupplying the material.
>
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com

--
Stuart Mclachlan


--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

This email and any attachments may contain privileged and confidential information
and are intended for the named addressee only. If you have received this e-mail in
error, please notify the sender and delete this e-mail immediately. Any
confidentiality, privilege or copyright is not waived or lost because this e-mail
has been sent to you in error. It is your responsibility to check this e-mail and
any attachments for viruses.  No warranty is made that this material is free from
computer virus or any other defect or error.  Any loss/damage incurred by using this
material is not the sender's responsibility.  The sender's entire liability will be
limited to resupplying the material.





More information about the AccessD mailing list