Foutmelding in query resultaat

Status
Niet open voor verdere reacties.

gcjvanbeek

Gebruiker
Lid geworden
27 nov 2006
Berichten
164
Hallo,
Bij het uitvoeren van een Query (berekening van het aantal dagen dat iemand ziek is) krijg ik in een aantal velden "Dagen"een foutmelding.
(Zie de bijlage)

De Query die ik wil gebruiken is :
Code:
SELECT Verzuim.RelID, Verzuim.[Datum ziekmelding], Verzuim.[Datum herstelmelding], Verzuim.Maandnz, Verzuim.[Aantal uren ziek], CInt([B])+CInt(([Datum herstelmelding]-IIf([Datum ziekmelding]>=#7/1/2008#,[Datum ziekmelding],IIf([Datum ziekmelding] Is Not Null,#7/1/2008#,[Datum herstelmelding]-[A])))) AS Dagen, IIf([Datum herstelmelding] Is Null,0,(DatePart("d",[Datum herstelmelding]))) AS A, IIf([Maandnz] Is Null,0,(-DateDiff("d",[Maandnz],DateSerial("2008",DatePart("m",[Maandnz])-1,"1")))) AS B
FROM Verzuim;

Voor het veld "Dagen" krijg ik een fout# als "Datum Herstelmelding" is null.

Als ik de conversion function CInt verwijder, verdwijnt de fout#, maar het veld blijft leeg.

Het lijkt erop dat de waarde B niet bij de rest van de expressie opgeteld kan worden.

Wie kan me helpen?
 

Bijlagen

  • Foutmelding Query.JPG
    Foutmelding Query.JPG
    49,5 KB · Weergaven: 60
De "#Fout" melding krijg je vanwege het ontbreken van de "Datum herstel". Dagen worden immers berekend op basis van de "Datum herstel" minus "Datum ziekmelding". Misschien een optie om de "Datum herstel" op vandaag te zetten, tot dat de "Datum herstel" definitief wordt. Je houdt dan in ieder geval ook bij hoe lang iemand al ziek is.

mvg
Charles
 
Fout in Query

De "#Fout" melding krijg je vanwege het ontbreken van de "Datum herstel". Dagen worden immers berekend op basis van de "Datum herstel" minus "Datum ziekmelding". Misschien een optie om de "Datum herstel" op vandaag te zetten, tot dat de "Datum herstel" definitief wordt. Je houdt dan in ieder geval ook bij hoe lang iemand al ziek is.

mvg
Charles

Hallo Charles,
Ik moet per maand bijhouden hoeveel dagen iemand ziek is.Je optie zal dus niet werken bij langdurig zieken.
Toch heb je me de goede richting opgeduwd. Ik heb een extra test ingebouwd voor de waarde is NULL. Ik heb een extra variabele C gemaakt zodat het geheel wat overzichtelijker wordt. Hieronder staat de code die het werk doet.
Code:
SELECT Verzuim.RelID, Verzuim.[Datum ziekmelding], Verzuim.[Datum herstelmelding], Verzuim.Maandnz, Verzuim.[Aantal uren ziek], CInt([B])+[C] AS Dagen, IIf(Nz([Datum herstelmelding],0)=0,0,(DatePart("d",[Datum herstelmelding]))) AS A, IIf(Nz([Maandnz],0)=0,0,(-DateDiff("d",[Maandnz],DateSerial("2008",DatePart("m",[Maandnz])-1,"1")))) AS B, IIf(nz([Datum herstelmelding],0)<>0,CInt(([Datum herstelmelding]-IIf([Datum ziekmelding]>=#7/1/2008#,[Datum ziekmelding],IIf(nz([Datum ziekmelding],0)<>0,#7/1/2008#,[Datum herstelmelding]-[A])))),0) AS C
FROM Verzuim;

Nu nog even de vaste datums variabel maken.

Bedankt voor je snelle reaktie.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan