Kollisionen zu vermeiden, ist die Logik hier ganz einfach:
Eine Kollision tritt auf, wenn:
RequestStartDate <= EndDate
and
RequestEndDate >= StartDate
Die obige somit Abfrage ein ziemlich einfach ist, aber wenn eine Kollision auftritt, wird die oben Wille Datensätze zurückgeben. Auf der Grundlage des oben Genannten können Sie die Buchung nicht zulassen. Natürlich möchten Sie das logische REVERSE von oben (so können Sie nur die Bedingungen umkehren und nur verfügbare Räume.
So können Sie eine Abfrage in Code erstellen und dann diese Abfrage in das Kombinationsfeld im Code zuweisen :
dim strWhere as string
dim dtRequeestStartDate as date
dim dtRequestEndDate as date
dtRequestStartDate = inputbox("Enter start Date")
dtRequestEndDate = inputbox("Enter end date")
strWhere="#" & format(dtRequestStartDate,"mm/dd/yyyy") & "# <= EndDate" & _
" and #" & format(dtRequestEndDate,"mm/dd/yyyy") & "# >= StartDate"
if dcount("*","tableBooking",strWhere) > 0 then
msgbox "sorry, you cant book
...bla bla bla....
Wie bemerkt man eine sQL-Zeichenfolge mit oben genannten Kriterien und Sachen direkt in einem Kombinationsfeld bauen
ich denke, Sie meinen Sie die Liste filtern möchten Zeigen Sie uns die aktuelle Zeile für Ihr Business.? Kombinationsfeld und die Namen Ihrer Datumssteuerelemente –
Sie müssen mehr Informationen als das bereitstellen, wenn Sie einige möchten Hilfe. Unter [Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels] (https://stackoverflow.com/help/mcve) finden Sie weitere Informationen dazu, was Sie in einer Frage angeben sollten. –