19. september 2006 - 17:07Der er
15 kommentarer og 1 løsning
Ukorrekt visning af forespørgsel
Formular ligger som underformular -bygger på denne forespørgsel med visning af ledig/optaget tid.
SELECT tblSkema.Skema, IIf(IsNull([AftaleTidspunkt]),"Ledig","Optaget") AS Status FROM tblAftalekalender RIGHT JOIN tblSkema ON tblAftalekalender.AftaleTidspunkt = tblSkema.Skema GROUP BY tblSkema.Skema, IIf(IsNull([AftaleTidspunkt]),"Ledig","Optaget"), tblAftalekalender.AftaleDato HAVING (((tblAftalekalender.AftaleDato)=[Forms]![frmMAIN]![SøgeDato] Or (tblAftalekalender.AftaleDato) Is Null));
På baggrund af bruger datovalg i et kalenderobjekt, vises eksempelvis et underformularen data .... men ...
Dage med reservationer vises korrekt eksempel ( dato 1 )
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
The problem is that for 18/09/2006 there are some times reserved (11:00+14:00+10:00). Yes it is true that they are for another date, but they exist in the table and therefore are NOT = (Is Null). So the only reason they don’t appear is because you have a criteria which is for example 19/09/2006 so those with date 18/09/2006 will not appear. Testing for Is Null doesn’t work because they are NOT = (Is Null)
That was a bit of a mouth full but I hope you understand.
An easy solution would also to have a date in tblSkema, which actually would make things easier and also more flexible, for example it would allow different opening times for different days.
Come to think of it, there is quite a simple solution.
Make a query which selects the "aftale" for the selected date. Lets call it qryAftalerkalender.
SELECT tblAftalekalender.AftaleTidspunkt, tblAftalekalender.Kunde_id, tblAftalekalender.AftaleDato FROM tblAftalekalender WHERE (((tblAftalekalender.AftaleDato)=[Forms]![frmMAIN]![SøgeDato]));
Now make a query which you use as the Record Source for the skema info form (frmVisTider).
SELECT tblSkema.Skema, IIf(IsNull([AftaleTidspunkt]),"Ledig","Optaget") AS Status, qryAftalerkalender.Kunde_id FROM tblSkema LEFT JOIN qryAftalerkalender ON tblSkema.Skema = qryAftalerkalender.AftaleTidspunkt;
Kom lige forbi, og kan ikke lade være med at blande mig!
Kan du ikke bare skrive:
SELECT DISTINCT tblSkema.Skema, IIf(IsNull([AftaleTidspunkt]),"Ledig","Optaget") AS Status FROM tblAftalekalender RIGHT JOIN tblSkema ON tblAftalekalender.AftaleTidspunkt = tblSkema.Skema WHERE (((tblAftalekalender.AftaleDato)=[Forms]![frmMAIN]![SøgeDato] Or (tblAftalekalender.AftaleDato) Is Null));
Der er ingen grund til at bruge GROUP BY og HAVING, for der sker ingen behandling på gruppeniveau (SUM, AVG osv.). I stedet bør DISTINCT kunne bruges. Desuden vil jeg tro, at dine problemer netop beror på, at selektionen blev placeret efter grupperingen.
Sorry, I obviously didn't pay enough attention (or wasn't bright enough) to see through your explanation at the time I was submitting my theory. After reviewing your explanation again, I think you're right, and the only way is to either create two seperate queries like you did or create a single query with a derived table. Personally I would have gone for the single query but that's a personal preference more than anything else.
So, well done, mate. Couldn't do the job any better myself this time. One always hope, you know! Well, maybe some other time...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.