#FOUT in Access voorkomen

Status
Niet open voor verdere reacties.

Visus

Gebruiker
Lid geworden
21 sep 2006
Berichten
101
L.s.

Ik heb een bronbestand waar in verschillende kolommen datums staan. Dit is echter tekst. Met de functie CDATE zet ik die in Access om in datums waar mee gerekend kan worden. Nu zijn er in deze kolommen echter ook lege velden. Hier geeft de functie CDATE dan #FOUT. Als ik deze gegevens vervolgens in een andere query wil gebruiken, om bijv. alleen personen jonger dan 19 weer te geven krijg ik op deze #FOUT een melding (Ongeldig gebruik van Null) en werkt de query niet meer. Hoe kan ik dat #FOUT voorkomen of vervangen door bijv een waarde " 0 ".

Groeten

Visus
 
Met het IIF commando kan je de testen op lengte null en vervolgens actie ondernemen als dat zo is:
Code:
IIF(len(veldnaam)=0;"0";veldnaam)
Als veldnaam leeg is dan wordt de waarde "0" neergezet. en anders de waarde van veldnaam.
Als je echter 0 met cdate omzet naar een datum dan is dat 30-12-1899.

dat wordt dan dus
Code:
IIF(len(veldnaam)=0;NULL,cdate(veldnaam))
Als je ipv NULL een fictieve datum invult dan gaat het nooit meer fout. Maar soms kan dat niet.

Voorbeeldje in een query:
Code:
select IIF(len(veldnaam)=0;NULL,cdate(veldnaam)) as DatumVeld from Tabelnaam


HTH:D
 
Guus2005,

bedankt voor je reactie, maar hij blijft een fout geven. Voor zover ik het in kan schatten is het veld in de gekoppelde tabel niet "echt" leeg, of kan de formule de "lengte" van dit veld niet vaststellen.

Ook met de eerste optie

IIF(len(veldnaam)=0;"0";veldnaam)

krijg ik geen 0 terug.
 
Dit zou ook moeten kunnen:

IIF(IsNull([Veldnaam]);0;[Veldnaam])

Michel
 
Probeer eens
...Len(Nz(veldnaam,""))=0......

Nu nog controleren op een enkele spatie:
Code:
IIF(len(Trim(Nz(veldnaam;""))=0;"0";veldnaam)
Dus: Nz om null waarden om te zetten in een leeg karakter veld, Trim om een veld met X spaties te strippen en daarna met Len het aantal overgebleven karakters tellen.


Enjoy!
 
Hallo,

Ik heb van alles geprobeerd maar blijf een fout krijgen. Ik heb een voorbeeld bestand bijgevoegd. De opmaak van de geimporteerde Excel data is bewust op tekst gehouden omdat ik dit bestand ook zo aangeleverd krijg. Omdat ik het bestand als .xml aangeleverd krijg is het geen optie deze eerst in Excel als datum op te slaan.
Wat moet ik doen om deze #FOUT weg te krijgen zodat ik kan rekenen met de datums?

Groeten
Visus
 

Bijlagen

rarloos

ik kan geen rar lezen. zip zit standaard in de huidige windows versies vandaar.
 
Dat het veld Tekst is, verandert uiteraard alles: je moet dan checken of het veld leeg is:

Expr2: IIf([Datum Intake]="";"";CDate([Datum Intake]))

Michel
 
Bedankt voor je reactie

Nu nog even de opmerking van Guus2005

Als veldnaam leeg is dan wordt de waarde "0" neergezet. en anders de waarde van veldnaam.
Als je echter 0 met cdate omzet naar een datum dan is dat 30-12-1899.


En zo werkt het:

IIf([Datum Intake]="";Null;CDate([Datum Intake]))

Bedankt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan