Hallo werte Community.
Ich habe folgende, grundlegende Access-Datenbank-Idee (kein Hit, Standard).
Nun möchte ich die Datenbank um Zeitabhängigkeiten erweitern, also zumindest das Auswahlfeld bei einem Angebot.
Dazu folgender, realer Hintergrund:
Dazu ist meiner Meinung nach die folgende Zwischentabelle nötig, die zum einen eine m:n-Beziehung herstellt, zum anderen die Gültigkeit von / bis ausgibt. Eine Abfrage ermittelt bereits, ob dieser Kontakt HEUTE gültig ist.
Nun scheitere ich am Select, da dieser, meiner Meinung nach, ein Bisschen ums Eck geht. So, wie der Select im Moment aufgebaut ist, liefert er mir ALLE Kontakte (unabhängig der Gültigkeit und unabhängig der Gültigkeit bei diesem Kunden).
Der Select müsste sinngemäßg wie folgt ergänzt werden:
Namenskonvention (über die sich sicher diskutieren ließe, aber so ist sie halt im Moment):
t_ = table
qt_ = query on table
tf_ = table field
qfc_ = query field calculated
Vielen Dank vorab für Input.
NACHTRAG:
Vielleicht ist auch das die bessere Darstellung...
Ich habe folgende, grundlegende Access-Datenbank-Idee (kein Hit, Standard).
Nun möchte ich die Datenbank um Zeitabhängigkeiten erweitern, also zumindest das Auswahlfeld bei einem Angebot.
Dazu folgender, realer Hintergrund:
- Kontakte (Mitarbeiter) wechseln schon mal die Firma und dazu möchte ich - warum auch immer - den Kontakt sozusagen mitnehmen, anstatt den Kontakt unter der neuen Firma / dem neuen Kunden ein weiteres Mal anzulegen
- So bin ich auf die Gültigkeit gekommen; jener Kontakt ist bei Kunde / Firma XY vom 01.01.2020 bis 31.12.9999 hinterlegt.
- Scheidet der Mitarbeiter aus, so wird 31.12.9999 durch den letzten Arbeitstag ersetzt.
- Angenommen, derselbe Kontakt fängt am folgenden Tag woanders an, so ergibt das das neuen "gültig-von"-Datum bis 31.12.9999 usw.
- Therotisch sind sogar überschneidende Zeiträume möglich; das ist auch nicht weiter wild, könnte - zumindest theoretisch - auch real der Fall sein (arbeitet in zwei Firmen jeweils Teilzeit) usw. ... also hier geht es nicht darum, dass die Zeiträume richtig bzw. gar überschneideungsfrei gesetzt werden sollen ... das wird an anderer Stelle behandelt. Es geht ausdrücklich nun um den richtigen Select.
- Es geht ebenfalls nicht über die eigentliche Verbindung der Daten: Schaue ich mir ein Angebot an, bei dem jener Kontakt mal gültig war, aber HEUTE nicht mehr gültig ist, so soll dieser Kontakt da natürlich nach wie vor drinstehen (unter all den Kontakten dieser Firma würde dieser Kontakt dann bspw. als inaktiv angezeigt werden).
- ABER: Wenn ich nun bei demselben Kunden (also - aus heutiger Sicht - dem ehemaligen Arbeitgeber) ein Angebot anlege, dann sollte ich diesen Kontakt nicht mehr selektieren dürfen / können.
Dazu ist meiner Meinung nach die folgende Zwischentabelle nötig, die zum einen eine m:n-Beziehung herstellt, zum anderen die Gültigkeit von / bis ausgibt. Eine Abfrage ermittelt bereits, ob dieser Kontakt HEUTE gültig ist.
Nun scheitere ich am Select, da dieser, meiner Meinung nach, ein Bisschen ums Eck geht. So, wie der Select im Moment aufgebaut ist, liefert er mir ALLE Kontakte (unabhängig der Gültigkeit und unabhängig der Gültigkeit bei diesem Kunden).
Code:
SELECT [t_Kontakt].[tf_KontaktID], [t_Kontakt].[tf_Name] FROM [t_Kontakt] ORDER BY [tf_Name];
Der Select müsste sinngemäßg wie folgt ergänzt werden:
Code:
... WHERE "Kontakt ist heute ein gültiger Kontakt des Kunden, bei dem ich gerade das Angebot anlege"
Namenskonvention (über die sich sicher diskutieren ließe, aber so ist sie halt im Moment):
t_ = table
qt_ = query on table
tf_ = table field
qfc_ = query field calculated
Vielen Dank vorab für Input.
NACHTRAG:
Vielleicht ist auch das die bessere Darstellung...
Zuletzt bearbeitet: