0

Ein Freund von mir erstellt eine Datenbank für MS Access, und er stieß auf das folgende Problem.Wählen Sie Werte, die nicht in der Tabelle enthalten sind

Auf seiner Datenbank hat er eine Tabelle namens "Buchungen". Dieser Tisch verfolgt, wer wann welche Sporthalle gebucht hat. Es gibt ein Feld namens "member", das Werte aus einer "members" -Tabelle akzeptiert. Es gibt ein Feld namens "Halle", das Werte aus einer "Hallen" -Tabelle nimmt. Es gibt ein "Datum" -Feld. Und es gibt ein "Zeit" -Feld, das Werte aus einer "Slots" -Tabelle nimmt. Dies ist, um ein Dropdown-Menü mit allen möglichen Zeitfenstern (09:00, 10:00, usw. bis 22:00 Uhr) zu erhalten.

Member | hall | date | time 
--------+--------+--------+-------- 
Text | text | date | text 
Dropdown|dropdown| typed |dropdown 

Jetzt will er das Drop-Down-Menü, das alle Zeiten zeigt, nur die Zeiten, zu zeigen, dass für den ausgewählten Halle und das Datum nicht bereits ausgebucht sind.

Um dies zu tun, ich glaube, ich brauche eine Abfrage zu machen, die die folgenden, wenn ich Eingang das gewählte Datum und Sporthalle tun:

SELECT alle Zeitschlitze, wo der Schlitz nicht bereits in bucht ein vorheriger Datensatz der Buchungstabellen.

Dann würde ich herausfinden müssen, wie die eingegebenen Werte in die Abfrage eingeben und die Ergebnisse erhalten, und dann die Ergebnisse in die Optionen des Dropdown-Menüs.

Jede Hilfe wäre sehr dankbar

+0

Zunächst gehe ich davon aus, dass "alle Hallen alle verfügbaren Zeitfenster haben"? Oder können einige Hallen sagen, Mittag bis 5 statt 9:00 - 22:00? Dann, um das nicht schwieriger zu machen, aber ich nehme an, du erlaubst jemandem, zu sagen: "Ich brauche dieses Datum, egal, welcher Saal", oder "Ich brauche diesen Saal, kümmere dich nicht um Datum oder Zeit"? Ihre anfänglichen Drop-Down-Abfragen können anhand dessen bestimmt werden, was NICHT verfügbar ist. Werfen Sie einen Blick auf: https://access-programmers.co.uk/forums/showthread.php?t=240698 oder https://access-programmers.co.uk/forums/showthread.php?t=169635 –

+0

@ WayneG.Dunn Alle Hallen haben alle verfügbaren Zeitnischen. Und nein, wir erlauben niemandem zu sagen, ich brauche dieses Date, es ist mir egal, in welcher Halle. Aber bei der Eingabe versuche ich, dass das System zeigt, welche Zeiten verfügbar sind, sobald die Halle und das Datum spezifiziert sind. –

+1

Hier ist ein wirklich gutes Beispiel dafür, wie man das macht. Ich habe es gerade ausprobiert und es funktioniert gut: http://www.datawright.com.au/access_resources/bookings_without_clashes.htm Sie müssen die drei Abfragen erstellen, wie gezeigt, und sobald Sie die Filter hinzufügen, zeigt es nur die Zeiten, dass stehen zur Verfügung. Wenn Sie noch Fragen haben, lassen Sie es mich wissen und ich kann die von mir erstellte SQL (mit MEINE EIGENEN Namen!) Posten. –

Antwort

0

Sie können eine separate Abfrage machen eine eindeutige Nummer für alle möglichen Termine Zeiten und Hallen zu erzeugen, und eine identische Abfrage, um die Zahlen für alle gebuchten Slots zu generieren. Wenn dann das Datum und die Halle eingegeben werden, können Sie für jede mögliche Zeit für dieses Datum und diese Halle eine eindeutige Nummer generieren, nach der Sie überprüfen können, ob diese eindeutige Nummer in der Abfrage der gebuchten eindeutigen Nummern enthalten ist.

Verwandte Themen