Panik. At fjerne #Fejl med IsError pga en outer join
Mål: Jeg vil have null felter, når der ikke er match på data.Kører Access 2003.
Problemet bør kunne løses i et forespørgsels gitter med simple udtryk uden brug af VBA. Det er det jeg har gjort.
Tabeller.
1a. Har en tabel med alle datoer i hele 2010 Tbl_Calender.
2a. En tabel der indeholder den første dag i måneden samt en dag i denne måned (03,09,23)
Forespørgsler.
1a. En forespørgsel der laver en DateValue(Date) Q_Calender
2a. En forespørgsel der laver en
Date_: DateAdd("d";[Day];[Month_Year]) hvor Month_Year er f.eks. 01-05-2010 altså altid den første i måneden.
1b. Join data. Alle dage fra Q_Calender og kun de dage fra Date_ som har en værdi. (outer join)
Når den køres kommer den fint med data når datoer passer sammen. Men når der ikke er data i Date_, så forventer jeg at felter uden match kommer ud som Null.
Men de kommer ud som #Fejl.
2b. Arbejd arbejd
Udtryk1: IIf(IsError([Date_])=1;"1";Null)
Udtryk2: Str(IIf([Udtryk1] Is Null;1;0))
Udtryk3: IsNull([Udtryk1])
Når jeg kopierer det herover
Q_Date_From_TimeData_Result_3
Date date_ Udtryk1 Udtryk2 Udtryk3
01-05-2010 #Fejl #Fejl
02-05-2010 #Fejl #Fejl
03-05-2010 03-05-2010 1 -1
04-05-2010 04-05-2010 1 -1
05-05-2010 05-05-2010 1 -1
06-05-2010 06-05-2010 1 -1
07-05-2010 07-05-2010 1 -1
Når Jeg viser hvad der står på skærmen
Q_Date_From_TimeData_Result_3
Date date_ Udtryk1 Udtryk2 Udtryk3
01-05-2010 #Fejl #Fejl #Fejl #Fejl
02-05-2010 #Fejl #Fejl #Fejl #Fejl
03-05-2010 03-05-2010 1 -1
04-05-2010 04-05-2010 1 -1
05-05-2010 05-05-2010 1 -1
06-05-2010 06-05-2010 1 -1
07-05-2010 07-05-2010 1 -1