Solved

Menu Bar doesn't stay disabled

Posted on 1998-09-25
4
214 Views
Last Modified: 2008-03-03
Greetings, reader of this question,

I use Access8 (1997) to set up a small registration system. To avoid users to ravage my application, I created my own toolbars and disabled the build in commandbar called "Menu Bar". This "Menu Bar" isn't a menubar at all, it's a toolbar.
Now, to disable this menubar I used the "Start up" function in the "Extra" menu (I hope your local versions use these menu and function names), but also included in th starting up forms this code:

Application.Commandbars("Menu Bar").Enabled = False

Then, I told my forms to use my toolbars. Now, this works quite nice. But, when mistakenly touching the "Alt" button, the menu reappears, menu item by menu item. Same story for the "F10" button. First you see a small rectangle, then when you start moving the cursor buttons, the whole menu becomes visible AND ACTIVE!

So I've tried a few things. I chose to disable ALL commanbars. This however, resulted in a disappearing of commandbars for the next person to use Access97, whether this person used my app or not. Next, I created my own menubar and told my app to use it, but that meant constantly two 30 point bars on screen, one menu bar and one filled with toolbars, not forgetting the 12 point title bar that should not be removed at all. Three of these bars clutter my screen and the screen really isn't that big. Besides, the menubar is hardly filled (two items) so it takes up empty room.

Question: do you know an elegant way to dispose of this built in menu bar, so that even a misfortunate "Alt" button doesn't activate it? The "F10" key can be silenced using an AutoKeys macro, but the "Alt" key cannot. Also, keep in mind that not every person has a Developpers Kit (I don't), so not everyone is able to create runtime versions (I'm not). However, I'd like to know whether runtime versions show the same problem or not.

Imagine!
0
Comment
Question by:OmegaJunior
[X]
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
  • 2
4 Comments
 
LVL 9

Expert Comment

by:perove
ID: 1963540
I belive this is a bug in access. But to give you a solution to prevent this , just create a macro with no commands init. Call it emptymenu then put in emptymenu in the menubar property for the form.
(you cannot see it in the list but ...)
perove
0
 
LVL 3

Author Comment

by:OmegaJunior
ID: 1963541
Thank you, perove,

But this kind of wavering already came to mind. It works, but it is not elegant. What I'm looking for is not a workaround, it's a solution. Workarounds have to be unworkarounded, and if the app isn't shut down correctly, I can't get the settings back the way they should.

Imagine!
0
 
LVL 10

Accepted Solution

by:
brewdog earned 100 total points
ID: 1963542
Have you thought about setting the KeyPreview property for your forms to True, and then trapping the KeyPress event for an "Alt"? You should be able to just write something like a simple

If KeyCode = vbAlt then
End if

I am not positive that that syntax works, but it's worth a shot.

If your users are able to use the Alt key for other commands on forms, you'd probably need to see if they were pressing Alt and something else.

brewdog
0
 
LVL 3

Author Comment

by:OmegaJunior
ID: 1963543
Greetings, brewdog,

This works!

KeyPreview = True

Altkey needs to be handled: it isn't vbKeyAlt or something, Access didn't create any constants for it. But it has an integer KeyCode: number 18!

So, in KeyDown, I code:

If KeyCode = 18 then KeyCode = 0

and the alt key is disabled!

Now to all other users of Access: keep it in mind! This menu bar breach is a serious breach in Access security!

You want to know why I didn't come up with the KeyPreview property? I use the Dutch version. Translated from Dutch, the name of this property is KeyExample (Dutch: "Toetsvoorbeeld"). Seriously Microsoft, an example ain't no preview in this context!

More translation problems: KeyCode constants are words Access uses to name keys from the keyboard. It is translated, however, as if the Key were a key to open a lock or a door, or as if it were some sort of primary key. I hope Microsoft takes care of their translations in the NEAR future.

Many thanks, brewdog,

Imagine!
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

I see at least one EE question a week that pertains to using temporary tables in MS Access.  But surprisingly, I was unable to find a single article devoted solely to this topic. I don’t intend to describe all of the uses of temporary tables in t…
A simple tool to export all objects of two Access files as text and compare it with Meld, a free diff tool.
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
In Microsoft Access, learn how to use Dlookup and other domain aggregate functions and one method of specifying a string value within a string. Specify the first argument, which is the expression to be returned: Specify the second argument, which …

733 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