Opstarten en sluiten zonder menu's

Status
Niet open voor verdere reacties.

popmarter

Gebruiker
Lid geworden
3 jan 2008
Berichten
51
Hallo, mijn database start op met een schakelbord (ik heb alle vinkjes weggehaald voor die optie), maar er blijft 1 menubalk zichtbaar (met printopties e.d.).

Hoe krijg ik die weg?

Een macro voor 'maximaliseren' bij de gebeurtenis "Laden" werkt niet.
 
klein schopje, is mijn vraag te moeilijk of is het zo simpel dat ik beter moet zoeken? ;)
 
Waarom zou je 't willen? Een gebruiker moet de db toch af kunnen sluiten?
 
Maar, om toch antwoord te geven: met onderstaande code lukt het wel.
Code:
'Hiermee verberg je alle werkbalken
Dim i As Integer
For i = 1 To CommandBars.Count
     CommandBars(i).Enabled = False
Next i
 
Doordat een taakbalk nog in beeld blijft kunnen mensen o.a. nog printen en ik wil ze min of meer dwingen ingebouwde rapporten te gebruiken. Het printen werkt toch niet goed ivm knoppen en beeldopbouw.

Vandaar de gedachte om echt alleen te werken vanuit het schakelbord.

Bedankt voor de code, maar waar zet ik die precies neer?

Ik heb het geprobeerd het in de code bij Schakelbord in designmode en dan properties, event, On Open te zetten, maar dat ging niet. Hoort het daar ergens?

EDIT: ben er uit: Bij ON LOAD moet het staan, niet On Open.

Bedankt!
 
Laatst bewerkt:
Met bovenstaande zijn wel mooi alle werkbalken eruit, maar wanneer ik mijn rapport open ontbreekt ook de zelfgemaakte werkbalk om te printen. Is het mogelijk die wel in beeld te krijgen?
 
Ja.... zoals je ziet, is de code vrij simpel; hij loopt door alle werkbalken heen, en zet ze uit. Door False te vervangen zet je ze weer aan. Bouw een extra check in die de naam van de werkbalk vergelijkt met jouw eigen werbalk. Als die overeenkomt, moet die balk niet uit worden gezet, anders wel. (Een If... Then...Else...Endif dus)
 
hmm, ik ben een poos aan het zoeken geweest, maar weinig gevonden waar ik iets mee kan, of snap... mag ik een hintje?
 
Tuurlijk...
Hierbij ook nog eens een andere manier om het op te lossen.

Code:
Dim cmd As Object

For Each cmd In CommandBars
    If cmd.Name <> "Jouw werkbalk" Then
        cmd.Enabled = False
    End If
Next
 
Bijna...

Het werkt, maar nu loop ik tegen het punt aan dat ik de custom-made werkbalk eigenlijk alleen in beeld wil na het openen van een report..

Het is nu, of alles uit behalve mijn werkbalk, of alles uit en nergens een werkbalk.

Is hier nog een charmante oplossing voor?
 
Jawel; verberg met de standaard code alle werkbalken, en maak 'm zichtbaar bij het openen van het rapport. Bij het sluiten van het rapport kun je 'm weer verbergen.
 
Ik ben hier nog niet helemaal uit. In mijn openingscherm (formulier) plaats ik bij 'bij laden' deze code:

'Hiermee verberg je alle werkbalken
Dim i As Integer
For i = 1 To CommandBars.Count
CommandBars(i).Enabled = False
Next i

Dan zijn alle balken weg, prima dus.

Op een andere formulier staat een knop om te printen. Die opent een rapport. Daar wil ik dan mijn zelfgemaakte werkbalk bij tonen. Wat zet ik dan aan code precies waar neer? Alleen de properties aanpassen helpt niet, dan verschijnt die werkbalk niet.
Op de werkbalk zit ook een knop 'sluiten' daarmee sluit ik het rapport af, om terug te keren naar het formulier waar de printknop op staat.

Iemand een suggesties, of over hoe het mooier kan?
 
Zoals ik al zei: bij het laden van het rapport moet je code uitvoeren die de ene werkbalk weer zichtbaar maakt.

Code:
[B][/B]Private Sub Report_Open(Cancel As Integer)
Dim cmd As Object

For Each cmd In CommandBars
    If cmd.Name = "Jouw werkbalk" Then
        cmd.Enabled = True
    End If
Next
End Sub

Daarmee moet het lukken. Bij het sluiten moet je de werkbalk dus weer disablen, Ik neem althans aan dat je dat wilt.
 
Hoezo? Je wilt hem toch Enabled hebben?
 
:) ja, maar zoals ik bij On Open deze code neerzet om de werkbalk te laden, wil ik hem bij On Close weer sluiten. Maar welke code moet ik daarvoor gebruiken??
 
De omgekeerde variant.... Enabled=True, of Enabled=False; meer smaakjes zijn er niet ;)
 
Misschien moet je 'm ook nog zichtbaar maken...

Code:
Private Sub Report_Open(Cancel As Integer)
Dim cmd As Object
For Each cmd In CommandBars
    If cmd.Name = "JouwBalk" Then
        cmd.Enabled = True
        cmd.Visible = True
    End If
Next
End Sub

Om 'm aan te zetten

Code:
Private Sub Report_Close()
Dim cmd As Object
For Each cmd In CommandBars
    If cmd.Name = "JouwBalk" Then
        cmd.Enabled = False
        cmd.Visible = False
    End If
Next
End Sub
Om 'm weer uit te zetten.
 
He, het werkt. Ik meende die optie toch ook al geprobeerd te hebben.

Bedankt! :)
 
Mag deze ook weer op Opgelost ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan