tijdnotatie aanpassen in formulier als kolomdata is niet null

Status
Niet open voor verdere reacties.

uruburu

Nieuwe gebruiker
Lid geworden
2 apr 2020
Berichten
2
Hallo allemaal,

Ik heb een formulier dat vol zit met data en waarvan 1 veld gevuld wordt uit kolom X van een data tabel met een tijdnotatie .Dit werkt uiteraard uitstekend. Door middel van een bijwerk query kan kolom Z ook gevuld zijn met een andere tijd en wat ik zou willen doen is als er data in kolom Z staat die wordt weergegeven in plaats van de data uit kolom X. Ik neem aan dat er dan een gebeurtenis in gegevens aan dat veld moet komen die kijkt of veld Z gevuld is en dat laat zien maar ik heb werkelijk geen idee hoe ik dat zou moeten opbouwen. In dezelfde datatabel is ook een ja/nee veld die aangeeft dat er data in kolom Z staat. Daarnaast, om het echt ingewikkeld te maken, zou ik dmv bijv voorwaardelijke opmaak o.i.d. dat veld een kleur geven zodra de data uit kolom Z wordt gehaald.
Ik weet dat 1 gek meer kan vragen dan 10 experts kunnen beantwoorden maar probeer het toch. Wellicht is hetgeen ik allemaal wil niet eens mogelijk?
Alle ideetjes zijn welkom!
 
Allereerst welkom bij HelpMij :). Laat ik beginnen met een stukje 'handleiding', voordat je straks in de klassieke beginnersfout stinkt: rechtsonder zit een Quote knop. Die is bedoeld om, zoals ik hieronder laat zien, kleine stukken tekst te quoten. Het is geen antwoordknop. Daarvoor heb je twee mooie opties: de mooie blauwe (en veel grotere) knop <Reageer op bericht>, en het supergrote en mooie tekstvak <Snel reageren>.
In dezelfde datatabel is ook een ja/nee veld die aangeeft dat er data in kolom Z staat. Daarnaast, om het echt ingewikkeld te maken

Je maakt niet het écht ingewikkeld, je maakt het nodeloos ingewikkeld :). Dat selectievakje heb je namelijk helemaal niet nodig; het geeft redundantie in je tabel, en je loopt de kans op inconsistente data. Want hoe moet je een record lezen waarbij het selectievakje is aangevinkt (betekent: er is een tijd ingevuld) maar kolom Z is leeg? Dat klopt natuurlijk van geen kanten. Daarnaast betekent een ingevuld veld in kolom Z automatisch dat er een tijd is ingevuld :). Kortom: dat selectievakje is totaal overbodig, en vergroot alleen maar de kans op fouten. Mijn advies: gelijk weggooien.

Uiteraard is alles wat je vraagt verder mogelijk, en zelfs zonder ingewikkeld te hoeven doen. Om te beginnen met het laten zien van kolom Z als die is ingevuld. Maak in de query die onder je formulier ligt (heb je een tabel, maak dan eerst een query op basis van die tabel) een extra veld aan. Zet in die query een extra veld, met deze formule als voorbeeld:
PHP:
Tijd: IIf([Tijd2] Is Null;[Tijd1];[Tijd2])
Deze formule pakt, als er een waarde in Tijd2 staat, Tijd2 en anders Tijd1. Je ziet dus altijd de tijd die jij wilt zien. Dat nieuwe veld koppel je dan op het formulier aan het gewenste tekstvak.
Je tweede vraag heeft een vergelijkbare oplossing: dat doe je met Voorwaarde Opmaak. Hierbij gebruik je een formule die naar de waarde in Tijd2 kijkt. Bijvoorbeeld iets als: [Tijd2]>0.
Kun je hier verder mee?
 
Beste OctaFish,

Bedankt voor jou welkomstwoord en reactie.
Je hebt mij zeker in de juiste richting gestuurd al moest ik daar wel weer een eigen draai aan geven natuurlijk :thumb:

Er is geen query meer gemaakt maar uiteraard is wel de IIF gebruikt, echter in het formulier zelf.
Bijgesloten 2 screens.
afb1 zoals hij in het formulier is gekomen en afb2 om de voorwaardelijke opmaak te realiseren.
Niemand wil #FOUT in een vak hebben staan dus maar onzichtbaar gemaakt ;)
 

Bijlagen

  • afb1.png
    afb1.png
    2,5 KB · Weergaven: 34
  • afb2.png
    afb2.png
    4 KB · Weergaven: 33
Ik raad je toch aan om de formule in je query te zetten, al is dit niet fout natuurlijk. Maar formules in queries zijn nét even wat veiliger in het gebruik. En je VO heeft m.i. één regel teveel. Je kunt met de bovenste regel volstaan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan