Voorwaarde voor veld format

Status
Niet open voor verdere reacties.

Scallebe

Gebruiker
Lid geworden
29 okt 2014
Berichten
528
Beste ontwikkelaars,

Bekijk bijlage Verschilstaat.pdf

In bijlage zie je mijn rapport.

Het gaat over de kolommen Betaald, Mutualiteit, BFA-M, Geweigerd

De format van deze velden = € #.#00;;"";""

Dus van zodra een veld de waarde 0 heeft zal de cel in mijn rapport blanco blijven.

In het voorbeeld hebben de eerste 4 rijen gegevens. Omdat enkele cellen de waarde 0 hebben zijn ze uiteraard blanco vanwege mijn format € #.#00;;"";""

Nu zou ik voor die eerste vier rijen wel de waarde € 0,00 willen zien in de blanco cellen. bv op voorwaarde dat er in de cel "Datum" een datum staat of als in de cel "Betaald" de waarde groter is dan 0.

Is dit mogelijk? Kan de format bepaald worden afhankelijk van een voorwaarde?


Thanks

Greetz

Pascal
 
Laatst bewerkt:
Probeer het eens met <Voorwaardelijke Opmaak>. Zelf zou ik het eerder ook in de formules zoeken; de berekening die je maakt zal soms wel en soms geen uitkomst hebben. Afhankelijk dus van je veld [Betaald]. Dus op basis daarvan zijn de resultaatvelden >0, 0 of leeg. In je opmaak gebruik je nu alleen valuta en leeg. Dat zou ik dan veranderen in: € #.#00;€ -#.#00;0;""
 
OctaFish,

Met uw oplossing staat in de cellen van de lege rijen ook 0,00 en dat wil ik juist vermijden. Enkel de cellen van de ingevulde rijen die de waarde 0 hebben zouden € 0,00 moeten vermelden.

Mijn default value in het formulier is altijd 0.

Ik heb ook al geprobeerd met een formule : bv in Betaald1 : =IIf(IsNull([Prestatie1]);"";[Betaald1]) maar de geeft de error : circulaire referentie.


U hebt ook voor iemand eens een oplossing gegeven voor een gelijkaardige vraag in een formulier met volgende code

Code:
Set objFormulier = Me.[Subformulier Ombouw_registratie_reken_Query_frm]
    Set frmOmbouw = objFormulier.Form
    With frmOmbouw!Verschil_richttijd_netto_ombouw
        If .Value > 1 Then
            Me.Opmerkingen.Visible = False
        Else
            Me.Opmerkingen.Visible = True
        End If
    End With

Is zoiets niet mogelijk voor een rapport? maar dan wel voor 40 velden :confused:

Greetz
 
Met uw oplossing staat in de cellen van de lege rijen ook 0,00 en dat wil ik juist vermijden.
Ik zei ook dat je in de formules moet kijken of er een berekening gemaakt moet worden of niet. En op basis daarvan maak je een veld leeg of geef je hem een berekening of 0.
Je kunt natuurlijk een berekend veld nooit naar zichzelf laten kijken. Dat levert altijd een circulaire referentie op. Maar Prestatie1 is ook niet een berekening, dat is het veld met de berekening.
 
Octafish,

Wat bedoel je eigenlijk met je moet het in de formules zoeken?

Het enige veld waar een berekenig wordt gemaakt is in de kolom geweigerd.(betaald-(mutualiteit+BFA-M)) en in de onderste rij voor de totalen.

Alle andere velden komen uit het formulier die de gebruiker moet invullen. (die dan via een query naar het rapport gaan)

Als er in het formulier velden worden leeggemaakt dan berekend hij ook geen totalen onderaan. Vandaar mijn default value 0 voor ieder veld.


Greetz

Pascal
 
... En nu snap ik het niet meer.... Doe er eens een voorbeeldje bij, zou ik zeggen!
 
Goede morgen OctaFish,

Ik heb alle toeters en bellen verwijderd in de DB.

Klik op de NEXT button voor het rapport.

in de onderste 6 rijen zal je zien dat in de vier kolommen overall € 0,00 staat.

In het formulier zijn die zes rijen ook niet gebruikt.

Ik zou dus in het rapport alle cellen van de lege rijen blanco willen hebben.

De € 0,00 mag blijven staan in de gebruikte rijen.


Thanks


Bekijk bijlage Brief naar klant.zip
 
Waarom heb je de tabel [TabelVerschilstaat] niet genormaliseerd? Je probleem zou niet bestaan als je dat wél doet...
 
En als laatste opmerking: je hebt de hele opmaakellende over jezelf afgeroepen doordat je in de tabel de 10 groepen met velden (normaliseren die hap!) ook nog eens een standaardwaarde van 0 hebt gegeven. Haal je die weg, dan is je probleem ook opgelost. Dus dat zou ik in ieder geval doen als ik jou was. Géén standaardwaarde op de numerieke velden, en alleen die velden invullen die ook echt ingevuld moeten worden.
 
Ik zie dat je een berichtje terug hebt geplaatst, had ik nog niet gezien :). Zodra je velden nodig heb als [Datum1] .. [Datum10], [Prestatie1] .. [Prestatie10] etc, dan weet je dat de tabel niet genormaliseerd is. Herhalende velden horen niet thuis in een tabel, die dien je te verplaatsen naar een eigen tabel. Die bevat dan de velden [VerschilstaatID], [Datum], [Prestatie], [Betaald] en [Mutualiteit]. Eventueel nog met een Autonummerveld als sleutel. Die nieuwe tabel koppel met met een één-op-veel relatie aan de tabel [TabelVerschilstaat] et voilà, je tabel is genormaliseerd! Grote voordeel: je maakt nu alleen maar records aan die je nodig hebt (i.p.v. altijd 40 velden te gebruiken heb je er maar 10 of 15 nodig bij 2 of 3 records) en je zit niet meer vast aan een maximum (10 nu). Naast talloze andere voordelen natuurlijk :).
 
OctaFish,

Ik denk je te kunnen volgen... :confused:

Ik heb dus de tabel [TabelVerschilstaat] met enkel een sleutelveld VerschilstaatID?

En ik maak een nieuwe tabel (vb TabelGegevensVerschilstaat] met de velden [GegevensID] (Sleutel), [VerschilstaatID], [Datum], [Prestatie], [Betaald] en [Mutualiteit] (en [BFA-M]?)
Die tabel koppel ik dan met [TabelVerschilstaat]

Plaats ik dan enkel in het formulier een extra veld [Geweigerd] als berekenend veld = [Betaald]-([Mutualiteit]+[BFA-M]) of doe ik dit enkel in het rapport?


Thanks

Greetz
 
OctaFish,

De koppeling met de tabel militairen moet ik natuurlijk ook behouden in de tabel [TabelVerschilstaat] :confused:

Had ik even over het hoofd gezien.

:)
 
In de tabel [TabelVerschilstaat] heb je nu 2 unieke velden staan: [VerschilstaatID] en [Personeelslid]. Die moeten daar dus sowieso blijven. Op zich logisch: elke verrekening wil je kunnen koppelen aan een persoon. Zelf zou ik er ook nog een datumveld aan hangen (die dan dus een kenmerk is van een verschilstaat) en die er voor zorgt dat je per personeelslid meerdere staten kunt maken, en die je dan kunt terugvinden op basis van de datum.
In de tabel [TabelVerschilstaatDetails] leg je dan de velden vast zoals ik hierboven aangaf. Het datumveld in deze tabel beschrijft de datum van de transactie. Blijkbaar wil je die apart vastleggen, want je hebt nu ook voor elke transactie een apart datumveld. Vandaar dat ik hem transporteer naar de nieuwe tabel. Als elke transactie dezelfde datum krijgt (en dat dus altijd) dan hoort de datum niet bij het detailrecord, maar bij de Verschilstaat. En kan de datum dus weg uit de detail tabel, want dan hoef je de datum maar één keer vast te leggen.
Snap je nu waarom je een tabel moet normaliseren? :)
 
OctaFish,

Ik heb em... :)

De prestatiedatum en de verschilstaatdatum zijn altijd verschillend. Dus daarom voorzie ik in elke tabel een datumveld. (Ik zal er een creëren in [TabelVerschilstaat] :)



Ik had eerst enkel [tabelVerschilstaat] gemaakt met de gegevens voor de verschilstaat en die dan gekoppeld met de tabel [Militairen] en daar liep al het een en ander mis.

De combinatie [Militairen] - [Verschilstaat] - [Gegevens] is dus inderdaad logischer. Ik had het moeten weten. :confused:

Nu hoef ik ook geen special format te maken voor mijn velden.


Thanks

Have a nice day

Greetz

Pascal
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan