Een veld niet zichtbaar maken

Status
Niet open voor verdere reacties.

ralluv

Gebruiker
Lid geworden
8 feb 2008
Berichten
68
Het lukt mij niet om mijn velden 'onzichtbaar' te maken. Ik denk dat dit ligt aan het feit dat mijn velden geen value Null zijn maar gewoon een empty String..

Ik heb al dit geprobeerd bij form_load:
Code:
If Me.Veld3.Value = Null then Me.Veld3.visible = False and Me.veld4.visible = True
If Me.Veld4.Value = Null then Me.Veld4.visible = False and Me.veld3.visible = True

Of Null heb ik vervangen met False maar dit werkt ook niet.
Ik moet namelijk Veld3 en Veld4 op mijn formulier over elkaar hebben en het zijn verwijzingen uit mijn Bestelformulier. Dit daar wordt een nieuwe klant gekozen of een bestaande. 1 van de 2 moet dus in mijn agenda komen te staan...
Iemand suggesties?
 
Laatst bewerkt door een moderator:
Het lukt mij niet om mijn velden 'onzichtbaar' te maken. Ik denk dat dit ligt aan het feit dat mijn velden geen value Null zijn maar gewoon een empty String..

Ik heb al dit geprobeerd bij form_load:
If Me.Veld3.Value = Null then Me.Veld3.visible = False and Me.veld4.visible = True
If Me.Veld4.Value = Null then Me.Veld4.visible = False and Me.veld3.visible = True
Probeer dit eens:
Code:
If len(nz(Me.Veld3.Value)) = 0 then 
    Me.Veld3.visible = False 
    Me.veld4.visible = True
endif
If len(nz(Me.Veld4.Value)) = 0 then 
    Me.Veld4.visible = False
    Me.veld3.visible = True
endif
De eventuele null waarde wordt geconverteert naar een lege string die dan weer getest wordt op de lengte. Je kan ook testen op een lege string
Code:
If nz(Me.Veld3.Value) = "" then 
    Me.Veld3.visible = False
    Me.veld4.visible = True
endif
If nz(Me.Veld4.Value) = "" then 
    Me.Veld4.visible = False
    Me.veld3.visible = True
endif
Maar dat is veel ineffectiever. Een computer rekent sneller, dus eerstgenoemde code is veel sneller.
Wat ook kan is dit
Code:
Me.Veld3.visible = False
Me.veld4.visible = False

Me.Veld3.visible = len(nz(Me.Veld4.Value)) = 0
Me.veld4.visible = len(nz(Me.Veld3.Value)) = 0
als ik me niet vergis.

HTH:D
 
Bedankt voor je uitgebreide reactie!!
Helaas werkt het niet, nu laat hij alleen Veld3 niet meer zien, ook niet als hij wel is ingevuld. Ik vind het heel raar want ik had dit namelijk zelf ook al geprobeerd, omdat dit logisch is. Ik moet er nog bij vermelden dat het om een subformulier gaat, maar volgens mij maakt dat niet veel uit, want ook als ik het subformulier uitvoer (in normale formulier layout) lukt het niet. Ik snap er echt niets van...
 
Welke heb je uiteindelijk geprobeerd? Ik zou deze nemen want die leest het makkelijkst
Code:
If len(nz(Me.Veld3.Value)) = 0 then 
    Me.Veld3.visible = False 
    Me.veld4.visible = True
endif
If len(nz(Me.Veld4.Value)) = 0 then 
    Me.Veld4.visible = False
    Me.veld3.visible = True
endif
Als bovenstaande code niet werkt dan is er iets anders mis...

Als we nog eens terugkijken naar jouw code
Code:
If Me.Veld3.Value = Null then Me.Veld3.visible = [COLOR="Red"]False and Me.veld4.visible = True[/COLOR]
dan kan je zien dat het rode gedeelte geevalueerd wordt als een boolean. en aangezien je begint met False and... zal je expressie nooit true worden. Je krijgt echter ook geen foutmelding omdat het een valide expressie is.
 
Ik had alle codes uitgeprobeerd. Er is inderdaad iets anders mis, maar ik heb echt geen flauw idee wat dat zou kunnen zijn. Even nog een toelichting waar je misschien wat aan hebt:
- Veld 3 is een bestaand veld van NewCustomer op het formulier Orders
- Veld 4 is een bestaand veld van Customer_id (bestaande klant) op het formulier Orders
- Samen staan ze op een subformulier om vervolgens op het formulier Calender te staan. Hier heb ik een Calender gemaakt waar je via een combobox de maand aan moet klikken en dan komt er bij de goede datum de order te staan met dus de klantnaam en Order_id.
Omdat ik alle ruimte nodig heb, omdat er 30 of 31 (dagen) subformulieren in mijn formulier staan. Daarom wil ik dus NewCustomer en Customer_id over elkaar hebben en wil ik dus 1 van de 2 laten zien.
Hopelijk kan je er wat mee, iig al hartstikke bedankt:thumb:
 
Ja hoor dat is prima, ik heb hem even met winrar ingepakt omdat hij met winzip veel te groot was.

Bekijk bijlage Database.part01.rar

Bekijk bijlage Database.part02.rar

Bekijk bijlage Database.part03.rar

