tabblad uitschakelen

Status
Niet open voor verdere reacties.

tigo01

Gebruiker
Lid geworden
11 dec 2011
Berichten
47
Hi,

ik heb een formulier met daarop een aantal tabbladen. Nou zou ik graag een of meerdere tabbladen willen uitschakelen (zeg maar bij options ingeschakeld tijdelijk uitzetten) afhankelijk van een bepaalde waarde van een veld. Die afvraging is het probleem niet, maar ik kan niet vinden wat het commando zou moeten zijn om een tabblad tijdelijk uit te schakelen. Kan dat eigenlijk wel in VBA? Hoor het graag.

Mvg. Tigo
 
Tabbladen kun je niet uitschakelen, hooguit verbergen.
 
Hoi Michel,

dank voor je snelle antwoord. Wel vreemd wat je zegt, omdat het wel een optie is binnen het ontwerpen van het tabblad, maar blijkbaar niet als value binnen VBA is aan te passen. Maar verbergen is ook prima. Zou je kunnen aangeven hoe ik dat zou kunnen doen? Alvast bedankt.

Mvg. Tigo
 
De eigenschap <Enabled> bestaat als zodanig wel, en kun je ook wel aan- of uitzetten (ook met vba dus), maar de vraag is of je daar veel mee opschiet, want je kunt niet voorkomen dat een gebruiker het tabblad aanklikt en dus opent. Het enige wat je uitschakelt is de inhoud van het tabblad: de knoppen en tekstvakken etc. die daar op staan. Je kunt dus nog steeds zien wat er op staat. Daarom gebruik ik dat nooit, en verberg ik altijd tabbladen die aan een bepaalde instelling zijn gekoppeld. Op die manier maak je mensen ook niet lekker met opties die ze toch niet mogen gebruiken. Een voorbeeldje:
Code:
    For i = 1 To 3
        Me("pagLevel" & i).Visible = False
    Next i
    
    For i = 1 To 3
        If i <= AccessLevel Then Me("pagLevel" & i).Visible = True
    Next i
 
Hoi Michel,

op zich zou de tab inhoud uitzetten ook al voldoende zijn, maar ben het met je eens dat het niet mooi is.
Laatste vraag (denk/hoop ik), waar vraag ik dit af? In de gebeurtenis laden van de form waar de tabbladen in staan neem ik aan? Moet eenmalig afgetest worden per oproep van de form met de tabbladen. Wederom dank voor je snelle hulp.

Mvg. Tim
 
Als het eenmalig is, kun je het inderdaad bij het laden zetten.
 
Hoi Michel,

ik ben er bijna (denk/hoop ik). Eerste tabblad lukt nu prima. Maar ik heb 10 tabbladen waar ik soms meerdere wil verbergen. Maar bij de 2e krijg ik de melding "u kunt een besturingselement dat de focus heeft, niet verbergen". Ik dacht dit te verhelpen door het setfocus commando ervoor te zetten en te verwijzen naar een veld op het hoofdformulier (tabbladen zitten in een subformulier hiervan). Ik gebruik hiervoor "Forms!hoofdformulier!tussenvoegsels.SetFocus". Maar dat levert dezelfde foutmelding op. Zie jij wat ik fout doe? Wederom bedankt.

Mvg. Tigo
 
Tenzij je met subformulieren werkt, hoef je niet zo ingewikkeld te werken. Het tabblad control is eigenlijk 'onzichtbaar' als het om verwijzen gaat; elementen die op een tabpagina staan, staan gewoon op het formulier. Dus net zoals je de tabcontrol niet hoeft te vermelden als je naar een (tekst)veld op een tabblad verwijst, hoeft dat omgekeerd ook niet. Dus een knop of tekstveld (knoppen zijn vaak prima alternatieven) de focus geven doe je simpel met:
Code:
Me.cmdOpslaan.Setfocus
Overigens mag het natuurlijk wel, een volledige verwijzing, maar het is nogal omslachtig en foutgevoelig, want als je de naam van het formulier verkeerd typt of later verandert, doet de code het niet meer.
Waarom jouw code niet werkt? Geen idee, dan zou ik de db moeten zien.
 
Ben eruit. Ik moet de focus zetten op het tabblad dat wel zichtbaar blijft (werk nml met een subform met daarin tabbladen). Geen idee of dit de juiste oplossing is, maar het werkt wel. Michel, bedankt voor je hulp.

Deze vraag mag gesloten worden :thumb:
 
Dat sluiten mag je zelf doen. Da's namelijk de verantwoordelijkheid van de TS. En je hebt gelijk dat je een zichtbaar tabblad activeert, want dat werkt altijd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan