Custom Ribbon Creator for Access 2019 and 2021

I've created a 32-bit version of the ACCDE and returned the file to the OP.
However, I believe that an update is currently being planned.

I haven't posted it here as its not my app & I haven't had time to test it all works as intended.
 
Last edited:
I tried the mentioned Addin just to test how it works, but I faced several problems. Because these are already mentioned by other members, there's no need to repeat them. I'm sure the OP will manage and correct them. Will be waiting for the new version to test it.

If the addin works as I imagine, I personally think it's very inconvenient to have a fixed and rigid ribbon (or ribbons) saved in sysRibbons table.
All databases have different users, with different levels of privileges which in turns needs different layouts of the same ribbon for each user.
And if the interface needs to be a multi language one (like most of ours), it makes it harder to manage and display the necessary layout.

Most of our databases have 4 user defined tables (tblRibbons, tblTabs, tblGroups & tblcontrols) that is joined to a users level table.
On each login, a function reads the preferences and privileges of users and reconstruct the ribbon's XML according to their preferred language. Their ribbon contains only the buttons they are allowed to use.
Adding new tabs, groups or controls is done only by adding a new record to one of the tables. We don't need to go through an xml file with more than a thousands lines, search for an specific control to edit, delete or add a new control.
 
Last edited:
@KitaYama
For many apps, creating a single custom ribbon is a perfectly satisfactory approach.
You have described scenarios where that isn't the case - user permissions and language localisation.

I'm sure others would be very interested in your approach. Perhaps you could create an example database to demonstrate how this is done.
As I've already mentioned to the OP, I think that ribbon creation would be an excellent topic for someone to present at a future session of my Access Europe User Group.

Perhaps I can interest both of you in leading presentations on this topic.
 
I'm sure others would be very interested in your approach. Perhaps you could create an example database to demonstrate how this is done.
@isladogs
I don't have a PC at home. Only tablets.
6 days a week, 10 hours a day I'm sitting in front of my monitors at work, and the last thing I need is to spend my weekends at the same situation. My tablet is enough for viewing social media at home.
And at work a little busy to complete a sample database. So it's very hard to find some free time to make a complete sample.

For now the attached database shows the concepts of what I described to build the necessary xml.
It reads the tables and creates the necessary xml to show a user defined ribbon.

The database shows the ribbon in English as default.
In LoadRibbons Function if you change TempVars.Add "Lan", 1 to TempVars.Add "Lan", 2 and re-open the database, the ribbon will be in Italian (Only the controls. One can use the same method in ReadTabs & ReadGroups functions to change the language of tabs and groups too.)
I'm sure anyone can add a user table and a login form to make it a multi user database.
After login process, set the appropriate value for this tempvar (read the data from users' preference table) and invalidate the ribbon to change language.

This sample database also doesn't show user privileges. (because it doesn't have a login form). By adding a user level table and inserting the list of controls that you want to hide for each user, it's really easy to not add the controls or groups to the xml by filtering the sql in each function.

I'm really sorry that I don't have enough time to show a complete sample, but I'm sure anyone with a slight knowledge of vba can complete it.
I will add the missing functionalities as soon as I have a little free time.

Edit : I removed the file. and uploaded a full version in #27
 
Last edited:
Perhaps I can interest both of you in leading presentations on this topic.
I'm really flattered but I neither have enough knowledge on this topic nor can speak English fluently.
Most of my posts come out of Google Translate and if a moderator/Admin checks my post, he'll be able to tell you that I've edited them more than a hundred times to make it readable for others.

Million Thanks.
 
I'm really flattered but I neither have enough knowledge on this topic nor can speak English fluently.
Most of my posts come out of Google Translate and if a moderator/Admin checks my post, he'll be able to tell you that I've edited them more than a hundred times to make it readable for others.

Million Thanks.

Hi
Yes I thought you would say that but I thought I'd ask
Not yet had time to look at your example but will do so when I have time
 
@isladogs
I managed to skip my job and put something together. It's not perfect, and I could make it easier by adding some queries and use them, but for now, it works. I also didn't clean up the tests I did. So some unnecessary trails are still remained.

How to use it :
The database opens with English language as default. The default language can be changed from tbloptions.
click login button in ribbon and login as a user. No password for now.

You can click Log Out button (Home tab, left button) to change user.

User 1 : English - Can not access to whole Tools tab
User 2 : Italian - Has not access to all buttons in Group5 in tools (Utensili) tab.
User 3 : French - Has not access to button4 in home tab (Maison)

