How to Use Ribbon Creator 2010

Posted on 2013-12-28
Medium Priority
Last Modified: 2014-01-03
I want to create a custom menu/ribbon in the application I am developing in Access 2010.  This ribbon will be loaded at startup of the application and replace the default ribbon.  I've done this dozens of times in Access 2003 and prior but the process is quite different in 2010.
In several EE posts I've seen 'Ribbon Creator 2012' by GA recommended.
I went to the site, downloaded the demo version and looked thru all of the screen snapshots displayed.  I understand the demo version limits the number of controls.  I am willing to buy the complete version but wanted to see how/if it works first.

I got a pretty good feel for creating custom ribbons, adding tabs button. controls etc.. by playing with the demo version of the product.
However, when it came time to use my new knowledge to create an actual custom startup ribbon for my application I got nowhere.   When I wanted to open my Access .accdb from within 'Ribbon Creater 2010' I got a message,  'There is no table UsysRibbons in the selected application".

Really not sure where to go from here.  There are some screen snapshots on the product website that show how to create various objects on the ribbon but not much else in the way of documentation.

Anybody know the process of using this tool and incorporating the created ribbon into an application.  I can see how to create buttons but don't at all see how to connect the button to an object (Form, Function, Report etc. in my application)

1. Using this product, how do I create a custom ribbon and incorporate it into my application.?

2. Once the ribbon is created how to I associate my Forms, reports or functions with the options on the ribbon?

3. I see references to 'callback' on many of the screen shots on the website.  What is a callback?
Question by:mlcktmguy
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
LVL 85

Assisted Solution

by:Scott McDaniel (Microsoft Access MVP - EE MVE )
Scott McDaniel (Microsoft Access MVP - EE MVE ) earned 1336 total points
ID: 39744604
Essentially, you create a New Ribbon, and then use the Finish tab on the Ribbon Creator interface to move those changes into your database. Note the various options on that screen, and be sure you know what each means. For example, you generally want to check the "copy basCallbacks" box, but if you do that initially, and then make changes to your ribbon, you may want to uncheck that when you move the new changes back into the database.

I would STRONGLY suggest you do this on a test or backup copy of your database. When you're comfortable with the process, you would do your work on the live copy.

You can set a ribbon to be used with a specific form in the Access interface. Open the form/report in design view and set the Ribbon Name property.

The CallBack is a module that is created that handles the "calls" from the ribbons - essentially, the "on action" part of the ribbon item. You'll note this relates to a function in basCallbacks for each ribbon item. For example, if I have a ribbon item named "rbExit", I'd have a callback that would handle the action for that item (it's in a procedure named "OnActionButton" in basRibbonCallbacks).

Trust me when I say  that if you must work with ribbons in MSFT Access, you really, really need this tool. It is well worth the money, and will save you tons of work.
LVL 75

Assisted Solution

by:DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform) earned 664 total points
ID: 39744976
In addition to and in agreement with to what Scott has noted, here are a couple of additional links to important info on Gunter's site - that may not be easy to find:

30 some sample dbs with LOADS of examples, all of which I have downloaded:

FAQs - be sure to read *all* of these:

"but not much else in the way of documentation."
Actually, there is ... but unfortunately it's a bit scattered around on his various sites. Also, the Help file that comes with the product is pretty good. You *really* should go through the entire help file - well worth your time.

Further ... as Scott noted ... be SURE to make a backup of your db prior to each major 'session' with RibbonCreator - just in case.  Making a backup is literally as quick as Control C, Control V in Windows Explorer.

" Note the various options on that screen, and be sure you know what each means"
Yes ... be  *sure* you understand what each of these options do (Help will 'help') and the ramifications of using each setting.

The good news:
Once you see and understand how RibbonCreator works ... you will be amazed at the functionality. Gunter is literally giving it away at $30 some dollars - trust me. There is no other product even remotely close to this product - I've tried them all.


Author Comment

