PDA

Vollständige Version anzeigen : leidiges Thema Menüleiste


Jürgen32
26.05.2002, 10:30
nach stundenlangem durchsuchen des Forums muß ich euch trotzdem nochmal belästigen mit dem Thema "Menüleisten ausblenden".
Ich bin inzwischen zu dem Schluß gekommen das man es wirklich nicht schafft, sämtliche Symbol-Menüleisten auszublenden. Im Forum habe ich eine akzeptable Lösung gefunden. und zwar ein leeres Makro erstellen mit den beliebigen Namen "menubar" diesen ins Startmenü einbinden.
Dann bleiben wirklich nur noch rechts die Schaltflächen Min/max und schließen. Ich bekomme mit den Formularen die Schaltfläche Schließen auch noch weg. leider bleibt aber die Schaltfläche Min/Max immer oben stehen. kann mir einer sagen wie ich jetzt auch noch die Min/Max Schaltfläche ausblenden bzw sperren kann. wenn natürlich jemand ne Lösung hat alles Menüleisten wegzubekommen wäre das natürlich jetzt optimal.
vielen dank

Sascha Trowitzsch
26.05.2002, 12:37
Mit folgendem Code bekommst du alle Menü/Symbolleisten weg:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Public Function</span> HideCommandBars(bHide <span class="TOKEN">As</span> Boolean, bExceptMenuBar <span class="TOKEN">As</span> <span class="TOKEN">Boolean</span>)
<span class="TOKEN">Dim</span> cmdb <span class="TOKEN">As</span> CommandBar
<span class="TOKEN">On</span> <span class="TOKEN">Error</span> <span class="TOKEN">Resume</span> <span class="TOKEN">Next</span>
<span class="TOKEN">For</span> <span class="TOKEN">Each</span> cmdb <span class="TOKEN">In</span> Application.CommandBars
cmdb.Protection = msoBarNoProtection
cmdb.Visible = <span class="TOKEN">Not</span> bHide
<span class="TOKEN">Next</span> cmdb
<span class="TOKEN">If</span> bExceptMenuBar <span class="TOKEN">Then</span> Application.CommandBars(&quot;Menu Bar&quot;).Enabled = <span class="TOKEN">True</span>
<span class="TOKEN">End</span> <span class="TOKEN">Function</span></pre></div>

Aufruf:
HideCommandBars True, False

Das zweite 'False' bedeutet, dass auch die Standard-Menüleiste ausgeblendet werden soll; mit TRUE bliebe sie als einzige Stehen.

N.B.: In den Verweisen muss die 'Microsoft Office Object Library' aktiviert sein!

Was die Min-Max-Schaltflächen mit Menüleisten zu tun haben, kapier ich nicht. Die sind Teil der Titelleiste von Access.
Mittels API-Funktionen kann man die auch wegkriegen, ich finde das aber in einer MDI-Anwendung wie Access Unsinn.
Stell dann lieber die Popup-Eigenschaft des Formulars auf JA und Maximieren dito.

Ciao, Sascha

Jürgen32
27.05.2002, 17:19
hallo Sascha,
ich weiß nicht was ich falsch mache, aber bei mir klappt das einfach nicht. Ich habe mir deinen Code genommen und in ein Formular meiner Wahl eingebunden. Dann habe ich ne neue Schalftfläche erstellt und da beim klicken diesen Aufruf gemacht :
HideCommandBars True, False

zuerst habe ich noch in den Verweisen die "'Microsoft Office 9.0 Object Library'
an dritte stelle gestellt (höher ging nicht)
aber meine Standardleiste bleibt bestehen ....
oder muß ich noch in den Starteigenschaften was ändern .... ?? wäre toll wenn du mir erklären könntest was ich falsch gemacht habe ....
vielen Dank

