22. maj 2005 - 15:28Der er
36 kommentarer og 3 løsninger
Dato søgning i db
Hejsa.
Jeg har i en db en tabel med noget data og hvem der har haft hvad i hvilke peioder. Jeg har en "Startdato" og en "Slutdato". Hertil skal jeg have bygget en forespørgsel, som skal komme frem og spørge efter hvilken periode man ønsker at se. Lad os sige jeg har følgende data:
NAVN STARTDATO SLUTDATO Keld Bonde 01-01-2005 15-01-2005 Bo Stolpe 05-01-2005 18-01-2005
Når så forspørgslen spørger, og jeg indtaster f.eks 20-12-2004, som startdato og 04-01-2005 som "Slutdato", skal KUN Keld Bonde returneres, men hvis "slutdato" bliver sat til 06-01-2005 skal Bo Stolpe også vises sammen med. Alle poster med perioder mellem indtastede "Startdato" og "Slutdato" sakl vises.
Og kan man i Access, bede den om at sætte dags dato til "Startdato", mens formularen vises og derefter sættes tilbage til dags dato igen?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Jeg har lavet en periode der hedder 01-01-2000 - 31-12-2099, i 2 felter, "Startdato" og "slutdato". Derudover har jeg en der hedder 02-06-2005 - 10-06-2005, i samme felter. Jeg har sat "startdato" med kriterie "<=[indtast Start]" og "slutdato" med kriterie ">=[indtast Slut]". Skriver jeg så "start" til 01-01-2005 og slut til 02-01-2005 vises BEGGE poster. Også den der løber fra 02-06-2005 - 10-06-2005.
"Bl.a. er der 2 felter AFREJSE og HJEMKOMST, der som navnene siger fortæller tjenesterejsens periode. Perioden kan strække sig fra 1 dag til flere måneder. Et eksempel:"
Ja, lige meget hvilke start- og slutdatoer man indtaster, SKAL ALLE poster der løber inden for det angivne tidsrum vises. Altså skal f.eks Bo Stolpe's periode vises uanset og man indtaster
STARTDATO SLUTDATO 01-01-2005 05-01-2005 eller 05-01-2005 25-01-2005 eller 10-01-2005 15-01-2005
Altså bare den periode, man indtaster som kriterier, skal bare indgå i den periode, som personen allerede har.
PARAMETERS [Indtast Start dato] DateTime, [Indtast Slut Dato] DateTime; SELECT tblStartSlutDato_619666.*, [Indtast Start Dato] AS Start, tblStartSlutDato_619666.StartDato, tblStartSlutDato_619666.SlutDato FROM tblStartSlutDato_619666 WHERE (((tblStartSlutDato_619666.StartDato) Between [Indtast Start Dato] And [Indtast Slut Dato])) OR (((tblStartSlutDato_619666.SlutDato) Between [Indtast Start Dato] And [Indtast Slut Dato]));
Hejsa Terry. Det virker ikke helt. Hvis der f.eks er en periode der hedder 1-1-2005 - 31-01-2005, og jeg forespørger på 10-01-2005 - 15-01-2005, returneres data ikke.
Hej igen. Fik selv sat det sidste på, så den kom til at virke. Så er den del løst. Mange tak for hjælpen. Kan du hjælpe med anden del at spørgsmålet også?
Hi Lars I see you have it working now. You could try this too
PARAMETERS [Indtast Start dato] DateTime, [Indtast Slut Dato] DateTime; SELECT tblStartSlutDato_619666.* FROM tblStartSlutDato_619666 WHERE ((([Indtast Start Dato]) Between [StartDato] And [SlutDato])) OR ((([Indtast Slut Dato]) Between [StartDato] And [SlutDato]));
Dont know if I can help with "anden del .." unless I know what it is :o)
Fire away and lets see, but its getting late and I'm off for a short walk with the dogs. Will look as soon as I get back
Er glad for du kan hjælpe. Hele databasen kører simpelthen via datoer. Jeg har ganske simpelt en makro, som går ind og laver udregninger udfra hvad dags dato er. Jeg har en masse varer, som kan udlejes. Mens udlejnngsperioden står på, skal det angivne antal naturligvis forsvinde fra lageret, og når perioden er udløbet skal de tilbage på lageret. Jeg skal så også kunne lave et opslag på en periode (Som det første spørgsmål omhandlede), hvor den så skal vise hvad der er på lager i den periode
This SQL is more correct I think PARAMETERS [Indtast Start dato] DateTime, [Indtast Slut Dato] DateTime; SELECT tblStartSlutDato_619666.* FROM tblStartSlutDato_619666 WHERE ((([Indtast Start Dato]) Between [StartDato] And [SlutDato])) OR ((([Indtast Slut Dato]) Between [StartDato] And [SlutDato])) OR (((tblStartSlutDato_619666.StartDato) Between [Indtast Start Dato] And [Indtast Slut Dato])) OR (((tblStartSlutDato_619666.SlutDato) Between [Indtast Start Dato] And [Indtast Slut Dato]));
Lars 22/05-2005 21:15:52 you say that it is now working as you wanted. And you dont make any further comments after this stating that you still need help with the original question!!
Synes godt om
Ny brugerNybegynder
Din løsning...
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.