Hallo,
zuerst mal schönes Wochenende!
Mache gerade in Freizeit ein Appartmentbuchprogramm.
Dazu gebe ich in einem ungebundenen Formularden
Anreisetag (ANT) und Abreisetag (ABT) ein.
Beim drücken eines Knopfes muss ich diese Datumsangaben (TTMMJJJJ)
mit den schon gemachten Buchungen aus Grundtabelle vergleichen.
Problem: Ich muss bei Loos über Tabelle die ANT und ABT mit jeweils den An- bzw Abreisetagen
des vorherigen(-1) des aktuellen (0) und des folgenden Datensatzes vergleichen.
Frage: Wie mach ich das?
Das hier klappt nicht(hier nur Zugriff auf 2 DS, brauche später ab er 3):
Außerdem hab ich noch die Problematik mit letzten DS aus Grundtabelle.
Könnte Ihr mir bitte Tipps geben(je mehr desto besser, jeder Vorschlag ist toll, auch Verweise
oder Verweis auf Beispielcode)
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim Datum_1 As Date
Dim Datum_2 As Date
Set db = CurrentDb
Set rst = db.OpenRecordset("Grundtabelle")
Do While Not rst.EOF
Datum_1 = rst!Tag_der_Abreise.Value
rst.MoveNext
Datum_2 = rst!Tag_der_Abreise.Value
If (Me.Anreisetag_F1 <= Datum_2 And Me.Anreisetag_F1 >= rst!Tag_der_Anreise) And rst!Appartement = 1 Then Me.App_1.Visible = False
If (Me.Anreisetag_F1 <= Datum_2 And Me.Anreisetag_F1 >= rst!Tag_der_Anreise) And rst!Appartement = 2 Then Me.App_2.Visible = False
If (Me.Anreisetag_F1 <= Datum_2 And Me.Anreisetag_F1 >= rst!Tag_der_Anreise) And rst!Appartement = 3 Then Me.App_3.Visible = False
Loop
rst.Close
Set rst = Nothing
End Sub
Grüße
Andreas
Hallo Andreas,
bei dieser Anforderung würde ich mit einer Buchungstabelle arbeiten, die alle Tage des Jahres beinhaltet und die Ressourcen (Zimmer, Wohnung, etc). Bei Buchung würde ich die Buchungsnummer unter der Ressource für jeden gebuchten Tag eintragen. Bei einer Anfrage brauchst dann nur geprüft zu werden, ob für alle gewünschten Tag kein Eintrag vorhanden ist.
hth
Hallo Jürgen,
vielen Dank für den Tipp. Hättest Du da einen Bsp.-Code oder
ähnliches.
Danke und Gruß
Andreas
wo klemmt's denn genau? Die Tabelle anlegen sollte doch kein Problem sein ... beim Befüllen, oder beim Abfragen?
Hallo Jürgen,
ich komm da nicht richtig weiter. Das gesurfe bringt fast nichts.
z.B.
- wie geht Schleife über zwei Datumsangaben, z.B. vom 10.09.2015 bis 15.09.2015
- wenn ich im Formular diese zwei Datums angegeben habe und auf Schaltfläche klicke, wie habe ich dann Zugriff auf die Belegungsabfrage
(weil ich noch ein berechnetes Feld habe) und die zwei Datumsangaben
in dieser Schleife zum abgleich?
Grüße
Andreas
An- und Abreisetag werden im Formular eingegeben.
Nach Klick auf Schaltfläche Suchanfrage soll
In Schleife (for i=Anreistetag to Abreisetag) die Tage durchsucht werden
Ob App_1 oder/und App_2 oder/und App_3 noch frei sind, also auf NEIN.
Zitat... vergleichen
Eine klares Ziel hinsichtlich des Vergleiches ist recht sinnvoll.
ZitatIn Schleife ...
Ist das Bedingung? In einer Datenbank, insbesondere wenn sie gut gemacht ist und nachhaltig arbeiten soll, würde man eine Abfrage (SQL) einsetzen.
=> Massendatenverarbeitung schlägt serielle Einzelverarbeitung
Der folgende Ansatz ermittelt einfach und übersichtlich Zeitraumüberschneidungen:
select
..
from
Tabelle T
where
T.Start <= [PrüfEnde]
AND
T.Ende >= [PrüfeStart]
Wenn Du jetzt wissen wollen würdest, welches der vorhandenen Appartements für den gesamten angefragten Zeitraum nicht belegt ist, könnte man das entsprechend erweitern, idealerweise bei Kenntnis Deiner Tabellen.
(Bilder abmalen würde ich nur bei genügend großer Extramotivation.)
Horrido und Danke Eberhard,
aber versteht das doch mal. Ihr seid die Cracks
und ich ein Anfänger. Wenn man bei euch Fachleuten
eine Frage stellt, wird man mit Fachwissen erschlagen
und man hat mehr Fragen als vorher.
Will doch einfach nur den Datumsstartwert und den Datumsendwert
mit dem Datumsfeld der Abfrage vergleichen.
Ich weiss, dass ich es nicht blicke, aber beantworetet doch einfach
bitte mal die Frage so, dass man ein wenig Licht sieht - Bitte.
Habe Didaktik ja auch immer für überflüssig gehalten, aber
a bisserl brauch man ja scho. (bitte nicht persönlich nehmen)
Gruß
Andreas
Zitataber beantworetet doch einfach bitte mal die Frage so, dass man ein wenig Licht sieht
Das hängt von Dir ab.
Die erste Antwort war lösungsorientiert.
Die jetzige ist situationsbezogen: Deine "Abfrage" ist für eine datenbankgemäße Verarbeitung so geeignet wie eine angelegte Monoflosse für einen 100-m-Sprint. Man würde zwar ankommen, aber Laufen ist das nicht, schön sieht es nicht aus, die benötigte Zeit für Häschenhüpf hat mit Sprint nichts zu tun, die Chance, sich blutige Knie oder eine aufgeschlagene Nase zu holen, ist erweitert.
Ist es das Licht, was Du erwartest?
ZitatMache gerade in Freizeit ein Appartmentbuchprogramm.
Muss es denn eine DB-Lösung sein?