Sascha Trowitzsch
27.05.2002, 17:54
Sorry, das war oben ein bißchen Quark.
Neu:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Private Function</span> HideCommandBars(bHide <span class="TOKEN">As</span> Boolean, bExceptMenuBar <span class="TOKEN">As</span> <span class="TOKEN">Boolean</span>)
<span class="TOKEN">Dim</span> cmdb <span class="TOKEN">As</span> CommandBar
<span class="TOKEN">On</span> <span class="TOKEN">Error</span> <span class="TOKEN">Resume</span> <span class="TOKEN">Next</span>
<span class="TOKEN">For</span> <span class="TOKEN">Each</span> cmdb <span class="TOKEN">In</span> Application.CommandBars
cmdb.Protection = msoBarNoProtection
cmdb.Visible = <span class="TOKEN">Not</span> bHide
<span class="TOKEN">Next</span> cmdb
Application.CommandBars("Menu Bar").Enabled = bExceptMenuBar
<span class="TOKEN">End</span> <span class="TOKEN">Function</span></pre></div>

Ciao, Sascha

PS: Ich rate dir sehr, beim Schließen des Formulars noch HideCommandBars True, true
aufzurufen, sonst kriegst du Schwierigkeiten ... ;)

[ 27. Mai 2002: Beitrag editiert von: Sascha Trowitzsch ]</p>

dänu
14.10.2002, 09:09
hallo,
ich habe versucht, diesen code zu benutzen, jetzt bringe ich die Menüleiste nicht mehr zum vorschein.
Welch Angaben muss ich bei Prozeduraufruf machen, um die Menüleiste auszublenden bzw. anzuzeigen und die Symbolleisten anzuzeigen ohne dass gleich alle Symbolleisten angezeigt werden.
vielen dank für eure Mühe

gruss dänu

Karlheinz
14.10.2002, 10:07
Hallo dänu,

Public Function MenüleisteAnzeige(Anzeige As Boolean)
CommandBars("Menu Bar").Enabled = Anzeige
End Function

Aufruf aus Prozedur mit

MenüleisteAnzeige True ' Einblenden
MenüleisteAnzeige False ' Ausblenden

Gruß Karlheinz

dänu
14.10.2002, 10:52
hallo karlheinz,
ich danke dir für deine Hilfe.

könntest du mir ein Link geben, wo die Englischen Bezeichnungen der Symbolleistennamen beschrieben sind?

Oder könnte ich es folgendermassen machen: Beim Laden des Formulars alle Symbolleisten (einschliesslich Menü Bar) ausblenden und beim schliessen des Formulars wieder diejenigen einblenden, die zuvor ausgeblendet wurden. Nicht dass alle möglichen Symbolleisten eingeblendet werden, wie dies mit dem oben beschriebenen Code bei mir der Fall ist.

MfG

dänu

Karlheinz
14.10.2002, 11:28
Haloo dänu,

die Name der Leisten erhälst du mit folgendem Code:

Public Function NameCommandBars()

Dim cmdb As CommandBar, cbarName As String

On Error Resume Next
For Each cmdb In Application.CommandBars
cbarName = cmdb.Name
MsgBox cbarName
Debug.Print cbarName
Next
End Function

Für eine vernüftige vorgehensweise zum Ein -u. Ausblenden (sofern überhaupt nötig) der verschiedenen Leisten müßte ich deine DB genauer können.

Gruß Karlheinz

Mc_Sin
14.05.2003, 12:07
Hallo,

ich stehe nun auch vor dem Problem, hab mir eure Tips genau durchgelesen.
ICh habe ein Personaltool und möchte, dass nur ich als admin die menüleisten sehe, wie kann ich das steuern?

habe 2 admin anmeldungen

abfrage der userid wird beim anmelden gemacht, kann ich das vl hierüber steuern.

Die shift Funktion möchte ich wenn möglich natürlich auch schliesen für
normale User

Bevor ich mir die DB zerschiese bitte um Hinweise und Hilfe.

Big thx

MC_Sin

El_Tonno
14.05.2003, 12:20
Tach !

Ich habe immer in leeres Makro in der DB abgespeichert. Das füge ich dann als Menuleiste und Kontextmenuleist in den Startoptionen ein. Wenn Du dann noch alle Häkchen entfernst, sind alle Menueinträge in jedem Formular weg.

Ciao.

Mc_Sin
14.05.2003, 12:55
HI,

was verstehst Du unter hinzufügen Menüleiste, unter Extras--Start???