Bekijk bijlage Database.part04.rar

Als je tijd hebt, dan had ik ook nog even een andere vraag. Ik wil mijn huidige voorraad laten zien op mijn order formulier. Ik heb uitgevonden hoe ik dat het gemakkelijkst kan doen, maar weet nog niet hoe ik dat ga vertalen na access.
Er zijn 2 data velden RequiredDate en ReturnDate. 1 veld dat de Beginvoorraad bezit (verhuurbedrijf dus alles komt terug) en 1 veld dat per order aangeeft hoeveel er van welk product wordt verhuurd. Dus nou zou het veld van de huidige voorraad per product het volgende moeten aangeven:
Huidige voorraad product = (Verhuurd tussen RequiredDate en Returndate) - de beginvoorraad.
Op het orderformulier ben je dan verplicht de requireddate en returndate in te vullen zodat daarna dit vak automatisch gevuld zou zijn met de berekening tussen de 2 geselecteerde data.. Snap je het een beetje :o .. heel erg bedankt !
 
heb je hem gecompact? en daarna gezipt?
Rar files kan ik hier niet lezen. Dat wordt dus een ander keertje of je moet hem alsnog als zip file kunnen posten?
 
ow hmm dat is vervelend want als ik hem zip dan is hij 866 kb groot en ik mag maar maximaal 100kb uploaden per deel.. Ik kan hem ook mailen of via prive bericht? alleen kan ik dat niet, dat kunnen alleen donateurs en senior members.. Of je moet mij even een prive bericht sturen met je mail of iets dergelijks :)
bedankt!
 
unknown compression method.
er rust een vloek op. Ik kom er nog op terug.
 
Guus heb je misschien onlangs nog erna gekeken :o? Ik zit namelijk nog altijd met die 2 probleempjes en kom er maar niet uit.
Alvast bedankt!!
 
Hoi Guus ,
Probleem hier is dat we met een continuous form te maken hebben

Ralluv,

Om je kalender te vullen mis je nog een filter criteria en een loop .

In de loop ga je de datums moeten opnemen en die laten lopen over je 30 dagen.
En als er een dag is waarin je een order hebt dan moet je je subform op die dag filteren .

Vermits je voor je subform gebruik maakt van een continuous form is het niet zo makkelijk om bepaalde tekstboxen visible te maken en andere unvisible.De code gaat volgen mij zeker in de on_current event moeten staan.(ga nog kijken wat ik hier kan vinden )


Groetjes
Dolfke
 
Laatst bewerkt:
Dolfke bedankt voor het meedenken!!
Mijn agenda werkt inmiddels prima, behalve dat ik nog altijd niet de velden onzichtbaar krijg. En zit ik nog altijd met mijn voorraadprobleempje (waar ik echt niet uit kom)
Bedankt!
 
Dolfke bedankt voor het meedenken!!
Mijn agenda werkt inmiddels prima, behalve dat ik nog altijd niet de velden onzichtbaar krijg. En zit ik nog altijd met mijn voorraadprobleempje (waar ik echt niet uit kom)
Bedankt!

Ralluv,

Als je onderstaande code in de on current event zet en je klikt in je calender dan zouden de juiste velden visible of unvisible moeten worden .

Moet maar eens proberen


Code:
Private Sub Form_Current()

If Len(Me.veld3 & "") > 0 Then
    Me.veld3.Visible = True
    Me.veld4.Visible = False
Else
    Me.veld3.Visible = False
    Me.veld4.Visible = True
End If
End Sub

Groetjes

Dolfke
 
Dit werkt helaas niet, bij jou wel? Stuur anders even de bijlage mee
tnx!
 
Hieronder bijlage,

Zip verwijderen en puntje zetten .z01 , .z02 , .z03

Dus open Frm_calender , Selecteer record 21 (LOL) hier wordt veld 3 dan unvisible.

Denk als je uw criteria een loops goed afstemt dat het wel gaat werken


Groeten
Dolfke
 

Bijlagen

Ralluv,

Zoals ik kan zien vul je uw Frm_Calender met je subform Dates_Subform. Dit doe je inderdaad met een loop.

Maar je krijgt nu in iedere subform alle gegevens te zien.

Moeten deze niet gefilterd worden zodat je enkel op de bv required datum de betreffende klant kunt zien aan wie dan geleverd moet worden ?

Daarom moet je uw subforms 1 voor 1 filteren . moet als criteria een dlookup in je tabel orders waar een datum staat die overeenkomt met de datum/dag in je frm_calender

Zie in je form Dates_Subform tevens in het oncurrent event geen code staan .
Code:
Private Sub Form_Current()

If Len(Me.veld3 & "") > 0 Then
    Me.veld3.Visible = True
    Me.veld4.Visible = False
Else
    Me.veld3.Visible = False
    Me.veld4.Visible = True
End If
End Sub
Groetjes
Dolfke
 
Ik had de code er uitgelaten, omdat hij anders een foutmelding gaf.
Wat u verteld over het filteren was in eerste instantie ook mijn bedoeling, maar ik had geen idee hoe ik dat moest doen dus heb ik het zo gelaten, want zo werkte het ook. Alleen werkt waarschijnlijk daardoor inderdaad niet het visible en unvisible.. dilemma haha :o
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan