Bepaalde velden weergeven of verbergen op formulier en/of rapport

Status
Niet open voor verdere reacties.

pommeke

Gebruiker
Lid geworden
17 jul 2007
Berichten
237
Hallo,

Ik heb een voorbeeld database aangemaakt.
Bekijk bijlage 112859

Nu zou ik het volgende willen:
In het formulier staan het volgende
Keuze A en Keuze B
Veld A en Veld B
Nu,
Veld A zou alleen te zien mogen zijn als Keuze A aan is
Veld B zou alleen te zien mogen zijn als Keuze B aan is

En eigenlijk zouden ze NOOIT samen te zien mogen zijn.

Dit zou later ook op een rapport moeten toegepast worden.
 
't Is weer een 2007 db, dus ik kan er niet zoveel mee... Maar als je selectieveldjes gebruikt terwijl er maar één keuze gebruikt mag worden, dan zou ik dat doen met een groepsvak met optierondjes. Dan kun je er maar één kiezen. De rest van de actie hang je dan met VBA achter het Groepsvak.
 
't Is weer een 2007 db, dus ik kan er niet zoveel mee... Maar als je selectieveldjes gebruikt terwijl er maar één keuze gebruikt mag worden, dan zou ik dat doen met een groepsvak met optierondjes. Dan kun je er maar één kiezen. De rest van de actie hang je dan met VBA achter het Groepsvak.

Bekijk bijlage 112873

voila
 
Hartelijk dank :thumb: Zal er een blikje of twee op werpen...
 
Ik heb er nog niet heel veel naar gekeken (halve blik dus) omdat mijn pc-tje weer geformatteerd mocht worden :evil:
Maar, op basis van je opmerking
En eigenlijk zouden ze NOOIT samen te zien mogen zijn.
vraag ik me af waarom je twee selectievakjes gebruikt... Als je er maar één mag zien, mag je er ook maar één actief hebben, lijkt mij. En dat bereik je prima met één selectievakje. Op basis daarvan zet je of de ene optie aan, of de andere. Met een simpele procedure zet je dan het bijbehorende tekstveld op zichtbaar of niet.
 
Ik heb er nog niet heel veel naar gekeken (halve blik dus) omdat mijn pc-tje weer geformatteerd mocht worden :evil:
Maar, op basis van je opmerking

vraag ik me af waarom je twee selectievakjes gebruikt... Als je er maar één mag zien, mag je er ook maar één actief hebben, lijkt mij. En dat bereik je prima met één selectievakje. Op basis daarvan zet je of de ene optie aan, of de andere. Met een simpele procedure zet je dan het bijbehorende tekstveld op zichtbaar of niet.

Dat kan ik inderdaad doen,
bedankt voor de tip.
Maar die "simpele procedure" die ken ik niet hoor.
 
Dat is iets als dit: (ik heb één checkbox gebruikt, die nu chkKeuzeA heet)

Code:
Private Sub chkKeuzeA_AfterUpdate()
    If Me.chkKeuzeA = -1 Then
        Me.Veld_A.Visible = True: Me.Veld_B.Visible = False
    Else
        Me.Veld_A.Visible = False: Me.Veld_B.Visible = True
    End If
End Sub

Deze check zet je ook nog op de gebeurtenis <Bij aanwijzen>, zodat je de opgeslagen selectie ook gelijk goed ziet.

Code:
Private Sub Form_Current()
    If Me.chkKeuzeA = -1 Then
        Me.Veld_A.Visible = True: Me.Veld_B.Visible = False
    Else
        Me.Veld_A.Visible = False: Me.Veld_B.Visible = True
    End If
End Sub
 
Dat is iets als dit: (ik heb één checkbox gebruikt, die nu chkKeuzeA heet)

Code:
Private Sub chkKeuzeA_AfterUpdate()
    If Me.chkKeuzeA = -1 Then
        Me.Veld_A.Visible = True: Me.Veld_B.Visible = False
    Else
        Me.Veld_A.Visible = False: Me.Veld_B.Visible = True
    End If
End Sub

Deze check zet je ook nog op de gebeurtenis <Bij aanwijzen>, zodat je de opgeslagen selectie ook gelijk goed ziet.

Code:
Private Sub Form_Current()
    If Me.chkKeuzeA = -1 Then
        Me.Veld_A.Visible = True: Me.Veld_B.Visible = False
    Else
        Me.Veld_A.Visible = False: Me.Veld_B.Visible = True
    End If
End Sub

Hallo,

Mss een moeilijke vraag,
maar zou je dat kunnen toepassen op de database die in bijlage was?
En die dan terug plaatsen.
 
Geen probleem!

Hallo,

Perfect, ik heb dit kunnen toepassen op 1 formulier in mijn database.
MAAR:
Dit werkt goed, maar alleen als je de checkbox veranderd.
Ik zou dit nu graag hebben in een 2de formulier.
In het 2de formulier zet ik geen checkbox meer.
Maar het formulier mag wel alleen VELD_B weergeven als de checkbox was aangevinkt.
Waar moet ik de code dan zetten?
 
Dat hangt er een beetje van af hoe de formulieren zijn gekoppeld. Je geeft niet aan of je een subformulier gebruikt of niet.
Overigens zit in mijn voorbeeld ook een procedure die bij het bladeren naar de status van de checkbox kijkt, en het betreffende tekstvak toont, en de ander verbergt. Die code zou je dus ook moeten overnemen.
 
Dat hangt er een beetje van af hoe de formulieren zijn gekoppeld. Je geeft niet aan of je een subformulier gebruikt of niet.
Overigens zit in mijn voorbeeld ook een procedure die bij het bladeren naar de status van de checkbox kijkt, en het betreffende tekstvak toont, en de ander verbergt. Die code zou je dus ook moeten overnemen.

Het is geen subformulier
Het echt een ander formulier.
Ik heb de beide codes gebruikt.
En het werkt prima.

Als ik nu eens de checkbox wel op het 2de formulier zet,
maar niet activeer (dus dat je er niet kan op klikken)
Kan ik dan gewoon de code gebruiken die je hebt gegeven?
 
Ik snap niet helemaal hoe je dat tweede formulier gebruikt. Mag je even uitleggen.... Is het bijvoorbeeld wel gekoppeld aan het eerste? En zijn ze alletwee tegelijk geopend?
 
Ik snap niet helemaal hoe je dat tweede formulier gebruikt. Mag je even uitleggen.... Is het bijvoorbeeld wel gekoppeld aan het eerste? En zijn ze alletwee tegelijk geopend?

Ze zijn niet gelijktijdig geopend.
Ze zijn niet aan elkaar gekoppeld.

In formulier 1 geeft ja aan welke keuze je maakt.
In formulier 2 heb je dan alleen de invoer velden die afhankelijk zijn van je keuze
 
opgelost,

gewoon de code op controle in het 2de formulier
 
Dat is iets als dit: (ik heb één checkbox gebruikt, die nu chkKeuzeA heet)

Code:
Private Sub chkKeuzeA_AfterUpdate()
    If Me.chkKeuzeA = -1 Then
        Me.Veld_A.Visible = True: Me.Veld_B.Visible = False
    Else
        Me.Veld_A.Visible = False: Me.Veld_B.Visible = True
    End If
End Sub

Deze check zet je ook nog op de gebeurtenis <Bij aanwijzen>, zodat je de opgeslagen selectie ook gelijk goed ziet.

Code:
Private Sub Form_Current()
    If Me.chkKeuzeA = -1 Then
        Me.Veld_A.Visible = True: Me.Veld_B.Visible = False
    Else
        Me.Veld_A.Visible = False: Me.Veld_B.Visible = True
    End If
End Sub

Hallo,

