Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Lieferstatus tracken : Anfügeabfrage Fremdschlüssel eintragen neuer Datensatz

Begonnen von SQUEEZE, Juni 08, 2015, 18:11:44

⏪ vorheriges - nächstes ⏩

SQUEEZE

Hey Leute,

Folgende Problemstellung:

Ich möchte ein Dokumentationstool aufbauen, was bisher auch gut geklappt hat:

Aktuell möchte ich ein Formular aufbauen, in dem ich tracken kann, in welchem run (alle 3 Monate) welche Person geliefert hat.

Tbl_run: der jeweilige run wird hier eingetragen (zb. 2015-03 für die ersten 3 Monate jan bis mar). Wichtig: An jedem run nehmen immer ALLE personen teil (auch die inaktiven sollen angezeigt werden - s. Nächster Punkt)

Tbl_person: Hier stehen alle Teilnehmer drin. Diese haben über eine weitere Tabelle einen Status (active / inactive - tbl_personstatus über den fremdschlüssel personstatus_id_f).  Status können sich jeden run ändern und es können neue Personen hinzukommen, die natürlich nicht in alten runs angezeigt werden sollen.

Tbl_deliverystatus: hier werden Name der Status hinterlegt, die man hinterher bei der Lieferungsverfolgung wählen kann (geliefert, verspätet, nicht geliefert)

Tbl_deltracking: In dieser Tabelle läuft nun alles zusammen dh hier stehen die Fremdschlüssel welche person in welchem run wie geliefert hat (tbl_delstatus: nicht geliefert/verspätet/geliefert).
Alle Fremdschlüssel sind Pflichtfelder (!!!).

Nun folgendes:

Ich habe mehrere Aufbauten des Formulars ausgetestet. Aber ich komme nie so ganz zum gewünschten Ergebnis. Folgendes soll passieren:

In dem Formular soll das Auswahlkriterium (dropdown auswahlbox) der run sein d.h. 2015-03. darauf hin möchte ich ALLE Personen (Unterformular) angezeigt bekommen (es nehmen ja alle Teil, deswegen möchte ich alle mit dem standardwert "not delivered" angezeigt bekommen, um so Schritt für Schritt abzuhaken. Würden nur die bereits eingetragenen angezeigt werden würde ich hinterher noch jemanden vergessen). Dh in der tbl_deltracking müssen für jeden run alle companies neu eingetragen werden (da andere run_id).

Optional wäre es im Formular schön, dass alle inaktiven ausgegraut und nicht editierbar sind. Ansonsten müsste man eben nur die anzeigen, die zum Zeitpunkt aktiv sind (status kann je run wechseln dh es nehmen manchmal mehr Teil oder weniger).

Hier habe ich bereits versucht es folgendermaßen zu realisieren: Ich möchte einen Button oder ggf ein Formular haben, in dem ich einen neuen run (zB 2015-6) hinzufügen kann. Hierbei sollen dann alle Personen eingetragen werden, die in der Personen-Liste stehen (ich kann zwischen 2 runs auch Personen hinzufügen oder auf inaktiv setzen).

Meine Idee war, sobald ich in tbl_run einen neuen run eintragen lasse (neuer Datensatz) gleichzeitig in die tbl_deltracking alle Personen per Anfügeabfrage hinzufügen zu lassen.
Problem ist aktuell, dass in del_tracking auch die Fremdschlüssel
run_id_f
del_status (stdwert 3 - not delivered)
rein müssen (Pflichtfeld).

Ich müsste also erst die run_id speichern (um genau diese gerade erstellte ID in die tbl_deltracking eintragen zu lassen) und dann jede Person für den aktuellen run in tbl_deltracking eintragen lassen inklusive des delstatus "not delivered" als Standardwert (id 3). Ich weiß derzeit nicht, wie genau ich das Ganze realisieren soll. Die Anfügeabfrage kennt nicht den gerade erstellten Schlüssel des neuen runs des runs und weißt somit auf schlüsselprobleme hin (ich muss ja den run, die person und den delstatus als Pflichtwert eintragen).


Ich bin (noch) kein VBA Genie, weil ich noch nicht alle Möglichkeiten kenne, wie ich Dinge realisieren kann. Die Anfügeabfrage war meine erste Idee, allerdings bin ich offen für jede andere Lösung.

Am Ende möchte ich nach run sortiert ALLE Personen sehen (die nicht inaktiv sind bzw diese auch aber ausgegraut und im Status für diesem run nicht änderbar), die im Standard den Status "not delivered" haben.
Danach möchte ich jeder Person für diesen ausgewählten run einen status zuweisen (delayed oder delivered - oder eben not delivered lassen).

Wichtig, dass je run companies dazu kommen können, in einem run inaktiv sein können, in einem anderen nicht etc.

Ich hoffe Ihr könnt mir helfen und ich habe die Struktur ausreichend erläutert. Sollte noch Klärungsbedarf sein, bitte ich Euch nachzufragen.

Danke!