Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: MrB am September 25, 2018, 16:12:36

Titel: Einzelteile in mehreren Listen
Beitrag von: MrB am September 25, 2018, 16:12:36
Hallo
nachdem ich das Problem vorher glücklich selbst lösen konnte bin ich jetzt so weit, das ich die Zuordnungen der Teile zu den einzelnen Workshoplisten (zB.:tblWS07).
Das Grundgerüst ist die tblTeileliste, in der alle Einzelteile enthalten sind, die wir brauchen.
In der tblMAT_Gruppe sind verschiedene Materialgruppen wie zB  Büroausstattung oder Werkzeugmaschienen.
Die tblWorkshopCodierung enthält die verschiedenen Workshops die bei uns von Klassenraum bis Schmiedewerkstatt,
jeder dieser Workshops hat seine eigene Liste (tblWS##). Problem ist jetzt, das viele Teile in verschiedenen Workshops eingesetzt werden und ich nicht weis wie ich diese in eine Lieferliste oder Bestelliste bekommen soll.
Ich wäre glücklich wenn mir jemand da helfen könnte da einen Plan zu machen.

Danke im voraus MrB
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MzKlMu am September 25, 2018, 16:18:34
Hallo,
Zitatjeder dieser Workshops hat seine eigene Liste (tblWS##).
das ist schon mal grundsätzlich falsch. Alle Workshops müssen in eine Liste mit einem Kennzeichen für den Workshop als Fremdschlüssel.

Mir scheint die Tabellenstruktur/ das Datenmodell bedarf noch der Aufbereitung.
Zitatda helfen könnte da einen Plan zu machen.
Mit dem Plan wäre auch beim Datenmodell zu beginnen.

Zeige mal ein Bild des Beziehungsfensters.
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MrB am September 26, 2018, 08:31:47
Hallo und danke für deine Antwort
Eine Liste mit den Workshops existiert unter tblWorkshopcodierung hier sind alle vorhandenen Workshops gelistet.
Was muss ich mit den Einzellisten machen tblWSxx ? Zusammenfassen ok und dann eine Beziehung herstellen zwischen tbl Workshop und tblWS ? L2 tblWorkshopcodierung mit L1 tblWS ? Habe tblWS erstellt und mit Primärschlüssel ID versehen.
Die Teileliste ist aus diversen Excellisten zusammengefügt, die im Laufe diverser Jahre entstanden sind daher viele doppelte und keine einheitliche Nummerngebung. Die Vernummerung habe ich über Excel erledigt und die Doubletten über Access gefiltert und gelöscht. Dadurch ist natürlich die Zuordnung zu den Workshops weggefallen.
Ich versuche mal die Hauptliste aufzulösen
ET_Number = soll Primärschlüssel werden ist aus L2-L5 zusammengesetzt
PID = unbenutzt
L1 = Workshopcodierung mit der 99 wo alle Teile drinstehen die in mehreren Workshops genutzt werden.
L2 = Workshopcodierung zum Nummer finden
L3 = Materialgruppe
L4 = Aus der Sortierung über Excel hervorgegangene Sortierung nach Alphabet und doppelten
L5 =Aus der Sortierung über Excel hervorgegangene Sortierung nach Alphabet um Einzelteile und Ersatzteile in L4 aufzulösen zB L4 = Beamer und in L5 Beamer, Deckenhalterung, usw
School = unbenutzt
Workshop = Buchstabenkodierung aus tblWorkshopcodierung
MAT-GRP = Materialgruppe
VDMA-PTS = noch unbenutzt
Satz oder Vorgabe = noch zu füllen
G-Item-German = deutscher Name
SG-Item-German = Name für Einzelteile falls vorhanden
G-QTY = Anzahl Workshops
SG-QTY =Benötigte Anzahl pro Workshop
QTY =tatsächliche gelieferte Zahl
Rest sind Daten wie Preise Beschreibungen auf Englisch Lieferant usw

MrB



Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MzKlMu am September 26, 2018, 09:12:48
Hallo,
sorry, aber das Datenmodell ist völlig, aber wirklich völlig unbrauchbar.
Die 26 WS Tabellen müssen alle in einer Tabelle zusammengefasst werden. Dass das notwendig ist, erkennt man schon an den gleichen Feldnamen.
Auch die Teileliste selbst ich nicht normalisiert.
Das kannst Du komplett einfach in die Tonne treten (Entschuldigung).
So macht das keinen Sinn, mit dem gegenwärtigen Aufbau kann ich Dir auch nicht helfen.
Du solltest Dich mit den Grundlagen zum Aufbau relationaler Datenbanken beschäftigen.
https://www.hdm-stuttgart.de/~riekert/lehre/db-kelz/
https://www.access-tutorial.de/

Wenn Du bei Deiner Version bleiben willst, musst Du mit einer 26 fachen Unionabfrage diese Tabellen zu einer Tabelle zusammenfassen, wobei ich nicht weiß, ob eine 26 fache Union überhaupt funktioniert.
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MrB am September 26, 2018, 10:10:54
Hallo Klaus
habe die tblWS aus meine Datensicherung erstellt bevor ich die doppelten ET_Number gelöscht habe, sodass jetzt alle tblWS in einer Tabelle sind.
Habe die Beziehungen gelöscht und neu verknüpft. Ist das so besser so ?
Cord
Ps
Das Datenmodel ? also die tblTeileliste ?
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: DF6GL am September 26, 2018, 10:37:13
Hallo,


das ist noch lange nicht gut...


Es fehlen Primärschlüssel
Die Beziehungen sind falsch gesetzt.  Es müssen die Primärschlüssel und Frendschlüssel für die Beziehungen genutzt werden.

(z. B. "Bezeichnung" zu "Mat-Grp" ist falsch , tblMat_Gruppe kann (muss) entfallen wie auch "Mat-GRP",  "Supplier"   über Primär/Fremdschlüssel verbinden)


tblTeileliste ist nicht normalisiert. 

Siehe u. st. links 1 und 1a wie auch die Links von Klaus.


Und nicht zuletzt:  Keine Sonder- und Leerzeichen in Namen verwenden und auch keine reservierten Wörter ("Anzahl") als Namen verwenden.
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MzKlMu am September 26, 2018, 11:03:46
Hallo,
weitere Fragen:
Was sind denn die Felder mit dem L1, L2 usw.
Was sind die Felder Stufe0-3 ?
Wieso gibt es in der MatGruppe ein Feld L3 ?

Jede Beziehung muss mit referentieller Integrität ausgestattet werden, was aber bei Dir nicht funktionieren wird, da noch zu viele Fehler drin sind.

Da gibt es noch viel zu tun. Mit Formularen brauchst Du da erst gar nicht anzufangen.
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MrB am September 26, 2018, 11:24:26
Hallo hab ich leider erwartet  :(
Also bevor ich weitermachen kann:
primären Schlüssel vergeben
tblTeileiste normalisieren ( Aufteilen ?) brauche ich vielleicht nochmal Hilfe
Namen abändern, damit Sonderzeichen weg sind
unnötige aus tblTeileiste löschen zB MAT-GRP alle QTY
Warum soll die tblMAT-Gruppe weg ? oder ist nur der doppelte Bezug gemeint ?
in Supplier steht leider der Name drin nicht die ID würde ich auch gerne austauschen

Zu den Fragen von Klaus:

die Namen in der tblTeileliste habe ich hier aufgelistet

ET_Number = soll Primärschlüssel werden ist aus L2-L5 zusammengesetzt
PID = unbenutzt
L1 = ist die Zuordnung des Teiles in welchem Workshop es vorkommt (tblWS)
L2 = Workshopcodierung zum Nummer finden
L3 = Materialgruppe
L4 = Aus der Sortierung über Excel hervorgegangene Sortierung nach Alphabet und doppelten
L5 =Aus der Sortierung über Excel hervorgegangene Sortierung nach Alphabet um Einzelteile und Ersatzteile in L4 aufzulösen zB L4 = Beamer und in L5 Beamer, Deckenhalterung, usw
School = unbenutzt
Workshop = Buchstabenkodierung aus tblWorkshopcodierung
MAT-GRP = Materialgruppe
VDMA-PTS = noch unbenutzt
Satz oder Vorgabe = noch zu füllen
G-Item-German = deutscher Name
SG-Item-German = Name für Einzelteile falls vorhanden
G-QTY = Anzahl Workshops
SG-QTY =Benötigte Anzahl pro Workshop
QTY =tatsächliche gelieferte Zahl
Die Stufen entsprechen Lieferungen sprich für die Einrichtung Stufe0 bis 12Monate Stufe1 usw (stelle Fest könnte auch ein Feld sein? auch wenn Teile in mehreren Stufen gebraucht werden?)
Rest sind Daten wie Preise Beschreibungen auf Englisch Lieferant usw

L3 in MAT-GRP entspricht L3 in tblTeileliste

Cord






Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MzKlMu am September 26, 2018, 11:42:37
Hallo,
da kann ich nur sagen O,je  ;D

Die Felder L1 bis L5 sind ersatzlos überflüssig, ergibt sich alles über die Beziehungen wenn diese korrekt angelegt sind. Auch L3 in der Mat. Gruppe ist aus dem gleichen Grund überflüssig.

Lade mal die DB so wie Du diese jetzt hast mit einigen Beispieldatensätzen hier hoch. Das kann man gar nicht erklären, was da alles falsch ist.
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MrB am September 26, 2018, 13:15:54
Habe deine Antwort im Eifer des Gefechtes und Mittag verpasst.
Habe einige Dinge in der tblTeileliste gelöscht und neue Tabellen zur Normalisierung erstellt.
Die Daten in den Neuen Tabellen habe ich in der tbl Teileliste noch nicht gelöscht, weil ich erst fragen wollte ob das so richtig ist. Also nicht wundern was alles doppelt ist jetzt.
Cord
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MzKlMu am September 26, 2018, 13:17:48
Hallo,
nein, das ist immer noch falsch. Du hast auch meine Hinweise nicht befolgt.
Außerdem ist immer noch keine referentielle Integrität eingestellt.
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MrB am September 26, 2018, 13:40:08
Hab Geduld bitte merke gerade, das ich wohl in der falschen Reihenfolge begonnen habe.

Ich war gerade dran das aufzuteilen und habe jetzt erst gesehen wo man das einstellt.
Bei tblLieferanten garnicht, weil nicht der Primärschlüssel verwendet ist, also erst den Inhalt des Feldes Supplier austauschen mit der ID der tblLieferant ?
Cord
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MzKlMu am September 26, 2018, 13:42:38
Hallo,
Zitatalso erst den Inhalt des Feldes Supplier austauschen mit der ID der tblLieferant ?
Ja.
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MrB am September 26, 2018, 14:15:14
Habe jetzt eine Abfrage gemacht in der ich ET_Number,Supplier und ID der tblLieferant abgefragt habe
und ich dachte  ::) ich könnte einfach den Inhalt aus der ID Spalte einfach in eine neue Lieferant kopieren, weil ist ja jetzt in der richtigen Reihenfolge.
Weit gefehlt wie bekomme ich die "neuen" Daten in die Spalte ?

Cord

Erledigt
;D
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MrB am September 26, 2018, 15:29:23
Hallo Klaus und DF6GL
So habe jetzt einfach alles rausgelöscht wo ich glaube, das ist überflüssig und kann berechnet werden und ausgelagert in andere Tabellen.
Primärschlüssel vergeben und die Beziehungen neu organisiert hoffentlich richtig.
Die tblMAT_Gruppe habe ich drin gelassen, weil ich glaube die brauche ich doch um über das Feld L3 die Zuordnung zu machen.
Was mir Gedanken macht ist die tblWS hier musste ich ein ID Feld als Primärschlüssel verwenden, da die ET_Number mehrfach vorkommt, konnte aber die ID nicht verknüpfen weil die ID doch nicht weiss welche ET_Number dahinter ist.
Angehängt habe ich die geänderte Datenbank und ein Bild der Beziehungen

Cord
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: DF6GL am September 26, 2018, 15:39:37
Hallo,

die Tabellen tblTeilebeschreibung....   sind überflüssig/falsch. Die Felder gehören in die Tabelle tblTeileliste.

1:1-Beziehungen sind im Normalfall nicht besonders brauchbar und haben nur bei Spezialfällen ihren Einsatz.

Warum heißt diese Tabelle überhaupt ...liste  ?  "tblTeile" genügt völlig.

Dito zu "tblWorkShopCodierung" . Was soll "..Codierung" aussagen"  . In der Tabelle sind die Workshop(daten) hinterlegt, wobei eine Name wie "tblWorkshops" aussagekräftiger (und kürzer) wäre.

Warum sind die Felder L1 und L2 unterschiedlich benannt? Eine durchgehend einheitlich sinngemäße Benamsung wäre vorteilhaft.

Z. B. "WSID" als Primärschlüssel in "tblWS" (statt "ID") und "WS_WCID_F" als Fremdschlüssel anstatt "L1".
"WCID" als Primärschlüssel in "tblWorkshopcodierung" anstatt "L2".

Noch ein Tipp :  lege die Primärschlüsselfelder als erstes Feld in der Tabelle ab, gefolgt von den Schlüsselfeldern. Dadurch kann die Größe des Tabellenfensters klein gehalten werden, speziell bei Tabellen mit vielen Feldern.
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MzKlMu am September 26, 2018, 15:41:40
Hallo,
Zitatdie Tabellen tblTeilebeschreibung....   sind überflüssig/falsch.
wollte ich auch gerade schreiben.  ;D
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MzKlMu am September 26, 2018, 18:52:44
Hallo,
was ist eigentlich der Unterschied von G_ITEM zu SG_ITEM jeweils in englisch und deutsch ?
Manchmal steht ja das gleiche in den Feldern.
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MrB am September 27, 2018, 09:29:17
So habe hoffentlich alles richtig geändert.
Die Beziehung in der BeispielDB funktioniert nicht ist im Original aber referentiell (siehe Bild).

Die Beschriftungsfelder werde ich mir nochmal vornehmen müssen leider. Hier sollen eigentlich im Feld G_ITEM_German nur die deutsche Hauptbeschreibung stehen und in SG_ITEM_German Details falls vorhanden. Durch die Übernahme diverser Exceltabellen in eine und dann hierher scheinen einige Ding doppelt kopiert zu sein.
Im nach herein denke ich es wäre besser gewesen eine Tabelle zu nehmen und von dort aufzubauen und mit Abfragen den Rest hinzuzufügen.
Dann hätte ich auch nicht immer eine Kurze Fassung meiner DB erstellen müssen zum Hochladen. Manchmal ist Lernen halt mit Arbeit verbunden.
Falls ich sowas nochmal machen muss fange ich an ganz anderer Stelle an denke ich.
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MzKlMu am September 27, 2018, 09:56:02
Hallo,
die ET_Nummer in der Teiletabelle würde ich nicht als primärschlüssel verwenden, sondern einen Autowert und dann eine Zahl (Longinteger) als FS in der Stückliste. Die ET_Nummer in der Stückliste ist dann zu löschen.

Zahlen sind als Schlüsselfelder aus Performancegründen zu bevorzugen.
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MrB am September 27, 2018, 10:07:06
Hallo Klaus
das Problem ist, das die ET_Number in der Stueckliste mehrfach vorkommen. Wie soll das zusammengehen ?

Wenn ich die ET lösche fehlt die Information in welchem Workshop welche ET liegen muss oder sehe ich das falsch ?
Cord
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MzKlMu am September 27, 2018, 10:36:15
Hallo,
das siehst Du falsch, denn Du hast ja den Fremdschlüssel, der auf die ET_Nummer verweist. Wie bei den Workshops auch.
Und was ich gerade gesehen habe, Du hast als Primärschlüssel in den anderen Tabellen den Datentyp "Double", aändere das in Longinteger, die Fremdschlüssel auch.
Und entferne das Format (00) in den Tabellen, das macht dort keinen Sinn und verfälscht nur den Blick.
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MrB am September 27, 2018, 11:11:57
Das kann aber doch nicht gehen, wenn die ID von tblTeile nicht dem von tbl Stueckliste entspricht.
oder muss ich für tblStueckliste einen Index erstellen, der nur die ET_Number nimmt und doppelte enthalten darf ?
Außerdem habe ich nicht verstanden, wie Access den Index erstellt, weil nach ET_Number ist der nicht.

Cord
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MzKlMu am September 27, 2018, 11:20:50
Hallo,
das siehst Du alles falsch.
Siehe angehängte Datenbank. Sieh Dir auch die Abfrage an, die Stückliste mit Teile kombiniert. Da siehst Du dann auch die passende ET_Nummer.
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MrB am September 27, 2018, 11:53:55
Habe das Original angepasst wie du das hier auch hast und keine Ausgabe bei der gleichen Abfrage verstehe ich nicht.

Und mir erschließt sich nicht wo er die Info bekommen soll welches Teil in welchen WS, weil die Info steht ja nur in der tblStueckliste in Verbindung mit den ET_Number.
Ich lade eine etwas größere Version hoch vielleicht wird mein Problem dann klarer.
Wenn ich in einem Feld eingeben könnte "Dieses Teil in WS 1,2,3,4" dann könnte ich das verstehen wobei dann die Stueckliste überflüssig wäre.

Cord

Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MzKlMu am September 27, 2018, 12:00:46
Hallo,
bei Dir ist ja auch das Fremdschlüsselfeld (ID_Teil_F) leer, wo soll denn da die ET_Nummer herkommen ?
Du musst erst mit einer Aktualisierungsabfrage mit der alten Verknüpfung die neue ID_Teile in die Stückliste nach ID_Teile_F übertragen. Dann kannst Du in der Stückliste die ET_Nummer löschen.

Ich kann auch nicht ganz verstehen, wo Du da Verständnisproblme hast, denn diese Art Beziehung ist eine ganz normale 1:n Beziehung wie diese auch bei den Lieferanten genutzt wird.
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MrB am September 27, 2018, 13:48:34
Okay jetzt habe ich das verstanden. Die ET_Number wird ersetzt durch die ID_Teil_F weil Zahlen schneller sind.
Jetzt hänge ich davor wie ich die da hineinbekomme.
Aktualisierungsabfrage ok aber wie baue ich das auf habe schon TanteG befragt aber nix zu finden.
Habe versucht das wie im Bild zu lösen aber da gibts nur die Fehlermeldung Typenumwandlungsfehler

zu kompliziert gedacht
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MrB am September 27, 2018, 14:44:08
Jetzt funktioniert alles so wie du gesagt hast.
Bin völlig begeistert.

Muss jetzt noch etwas an den Strukturen angepasst werden ? oder ist das so ok wie es ist ?
Wie geht man jetzt weiter vor ? Bevor ich wieder den 3ten vor dem ersten mache  ;D

Cord
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MzKlMu am September 27, 2018, 15:02:58
Hallo,
bitte noch alle Bindestriche in den feldnamen entfernen. Den Unterstrich kannst Du lassen.
Wenn Du keine weiteren Anforderungen hast, ist die Struktur erst mal ok.
Was sind das eigentlich für 3 Mengenfelder (QTY) in der Stückliste, was kommt da rein ? Ein Mengenfeld kann ich mir ja noch vorstellen, aber 3 ?
ZitatWie geht man jetzt weiter vor ?
was hast Du Dir da vorgestellt ?
Das musst ja Du wissen.

Du brauchst jetzt erst mal ein Formular zur Erfassung der Daten. Und da nimmt man ein Hauptformular für den Workshop und darin ein Unterformular zur Erfassung der dazu gehörenden Teile. Hafo und Ufo sind über die Schlüsselfelder zu verknüpfen.
Titel: Re: Einzelteile in mehreren Listen
Beitrag von: MrB am September 27, 2018, 16:05:22
Die Mengenfelder sind aus den Excel Tabellen eines ist VPE eines benötigte Menge für Kurs oder Workshop das letzte ist tatsächlich gelieferte Menge(fällt weg kommt als nächstes) .
Werde die Struktur G_ITEM_German und SG_ITEM_German bereinigen um doppelte Einträge zu löschen.

Kann ich in einer Aktualisieren Abfrage mit WENN DANN arbeiten ?(WENN SG_ITEM_German=G_ITEM_German dann "") wie bei Excel ?

Was ich will ? ;D
Jetzt muss ich Berichte erstellen als PDF oder Excel_Tabelle.

Ein Formular erstellen, mit dem jeder ein neues Teil anlegen kann und per Auswahlmenue den Workshop sowie die Materialgruppe einfügen kann. Dabei sollte gleich die Zuordnung zur tblStueckliste erfolgen.
Dann Eingabe des  G_ITEM_German mit Autovervollständigen um die dritte Zahlengruppe der ET_Number zu erzeugen (wenn schon vorhanden die hinterlegte Nummer nehmen, falls nicht fortlaufende Nummer erzeugen).
Falls nötig (istvorhanden) SG_ITEM_German Eingabe erzwingen und Nummer hochzählen (Zahlengruppe 4 der ET_Number).
Gleiche Eingabe SG_ITEM_Geman verhindern in Abhängigkeit zu G_ITEM_German.
Formular zur Preisanpassung einzelner Preise oder Workshops.
Sowie Anpassung der Inhalte der Workshops
Überarbeitung der Teile über Formular.
;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D

Ich mache mich erstmal an die wichtigsten Berichte und versuche das in Formulare zu bringen, damit jeder damit arbeiten kann.
Die Eingabe und Änderungsgeschichten werde ich versuchen ansonsten drohe ich an, das ich weiterfrage ::)

Ich möchte mich für eure Hilfe sehr Bedanken habe viel gelernt und versuche das Umzusetzen.

Cord