Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Zuordnung nach Regeln - Berichtsdaten automatisiert zuordnen

Begonnen von Klaus S. aus B, Dezember 14, 2015, 10:09:56

⏪ vorheriges - nächstes ⏩

Klaus S. aus B

Ich habe DB zu Erstellung einer Checkliste gebaut.
Der Inhalt der Checkliste variiert mit dem unterschiedlichen Lieferumfang. Es gibt unterschiedliche ,,Gewerke" und innerhalb der Gewerke ,,Aufgaben", die drin sein können, oder auch nicht.
Jetzt kommt aber die Schwierigkeit:
Die einzelnen ,,Prüfpunkte" können ,,einmalig vorkommen", d.h. dieser Punkt wird nur geprüft, wenn die entsprechende Aufgabe Teil des Lieferumfangs ist (das ist leicht). Andere Prüfpunkte werden ,,wiederholt geprüft", d.h. auch wenn in einem frühen Gewerk die Prüfung schon erfolgt ist, wird sie später nochmal wiederholt (auch leicht).
Es gibt aber auch Prüfpunkte, die ,,nur einmalig geprüft" werden, aber abhängig vom Lieferumfang im Rahmen unterschiedlicher Aufgaben/Gewerke. Hierbei ist ein Prüfpunkt zum Beispiel vier verschiedenen Aufgaben zugeordnet. Es gibt eine ,,Priorisierung",d.h. bei welcher Aufgabe der Prüfpunkt bevorzugt gemacht wird, welcher Zeitpunkt dann und so weiter.
Die ,,Prüfpunkte" habe ich in einer Tabelle. Die ,,Aufgaben" sind auch in einer Tabelle. Die beiden sind mit einer m:n Tabelle miteinander verbunden.
Als ersten Ansatz habe ich in die m:n Tabelle noch drei Felder (j/n) eingebaut, ob der Prüfpunkt bei dieser Aufgabe Prio 1, 2, oder 3 ist und drei Felder, welche Aufgaben ID die Prio 2, 3 und 4 haben.
Im Moment wähle ich erst über eine m:n Zuordnung zu einem Auftrag die Aufgaben zu den Gewerken des Lieferumfangs aus und dann aus einer gefilterten Liste (Zuordnung der Prüfpunkte zur Aufgabe) in einer zweiten m:n Zuordnung die Prüfpunkte aus. Das erfolgt aber manuell, wenn ich einen Fehler mache, kann es sein, dass der Prüfpunkt gar nicht, der falschen Aufgabe oder doppelt zugeordnet ist.
Daraus ist mir aber noch kein guter Ansatz gelungen, eine automatische Auswahl zu treffen.
Ich bin jetzt am Rätseln, wie ich die Checkliste nach Auswahl der Aufgaben automatisch erstellen kann. Über Abfragen? Über VBA ,,case select" Schleifen? ...???
Hat mir jemand einen Tipp, wie ich diese automatische Zuordnung schaffen kann?

Gruß
Klaus

DF6GL

Hallo,

ohne die Datenzusammenhänge ad hoc  genau verstanden zu haben, dürfte das Problem an der mangelnden Normalisierung liegen.
Zitat
drei Felder (j/n) eingebaut, ob der Prüfpunkt bei dieser Aufgabe Prio 1, 2, oder 3 ist und drei Felder, welche Aufgaben ID die Prio 2, 3 und 4 haben.

das gehört in eine oder mehrere weitere Tabelle(n) mit entspr. Beziehungen ausgelagert.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Klaus S. aus B

Hallo Franz,

sorry, ich versteh nicht , was Du meinst. Wahrscheinlich war meine Erklärung nicht gut genug.
Ich hänge mal einen etwas erläuterten Beziehungsscreenshot an.

Gruß
Klaus

DF6GL

Hallo,

sorry, wird mir jetzt auch nicht klarer....


Ich kann nur darauf hinweisen, dass "Aufzählungsfelder" (Prio1, Prio2, Prio3,...)  in eine n-Tabelle auszulagern sind.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MaggieMay

Hi,

und was sind denn "8960", "8961" ff. für Datenfelder?
Freundliche Grüße
MaggieMay

Klaus S. aus B

Hallo Maggie May,

B960 etc. sind j/n Felder, zur einfachen Auswahl der Gewerke.

Ich weiß, das ist DB technisch grottenfalsch, aber vor langer Zeit, mangels besserem Wissen und mit Ziel der Benutzerfreundlichkeit entstanden.  :-[

Gruß
Klaus

MaggieMay

Na denn... ;-)

Was das betrifft:
ZitatAls ersten Ansatz habe ich in die m:n Tabelle noch drei Felder (j/n) eingebaut, ob der Prüfpunkt bei dieser Aufgabe Prio 1, 2, oder 3 ist und drei Felder, welche Aufgaben ID die Prio 2, 3 und 4 haben.
da genügt doch ein Datenfeld "Prio", um die Zahl 1, 2 oder 3 aufzunehmen, und ein weiteres "FolgeAufgabe_ID_f" für die Nachfolgeaufgabe. Sich gegenseitig ausschließende Ja/Nein-Felder sind wenig sinnvoll. Um das im Formular in der gewünschten Form optisch darzustellen, kannst du eine Optionsgruppe einsetzen.
Freundliche Grüße
MaggieMay

Klaus S. aus B

Hallo zusammen,  anbei noch ein Screenshot, der mein Problem hoffentlich besser erklärt.

Die ersten beiden Zeilen sind klar, das ist kein Problem.
Für die dritte Zeile, suche ich eine Lösung.
Der Prüfpunkt "Anzugsmoment prüfen" muss im Auftrag einmalig geprüft werden. Wenn alle "Gewerke" (960 bis 965.0) verkauft sind, dann nur im Gewerk 962, Aufgabe "Installieren mech.".
Ist 962 nicht im Auftragsumfang, dann in Gewerk 960, wenn das nicht verkauft ist, dann in 965.0.

Gruß
Klaus

Klaus S. aus B

Hallo Maggie May,

das mit dem Optionsfeld ist schon mal ein gute Idee, da hatte ich nicht drangedacht.
Das mit dem Feld für die Nachfolgeaufgabe ist auch gut.
Aber wie ich damit vermeide, dass diese Aufgabe mehrfach "gezogen" wird, das erschließt sich mir noch nicht.

Gruß
klaus

MaggieMay

Zitatdass der Prüfpunkt gar nicht, der falschen Aufgabe oder doppelt zugeordnet ist.
Zumindest die doppelte Zuordnung lässt sich zuverlässig mit einem eindeutigen Mehrfelder-Index verhindern.

ZitatFür die dritte Zeile, suche ich eine Lösung.
Was ist denn anders an Zeile 3 als an den vorhergegangenen? Woher kommen das "x" und das "E"?
Freundliche Grüße
MaggieMay

Klaus S. aus B

Hallo MaggieMay,

das x und das E war jetzt nur zur Verdeutlichung gedacht (ohne DB, auf einem Stück Papier).
Es gibt Prüfpunkte, die im ganzen Auftrag nur zu einem ganz bestimmten Zeitpunkt ausgeführt werden. Ist diese Aufgabe nicht teil des Auftragsumfangs, dann wird dieser Punkt nicht geprüft. (auf Transportschäden prüfen macht halt nur Sinn, wenn das Teil gerade angeliefert wurde. Zwei Monate später braucht man darauf nicht mehr schauen). Diese Aufgabe habe ich jetzt mal mit E für einmalig gekennzeichnet. In der DB ist dieser Prüfpunkt in der m:n Tabelle einfach nur einmal verlinkt.
Die Punkte mit x sollen mehrfach geprüft werden. (es macht immer Sinn, vor der Prüfung zu schauen, ob man die richtige Zeichnung hat). Ist eine Aufgabe nicht Teil des Auftragsumfangs, dann wird halt einmal weniger geprüft. ;-)
In der DB ist das gelöst, dass der Prüfpunkt in der m:n Tabelle mit mehreren Aufgaben verlinkt ist und im Bericht an mehreren Stellen vorkommt.

Deshalb ist die dritte Zeile anders. Der Prüfpunkt ist in der m:n Tabelle mit drei Aufgaben verlinkt, soll im Bericht aber nur einmal auftauchen und zwar wenn alle drei Aufgaben Teil des Lieferumfangs sind, dann bei "962". Ist das nicht Teil des Lieferumfangs, dann bei "960" und erst dann bei "965.0".

Diese (ich nenne es mal) Abfrage: "welche Aufgabe gehört zum Auftrag und enthält sie Prüfpunkte mit der höchsten Priorität" macht mir Kopfzerbrechen.

Gruß
Klaus

MaggieMay

Hallo Klaus,

Zitatdas x und das E war jetzt nur zur Verdeutlichung gedacht (ohne DB, auf einem Stück Papier).

ich hatte das so verstanden, dass du das bereits gelöst hättest, inkl. Darstellung im Bericht, da du ja mehrfach geschrieben hattest "das ist leicht".

Wenn dem nicht so ist weiß ich auch nicht, wo man jetzt ansetzen soll bzw. eine erweiterte Lösung finden könnte.
Freundliche Grüße
MaggieMay