Avatar billede uneerup Nybegynder
14. juni 2006 - 14:33 Der er 5 kommentarer og
1 løsning

Dato spørgsmål

Hej Eksperter,

jeg har et simpelt spøgsmål.

Jeg har en "booking" tabel. I denne tabel står der en række bookinger på sommerhuse. Der er et sommerhusid, en startdato og en slutdato.

Jeg skal så levere et udtræk der viser alle de "LEDIGE" perioder for et sommerhus. Hvordan gør jeg det???

Håber der er en skarp sjæl derude!

/Uneerup
Avatar billede ffsoft Praktikant
14. juni 2006 - 15:13 #1
Hvad mener du med ledig periode ? er det dag, uge eller måned ??

Den nemmeste er dag for der går du igennem recordsettet med et loop og checker om er indeholdt i den aktuelle periode.

do until rst.eof
If soegdato between startdato and slutdato then
' Optaget
else
' Ledigt
end if
rst.movenext
loop

Hvilken database bruger du ?? Hvad hedder tabellen ?? Hvad hedder felterne ??
Hvilken type er de ??
Avatar billede uneerup Nybegynder
14. juni 2006 - 16:08 #2
jeg har f.eks perioderne i recordset'et

(startdato  - slutdato)
(10-02-2006 - 14-02-2006)
(16-02-2006 - 18-02-2006)
osv.

Men jeg vil gerne have udskrevet
(14-02-2006 - 16-02-2006)

altså den den periode hvor huset ikke er booket

/Uneerup
Avatar billede uneerup Nybegynder
14. juni 2006 - 16:10 #3
jeg ved godt at den er booket den14-02-2006 men det er lige meget da man godt kan overtage et sommerhus samme dag som andre forlader det.
Avatar billede uneerup Nybegynder
14. juni 2006 - 16:11 #4
jeg bruger en access database
tabellen hedder booking
felteterne hedder

id  sommerhusid  datostart  datoslut
Avatar billede ffsoft Praktikant
14. juni 2006 - 19:52 #5
Lav et loop der gennemløber recordsettet og læg værdierne
startdato og stopdato i en tekststreng adskilt f. eks. af komma.
Læg indholdet af tekstrengen i et array med funktioen split().

Når du udlæser fra arrayet skal du ikke bruge den første og den sidste
post. Hvis dit array indeholder 6 datoer er det

arrOptaget(2) og arrOptaget(3)
arrOptaget(4) og arrOptaget(5)

der indeholder de to ledige perioder. Når du laver udlæsningen
laver du en tæller der starter på 2 og tæller to af gangen.

for iX = 0 to (ubound(arrOptaget)-1) step 2
' Udlæsning
next

arrOptaget(1) og arrOptaget(2)
arrOptaget(3) og arrOptaget(4)
arrOptaget(5) og arrOptaget(6)

viser de optagne perioder så må

arrOptaget(2) og arrOptaget(3)
arrOptaget(4) og arrOptaget(5)

vise de ledige perioder.
Avatar billede uneerup Nybegynder
14. juni 2006 - 20:59 #6
Tak for hjælpen. Det er jo ganske smart. Troede man kunne lave et SQL udtræk der kunne gøre det. Men det her bliver løsningen!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester