PDA

Vollständige Version anzeigen : Datumsproblem


sylvia
18.06.2001, 14:52
Hallo!
Ich habe ein mittelschweres Datumsproblem. Es geht hierbei um eine Raumbelegung. In der entsprechenden Tabelle habe ich ein Start- und ein Enddatum für die Belgegung. Ich möchte aber einen Bericht erstellen, indem der Raum für die entsprechenden Tage belgegt ist. Ein Beispiel: Der Termin findet vom 2.7.2001 bis 4.7.2001 statt, im Bericht sollen dann folgende Tage auftauchen:
2.7.2001
3.7.2001
4.7.2001
damit man weißt, wann der Raum belegt ist.
Wer kann mir helfen.

Vielen Dank schon mal

Sylvia

gloria
18.06.2001, 16:02
hi,
du kannst ja zum (kleineren) Datum einen Tag dazuzählen, dies solange bis es gleich dem größeren Datum ist (kleine Schleife).

ciso glori

C. Palmetshofer
18.06.2001, 16:34
Hi Sylvia,

1. eine Tabelle Kalender mit einem Feld 'Datum' erstellen.
2. Kalendertabelle befüllen
3. Abfrage:
select datum from kalender, buchung
where buchung.zimmernr = 1
and kalender.datum >= buchung.von
and kalender.datum <= buchung.bis

sylvia
21.06.2001, 14:19
Also, so wirklich hilft mir das nicht. Die Idee mit der Schleife ist mir auch schon gekommen, aber irgendwie habe ich da einen Aussetzer und keine Ahnung wie das funktionieren soll. Wäre toll, wenn da noch jemand ne Idee hätte...

Sylvia

Morli
21.06.2001, 14:53
Hallo Sylvia,

Für mein Beispiel mußt Du zuerst mal eine Tabelle Buchungen anlegen mit den Feldern Tag(Datum) und Buchung(Text).

Angenommen, Deine Buchungen stehen in der Tabelle3 mit den Feldern Tag1/Tag2/Buchung, dann füllt dir der folgende Code die Tabelle Buchungen mit den entsprechenden Daten.

Function Buchungen()
Dim rstQuelle, rstZiel As Recordset
Dim db As Database
Dim TageDiff As Long
Dim i As Long

Set db = CurrentDb

Set rstQuelle = db.OpenRecordset("tabelle3")
rstQuelle.MoveFirst

'Tabelle Buchungen leeren


DoCmd.SetWarnings False
DoCmd.RunSQL ("delete * from Buchungen")
DoCmd.SetWarnings True

Set rstZiel = db.OpenRecordset("Buchungen")

Do Until rstQuelle.EOF
TageDiff = DateDiff("d", rstQuelle!Tag1, rstQuelle!tag2)
For i = 0 To TageDiff
rstZiel.AddNew
rstZiel!Tag = DateAdd("d", i, rstQuelle!Tag1)
rstZiel!Buchung = rstQuelle!Buchung
rstZiel.Update
Next
rstQuelle.MoveNext
Loop

rstQuelle.Close
rstZiel.Close
db.Close

Set rstQuelle = Nothing
Set rstZiel = Nothing
Set db = Nothing

End Function :)

Hoffe, das hilft Dir!

Gruß

Rainer ;)