ID: 39745181
From the little I've seen I agree with both of you.  I purchased the full version of the product.
Following Scott's direction I was able to create a test menu and implement it into a TEST (Yes I took you very seriously) Access 2010 accdb.
I also downloaded many of the examples in the link from DatabaseMX.

My first simple menu has two type of objects, buttons and a combo box.

After creating my ribbon and doing the 'finish', I opened my application was able to find the created controls in 'basRibbonCallbacks'.  I started out simply by putting my own Msgbox popups where I thought they should be to make sure the options were being reached.

I then changed my msgbox popups to DoCmd  commands.  Like these"

DoCmd.OpenForm "frmParmFile"
DoCmd.OpenForm "frmPayoffCalculator", acNormal, , , , , True
DoCmd.OpenReport "Rpt_Misc_Local", acViewPreview
DoCmd.OpenReport "Rpt_Hello_Letter", acViewPreview

I ran into an issue when I replaced some of these line with a command to execute a function.

For example:
DoCmd.RunCommand Open_menuTestPayoff()
instead of:
DoCmd.OpenForm "frmPayoffCalculator", acNormal, , , , , True

The functon was completely simple, here it is:

Public Function Open_menuTestPayoff()
DoCmd.OpenForm "frmPayoffCalculator", acNormal, , , , , True
End Function

The form opened but I got runtime error '2501' the runcommand action was canceled.  The same thing happened when I tried opening the report in a function.

What am I doing wrong?

This is very important to me because it is something I do frequently.  In my apps I open most of my forms and reports from modules.  The beginning of the module call, checks security to make sure the user selecting the option has internal authority to use it.  If they don't they are denied access.

How do I call functions correctly from 'basRibbonCallbacks'?
Migrating Your Company's PCs

To keep pace with competitors, businesses must keep employees productive, and that means providing them with the latest technology. This document provides the tips and tricks you need to help you migrate an outdated PC fleet to new desktops, laptops, and tablets.

LVL 85
ID: 39745248
If your intent is to run the Function named "Open_menuTestPayoff", then don't use the DoCmd syntax, just call it directly. For example, if I wanted to call that from the Click event of Somebutton:

Sub Somebutton_Click()
End Sub

But honestly, if your Method calls do nothing more than open a form or report, I don't see the need to have two "levels" of code that does this - just call it directly in the Ribbon CallBack,, and be done with it.

Author Comment

ID: 39747389
I can see the danger of the 'Finish' options when working with a ribbon that is already operational in an application.  So what are the recommended settings/process when adding new option to a ribbon already in use in an application.

You obviously don't want to overlay the callback module or you would have to redo all of the code you entered when the ribbon was first created.

You do want the layout of the new ribbon because you want to see your new options.

What parameters should be selected on the finish screen when updating a ribbon in already functional in an existing database?
LVL 85

Accepted Solution

Scott McDaniel (Microsoft Access MVP - EE MVE ) earned 1336 total points
ID: 39747951
I'd uncheck the "Copy basRibbonCallbacks etc etc" box, and leave everything else as it is. If you don't want to set that ribbon as your App Ribbon, you could uncheck that as well (useful if you're adding other ribbons in, like popup ribbons).

Note that I choose to use the "Add Select Case Statements etc etc" box, which shows all of my action items as a Select Case statement. This is easier and more intuitive for me. If you use that method, then you'll have to manually edit the Callbacks methods to include any new items after making your ribbon changes. That's just adding a new Case statement to the Select Case structure, however, so it's relatively painless.

Author Closing Comment

ID: 39754732
Thanks so much for your help.

Featured Post

Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In Part II of this series, I will discuss how to identify all open instances of Excel and enumerate the workbooks, spreadsheets, and named ranges within each of those instances.
The Windows Phone Theme Colours is a tight, powerful, and well balanced palette. This tiny Access application makes it a snap to select and pick a value. And it doubles as an intro to implementing WithEvents, one of Access' hidden gems.
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
Suggested Courses

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question