For many apps, creating a single custom ribbon is a perfectly satisfactory approach.
Even if a single custom ribbon for a database is enough, I won't use a fixed ribbon in sysRibbon table.
You are aware of the possibilities that vba opens to a better programming. And you will never know what kind of problem tomorrow will bring for you.
In my case, I prefer to be ready with a dynamic ribbon in vba (even if it's not necessary) for the possible changes in future.

I really don't know how you start a new line for a button with a long caption when you use a fixed xml in sysRibbons.
If it's possible at all or not, is beyond my knowledge.
But I know if it's a dynamic ribbon, it's piece of cake to start a new line at any place of the caption, wherever I need. Check these labels in different languages.

10.png



15.png



12.png



I can even prevent the long caption being separated in two lines.

16.png


Hope you find some free time to test the sample.

Edit : I did some corrections. a better version is posted in #28
 
Last edited:
I would like to offer an idea about translations. I have participated in a couple of sessions with the Access España Group with the assistance of a translator, George Young. It is successful although the time required to translate means it's not possible to cover as much material as would otherwise be the case. So, the idea. Perhaps you can find a suitable translator to assist you during a presentation. I don't know what languages that would be, but I assume, from Colin's response, Français and Deutche.

I know several German speakers who are fluent in both languages, for example. Some participate here. And there are, no doubt, bilingual French and English Access developers who could be persuaded to assist.
 
I did manage to install the add-in, but I still have no idea how to use it. Worse yet, my other add-in for Access Dev Tools has disappeared. I don't know what happened to be honest. When I was in the process of installing the new add-in, I didn't notice any of my other add-ins in the list. So I'm not sure if my other add-ins were already gone before I started the process or not. In any case, I'm not a happy camper today. MZTools and Oasis are still there because they are more about the VB Editor than the main application ribbon like Access Dev Tools is. If you make an Add-In, be very careful about how it may affect other add-ins, please.
 
@Mike Krailo
I installed the original 64-bit version on my tablet & the 32-bit version I created from the ACCDB file on my desktop PC.
In neither case were other add-ins affected. To be honest, I don't see any way by which this add-in could have been responsible for that happening

However, I also found it difficult to get started with this add-in.
Unless you create ribbons regularly by other means, it isn't immediately obvious how to use it.
I'm waiting for the OP to provide additional information before I make any serious attempt to use it.
I'm looking forward to that information as there are very few ribbon creators currently available
 
I thought it was only me who lost all other addins. I’m not sure if this addin was the main reason for disappearing other already installed ones, but I can swear 2 days ago I used them and they were OK.

Maybe something has happened during the last time I used them and installed this, not sure. But it’s still strange someone else has faced the same situation.
 
I don't know for sure that it was this installation of the add-in that did it, because I have not used the search and replace add-in for a while now. I just happened to notice it right after I successfully installed the ribbon add-in. In any case, I will have to investigate further what happened exactly.
 
Good evening everyone,
I have already encountered this problem of missing add-ins with another add-in (installed as administrator) than the one I created.
I don't know the reason.
When the problem occurs, I run a .reg file containing the various keys and values of this add-in's registry.
After that, the complement is present again.

For the new version of the ribbon creation program, you will no longer need to install the add-in as administrator.
I saw that there is a difference in the location of keys and values in the registry with this mode.
Maybe the problem of disappearing add-ins will no longer be present.

The program is currently modified, but not yet published.
I am currently writing the user manual.
 
OK looks like there is an issue which I haven't experienced either in this case or with other add-ins.

I always install my add-ins to the default add-ins folder which is protected to some extent.
Perhaps that avoids any issues with previously installed add-ins no longer appearing in the list?

@jackyP
Do you want me to upload the 32-bit version for anyone who needs it e.g. @Pac-Man?
Or is it better to wait & create a 32-bit version when the new version is ready?
 
I have already encountered this problem of missing add-ins with another add-in (installed as administrator) than the one I created.
I don't know the reason.
Everyone would have appreciated if you had mentioned it in your first post.
If you install it as admin you may loose your addins....or something in that line.

Do you want me to upload the 32-bit version for anyone who needs it e.g. @Pac-Man?
I assume you better not to. If the addin can mess with our already installed addins, what's the use of it?
Me, as one, won't touch it.
 
Last edited:
I will wait until there is a tested, working add in with some documentation for its use.I am not sufficiently adept with add-ins to be a "guinea pig". Seems there are some "growing pains" to be resolved.
 
Everyone would have appreciated if you had mentioned it in your first post.
If you install it as admin you may loose your addins....or something in that line.


I assume you better not to. If the addin can mess with our already installed addins, what's the use of it?
Me, as one, won't touch it.
It's not my supplement that's the problem.
I think it's a problem with Access.
This has happened to me very rarely with other supplements.
I think I was experiencing the problem when the add-in was used with a database and at the same time the .accde file was opened with Access in design mode.
I have installed my add-in many times without ever having a problem.
 

Users who are viewing this thread

Back
Top Bottom