Het werkt perfect op de formulieren,
maar nu wil ik het ook op een rapport toepassen.
Dit is de code:
Code:
Private Sub Repport_Current()
    If Me.Onderwijs = -1 Then
        Me.OndVD.Visible = True: Me.FixVD.Visible = False
        Me.OndHD.Visible = True: Me.FixHD.Visible = False
        Me.Bijschrift48.Visible = True: Me.Bijschrift40.Visible = False
        Me.Vak55.Visible = True: Me.Vak54.Visible = False
        Me.Bijschrift51.Visible = True: Me.Bijschrift43.Visible = False
        Me.TOT_OndVD.Visible = True: Me.TOT_FixVD.Visible = False
        Me.TOT_OndHD.Visible = True: Me.TOT_FixHD.Visible = False
        Me.TOT_Ond.Visible = True: Me.Tot_FIX.Visible = False
        Me.Tekst72.Visible = True: Me.Tekst74.Visible = False
    Else
        Me.OndVD.Visible = False: Me.FixVD.Visible = True
        Me.OndHD.Visible = False: Me.FixHD.Visible = True
        Me.Bijschrift48.Visible = False: Me.Bijschrift40.Visible = True
        Me.Vak55.Visible = False: Me.Vak54.Visible = True
        Me.Bijschrift51.Visible = False: Me.Bijschrift43.Visible = True
        Me.TOT_OndVD.Visible = False: Me.TOT_FixVD.Visible = True
        Me.TOT_OndHD.Visible = False: Me.TOT_FixHD.Visible = True
        Me.TOT_Ond.Visible = False: Me.Tot_FIX.Visible = True
        Me.Tekst72.Visible = False: Me.Tekst74.Visible = True
    End If
End Sub

Maar als ik het rapport bekijk, gebeurt er niets;
Ik kan alle velden zien.

wat is er fout?
 
Je gebruikt de verkeerde gebeurtenis. Je moet de code hier zetten:

Private Sub Details_Format(Cancel As Integer, FormatCount As Integer)
End Sub
 
Je gebruikt de verkeerde gebeurtenis. Je moet de code hier zetten:

Private Sub Details_Format(Cancel As Integer, FormatCount As Integer)
End Sub

Bekijk bijlage 113527

Ik heb het gedaan.
Maar geeft geen verschil
Code:
Private Sub Details_Format(Cancel As Integer, FormatCount As Integer)
    If Me.Onderwijs = -1 Then
        Me.OndVD.Visible = True: Me.FixVD.Visible = False
        Me.OndHD.Visible = True: Me.FixHD.Visible = False
        Me.Bijschrift48.Visible = True: Me.Bijschrift40.Visible = False
        Me.Vak55.Visible = True: Me.Vak54.Visible = False
        Me.Bijschrift51.Visible = True: Me.Bijschrift43.Visible = False
        Me.TOT_OndVD.Visible = True: Me.TOT_FixVD.Visible = False
        Me.TOT_OndHD.Visible = True: Me.TOT_FixHD.Visible = False
        Me.TOT_Ond.Visible = True: Me.Tot_FIX.Visible = False
        Me.Tekst72.Visible = True: Me.Tekst74.Visible = False
    Else
        Me.OndVD.Visible = False: Me.FixVD.Visible = True
        Me.OndHD.Visible = False: Me.FixHD.Visible = True
        Me.Bijschrift48.Visible = False: Me.Bijschrift40.Visible = True
        Me.Vak55.Visible = False: Me.Vak54.Visible = True
        Me.Bijschrift51.Visible = False: Me.Bijschrift43.Visible = True
        Me.TOT_OndVD.Visible = False: Me.TOT_FixVD.Visible = True
        Me.TOT_OndHD.Visible = False: Me.TOT_FixHD.Visible = True
        Me.TOT_Ond.Visible = False: Me.Tot_FIX.Visible = True
        Me.Tekst72.Visible = False: Me.Tekst74.Visible = True
    End If
End Sub

Kan je anders even kijken in de database (in bijlage)
Het is het rapport FACTUUR
 
Werp er een blik op!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan