Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Dietmar am November 20, 2014, 17:54:28

Titel: Datensatz eintragen
Beitrag von: Dietmar am November 20, 2014, 17:54:28
Hallo zusammen

ich habe ein Hauptformular mit zwei Unterformularen alle drei Formulare sollen einen Datensatz, der auf drei Tabellen verteilt ist, über einen Button, "Datensatz speichern" eintragen. Ist das möglich oder der falsche Weg?

Gruß
Dietmar
Titel: Re: Datensatz eintragen
Beitrag von: MzKlMu am November 20, 2014, 18:29:59
Hallo,
ZitatIst das möglich oder der falsche Weg?
eher der falsche weil überflüssige Weg. Wo kommen denn die Daten her die da eingetragen werden sollen ?

Wenn diese aus den Formularen kommen (was ich annehme), warum bindest Du die Formulare nicht einfach über Abfragen an die Tabellen ?
Dann geht alles automatisch, ohne VBA und ohne einen Button.

Und warum ist ein Datensatz auf 3 Tabellen verteilt. Das scheint mir das Hauptproblem zu sein. Ein Datensatz gehört in eine Tabelle.
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 20, 2014, 19:48:57
Hi,
danke für dein Interesse und deine Mühe!

So vieleicht drücke ich mich ja falsch aus?
Ich möchte Schichtdaten als Datensätze erfassen, das heißt, Datum, Schicht, Schichtfolge, Schichtleiter und Fertigungsmaschine (erste Tabelle)Hauptformular, das ist sozusagen der Kopf und ändert sich nur einmal pro Schicht.
Dann kommen die Auftragsdaten wie Auftragsnummer, Material was hergestellt wird usw. Tabelle 2 erstes Unterformular

Nun kommt noch die Auftragsbearbeitung also Details die den Auftrag betreffen z.B. Startzeit aus welchem Material wurde gefertigt Endzeit usw. Tabelle 3 Unterformular 2

Die Daten gehören irgendwie schon zusammen sind aber durch Fremdschlüssel miteinander Verknüpft

Alle einzugebenden Daten bekomme ich nicht über ein Formular geregelt da sie in den Bezihungen nicht direkt verknüft sind.

Bin jetzt seit Tagen damit beschäftigt ein Formular zu erstellen in dem ich die Daten vernünftig für die Erfassung eingeben kann.
Habe die Datei schon mal im Thema ,,Wert in einer Textbox in einem Unterformular" hochgeladen.
Es wäre nett wenn du  (ihr ) euch das mal ansehen könntet ob meine Beziehungen so stimmen. Oder ob das alles Bullschitt ist.
Danke!
Gruß
Dietmar
Titel: Re: Datensatz eintragen
Beitrag von: MzKlMu am November 20, 2014, 20:19:51
Hallo,
Du musst das mal genauer beschreiben.
Ein Ufo muss über Schlüsselfelder verknüpft sein, sonst funktioniert das nicht.

Diese beiden Sätze (von Dir) widersprechen sich.
ZitatDie Daten gehören irgendwie schon zusammen sind aber durch Fremdschlüssel miteinander Verknüpft
ZitatAlle einzugebenden Daten bekomme ich nicht über ein Formular geregelt da sie in den Bezihungen nicht direkt verknüft sind.
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 21, 2014, 10:36:15
Hallo,

ich werde es versuchen.

Istzustand: Wir erfassen jede Schicht an mehreren Maschinen unsere Schichtdaten in  ExcelSheets also 3 pro Schicht, in 24 Std. sind das 9, das möchte ich gerne in einer Datenbank sammeln und auswerten.

Wir haben ein Datum, 3 Maschinen, 3 Schichten und wir haben mehrere Schichtleiter.

Wir haben pro Maschine mehrere Aufträge pro Schicht, die an mehreren Maschinen gleichzeitig bearbeitet werden können.

Ein Auftrag hat immer nur ein Festmaßmaterial (Fertigprodukt, es gibt ca. 1500) aber evtl. mehrere Materialien aus dem er gefertigt werden kann, BM-Material (Rohprodukt, es gibt ca. 11000) die Materialnummern sind eindeutig.

Dann werden noch Details zu den Aufträgen eingegeben z.B. Startzeit, Anzahl der Paletten Qualitätsverluste, Endzeit und ggf. Störungen.
Zu meiner jetzigen Datenbank füge ich mal den Beziehungsbericht als jpg mit an.

Bin für jede Hilfe dankbar

Gruß
Dietmar
Titel: Re: Datensatz eintragen
Beitrag von: MzKlMu am November 21, 2014, 10:40:14
Hallo,
und welche Tabellen willst Du jetzt über das Hafo und die 2 Ufos füllen ?
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 21, 2014, 11:29:12
Hallo,

die erste Tabelle wäre die tbl_Schicht
Datum, Schichtleiter, Schichtfolge und Linie, sozusagen der Kopf nur einmal die Schicht zu ändern

die zweite Tabelle tblAuftragsdaten
Auftrag, FMmaterial, Ziehverlauf, Seite, Bemerkung

dritte Tabelle die Auftragsbearbeitung
also die Auftragsdetails

wenn man das nur über ein Formular, also nur über ein Hauptformular regeln kann, wäre mir das auch recht

In den Tabellen tbl FMmaterial und BMmaterial sind die Stammdaten der Materialien hinterlegt die ich über die Fremdschlüssel anspreche

Störungen würde ich über einen extra Button und ein gesondertes Formular regeln

Ich hoffe ich konnte mich verständlich ausdrücken, ich wäre sehr froh wenn du mir die entscheidenen Tipps geben kannst

Vielen Dank und
Gruß
Dietmar
Titel: Re: Datensatz eintragen
Beitrag von: MzKlMu am November 25, 2014, 11:47:45
Hallo,
Das Datenmodell sollte noch mal auf den Prüfstand.
Wozu brauchst Du die Tabelle "tblAuf_Schifo" ?
Betrifft ein Auftrag mehrere Schichten, oder wird die Bearbeitung von mehreren Schichten gemacht?
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 25, 2014, 12:54:02
Hi,
und danke für deine Mühe. Ich bin froh das es weiter geht. :)

Ein Auftrag kann in mehrere Schichten fallen einmal, wenn die Frühschicht anfängt und die Mittagschicht weitermacht zum anderen, wenn nicht genug Rohmaterial vorhanden ist, wird abgebrochen und an einem andern Tag fortgesetzt.
Die Tabelle tblAuf_Schifo ist eine Hilfstabelle, weil ich der Meinung bin zwischen Auftragsdaten und Schicht keine 1:n Beziehung herstellen zu können.
Titel: Re: Datensatz eintragen
Beitrag von: MzKlMu am November 25, 2014, 13:00:39
Hallo,
ZitatEin Auftrag kann in mehrere Schichten fallen einmal, wenn die Frühschicht anfängt und die Mittagschicht
das ist doch dann aber die Auftragsbearbeitung und nicht den Auftrag selbst. Der ist doch völlig unabhängig von einer Schicht.
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 25, 2014, 13:17:39
Hi,
ich glaube du hast Recht, die Auftragsdaten sind immer gleich, egal in welcher schicht, an welchem Tag, an welcher Maschine.
Titel: Re: Datensatz eintragen
Beitrag von: MzKlMu am November 25, 2014, 13:38:09
Hallo,
dann ist diese Tabelle überflüssig und die Schicht gehört als Fremdschlüssel in die Bearbeitung.

Bitte ändern und dann noch mal zeigen.
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 25, 2014, 13:51:43
Hi,

Zitatdann ist diese Tabelle überflüssig

kurze Frage noch, in den Auftragsdaten steht ja die Auftragsnummer die zur Nachverfolgung gebraucht wird bei Reklamationen muss man wissen an welcher Maschine dieser Produziert wurde und zu jedem Auftrag gehört, immer ein FM Material über den fmm_id_f geregelt, wo soll ich die Daten dieser Tabelle den hinpacken?
Titel: Re: Datensatz eintragen
Beitrag von: MzKlMu am November 25, 2014, 14:10:49
Hallo,
nirgends, so wie es jetzt ist.
In der Bearbeitung gibt es ein Fremdschlüssel zum Auftrag, damit hast Du alles, was Du brauchst.
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 25, 2014, 14:32:06
Hi,
ich hoffe ich habe dich richtig verstanden, du meintest mit überflüssig meine Hilfsftabelle und nicht die Auftragsdaten.
Beziehungsbericht ist angehängt.
Danke für deine Gedult mit mir Anfänger :)
Titel: Re: Datensatz eintragen
Beitrag von: MzKlMu am November 25, 2014, 17:13:01
Hallo,
so halte ich das im Moment noch nicht ganz für richtig.
Die beiden Tabellen "tblFMMaterial" und tblBMMaterial sind ja gleich aufgebaut und daher in einer Tabelle zu führen mit einem Feld für die Materialart (FM, BM).
In der Auftragsbearbeitung benötigst Du dann nur einen Fremdschlüssel.

Für das Formular verwendest Du eine Hauptformular in dem die reinen Auftragsdaten dargestellt werden und darin einem über die Schlüsselfelder (auf_ID und auf_ID_f) verknüpften Unterformular. Datenherkunft dieses Formulars ist die Auftragsbearbeitung. Das Fremdschlüsselfeld (auf_ID_f) wird automatisch übertragen. Die Fremdschlüssel für Material, Linie und Schicht werden per Kombi gewählt.

PS:
Entferne unbedingt alle Leerzeichen in den Feldnamen.
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 25, 2014, 17:25:19
Hi,
vielen Dank das mache ich so, soll ich die Materialnummern mit einer ID belegen oder ist es besser die Materialnummern als ID zu nehmen da sie eindeutig sind.
Titel: Re: Datensatz eintragen
Beitrag von: MzKlMu am November 25, 2014, 17:30:01
Hallo,
welcher Datentyp ist die Materialnummer ?
Wenn Zahl dann PK
Wenn Text extra Autowert als ID/PK.

Textfelder sind als Schlüsselfelder nicht geeignet, da ein Textvergleich langsamer ist als ein Zahlenvergleich.

Noch was, hatte ich vorhin vergessen. Lege für die Materialart (FM, BM) eine Tabelle an mit einem eigenen PK (Autowert). In die eine Materialtabelle kommt dann die Art als Fremdschlüssel und nicht als Text.
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 25, 2014, 18:08:39
Hi,
die Material-Nr. hatte ich als Text definiert, weil ich die Eingabe auf 7 Stellen begrenzen wollte.

Dann werde ich auf noch ein Problem stoßen, es gibt in den Materialnummern für FM, 100.... Materialnummern.
Die Besonderheit dieser Nummern ist das die Länge und Breite sowie Blattzahl variabel sind. Das bedeutet, das ich diese Daten gesondert erfassen muss, wie kann ich dies bewerkstelligen? Brauche ich dafür eine extra Tabelle?
Die Daten werden für die Auswertung benötigt.
Titel: Re: Datensatz eintragen
Beitrag von: MzKlMu am November 25, 2014, 18:32:57
Hallo,
Zitatdie Material-Nr. hatte ich als Text definiert, weil ich die Eingabe auf 7 Stellen begrenzen wollte.
das würde auch mit einer Zahl gehen. (<=9999999).
Verwende für die ID einen Autowert.

Die Besonderheit dieser Nummern ist das die Länge und Breite sowie Blattzahl variabel sind.das verstehe ich jetzt nicht, Du hast doch in der Materialtabelle ein Felder Länge und Breite mache doch noch ein Feld für die Blattzahl.

Zeige mal ein aktuelles Beziehungsbild.
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 25, 2014, 19:11:49
Hallo,

Danke für deinen Einsatz!

Also noch mal im Prinzip sind die Material Nr. eindeutig sie definieren die Dicke und Farbe des Materials, bei 200.... zudem die Länge Breite und Blattzahl. Nun die Besonderheit ein Kunde bestellt eine Abmessung die wir nicht in den Stammdaten erfasst haben dann wird auf das 100.... Material zurückgegriffen Farbe und Dicke eindeutig und die Maße werden Manuel eingegeben die kann ich auch nicht vordefinieren.
Titel: Re: Datensatz eintragen
Beitrag von: MzKlMu am November 25, 2014, 19:15:35
Hallo,
lege für den Sonderwunsch des Kunden einen neuen Datensatz für 100er Material an und schon hast Du das Problem erschlagen. Irgendwann kommt der Kunde mit dem gleichen Sonderwunsch, dann hast Du es schon erfasst.
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 25, 2014, 19:39:06
Das hört sich einfach an. Erst einmal sind die 100... ja in der Materialnummerntabelle enthalten, meinst du ich sollte die daraus trennen und eine separate Tabelle anlegen?
Titel: Re: Datensatz eintragen
Beitrag von: MzKlMu am November 25, 2014, 19:44:08
Hallo,
ZitatErst einmal sind die 100... ja in der Materialnummerntabelle enthalten,
und, wen stört es.
Zitatmeinst du ich sollte die daraus trennen und eine separate Tabelle anlegen?
nein, das hatten wir ja schon mal.
Du legst einfach für den Sonderwunsch des Kunden ein Material als neuer Datensatz an. Zur eindeutigen Unterscheidung hast Du ja die ID (Autowert).

Und noch mal die Bitte nach einem aktuellen Beziehungsbild.
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 25, 2014, 19:54:37
Hi,
Danke ich arbeite an dem neuen Beziehungsbild, wenn es fertig ist sende ich es, aber erst morgen ich brauche jetzt eine Pause. Ich bin froh das du mich so unterstützt. :) 
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 26, 2014, 08:57:51
Hi,
ich hoffe du hast noch Lust hier mit mir weiterzumachen.  :)
Wenn ich alles richtig verstanden habe, habe ich deine Anweisungen umgesetzt!
ZitatDie beiden Tabellen "tblFMMaterial" und tblBMMaterial sind ja gleich aufgebaut und daher in einer Tabelle zu führen mit einem Feld für die Materialart (FM, BM).
die Tabelle heißt tblMaterial und hat die Mat_ID als Autowert
Zitatdas würde auch mit einer Zahl gehen. (<=9999999)
das habe ich in der Gültigkeit so eingestellt

Zitat
lege für den Sonderwunsch des Kunden einen neuen Datensatz für 100er Material an und schon hast Du das Problem erschlagen. Irgendwann kommt der Kunde mit dem gleichen Sonderwunsch, dann hast Du es schon erfasst.
wie kann ich beim Anlegen der 100er doppelte Datensätze verhindern.
Das heißt: MatNr., Dicke, Farbe, sind gesetzt, Länge, Breite und Blattzahl können abweichen ein Duplikat wäre, wenn alle Werte gleich sind.
Titel: Re: Datensatz eintragen
Beitrag von: MzKlMu am November 26, 2014, 09:39:37
Hallo,
wieso hast Du jetzt plötzlich einen Fremdschlüssel zum Material in der Auftragsbearbeitung ?
Kann während der Bearbeitung das Material wechseln ?
Das war doch bisher nicht. Hatte ich auch nicht vorgeschlagen.

Zitatwie kann ich beim Anlegen der 100er doppelte Datensätze verhindern
Du kannst über die relevanten Felder einen eindeutigen zusammengesetzten Index anlegen.
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 26, 2014, 11:14:14
Hallo,
danke das du dir wieder Zeit für mich nimmst!
Zu jedem Auftrag gehört ein eindeutiges FM Material (Fertigprodukt), das im Auftrag nie wechselt, das BM Material (Rohprodukt) kann in einem Auftrag mehrmals wechseln.
Um nachher die m² vom Fertigprodukt und die m² des verbrauchten Rohproduktes miteinander zu vergleichen bzw. Verluste zu errechnen glaube ich brauch ich das. Oder habe ich doch was falsch verstanden?::)
Titel: Re: Datensatz eintragen
Beitrag von: MzKlMu am November 26, 2014, 11:21:24
Hallo,
dann kannst Du das so lassen, bzw. muss so bleiben.

Ich bin erst heute Abend wieder am PC.
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 26, 2014, 12:07:00
Alles klar!
danke,danke, danke!
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 26, 2014, 20:08:46
Hi,

habe jetzt ein Hauptformular frmSchicht erstellt, da werden die Daten zur Schicht eingegeben und gespeichert, Datum, Schichtfolge, Schichtleiter
darin das 1.Unterformular frmAuftragsdaten, hier werden die Daten zum Auftrag eingegeben, AuftragsNr., FM Material, der Ziehverlauf und die Seite.
Dann das 2.Unterformular frm Auftragsbearbeitung mit den Details zum Auftrag.

Frage: Wie kann ich doppelte Einträge verhindern und melden?

Wenn im Hautformular Datum und Schichtfolge gleich sind, habe ich einen doppelten Datensatz, der nicht benötigt wird!

1. Unterformular
Wenn die Auftragsnummer vorhanden ist, habe ich einen doppelten Datensatz, der nicht benötigt wird!

Titel: Re: Datensatz eintragen
Beitrag von: MzKlMu am November 26, 2014, 20:20:23
Hallo,
so rum wird das nichts. Du kannst die Schicht nicht als Hafo nehmen. Hafo wird der Auftrag und Ufo die Auftragsbearbeitung. Die zutreffende Schicht wird dann in einem Datensatz des Ufos gewählt/eingetragen, denn dort ist ja auch deren Fremdschlüssel. Du benötigst nur ein Ufo. Das Hafo enthält nur die Daten des Auftrags.
Doppelungen sollte es dann nicht mehr geben.
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 26, 2014, 20:32:09
Hi,
schade wieder einiges umsonst gearbeitet ;D was würde ich nur ohne euch hier machen ::) und ihr ohne mich :) :)

Habe ich keine Möglichkeit die Schichtdaten zuerst einzugeben? Sozusagen als Kopf, das habe wir bei unserem Excelsheet bis jetzt immer so eingeben müssen und würde ich auch als Reihenfolge so begrüßen.

Datum
Schichtfolge
Schichtleiter

Auftrag
FM Material
Ziehverlauf
Seite

dann Auftragsdetails




Titel: Re: Datensatz eintragen
Beitrag von: MzKlMu am November 26, 2014, 21:04:05
Hallo,
nein, das kann nicht gehen. Es gibt keine Beziehung zwischen Schicht und Auftrag. Der Fremdschlüssel Schicht ist in der Auftragsbearbeitung. Wenn Du Dir das Beziehungsbild anschaust, muss Dir das eigentlich klar sein.
Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 26, 2014, 21:18:13
Hi,
ich gebe nicht auf, ein letztes Mal.
Wenn ich die schicht_id-f anstatt in die Auftragsbearbeitung in die Auftragsdaten packe, geht das nicht vielleicht so rum?
Titel: Re: Datensatz eintragen
Beitrag von: DF6GL am November 26, 2014, 21:53:42
Hallo,

Du kannst doch nicht die Beziehungen so legen, wie es Dir passt...  Die Beziehungen müssen die realen Datenverhältnisse reflektieren...

Titel: Re: Datensatz eintragen
Beitrag von: Dietmar am November 27, 2014, 06:53:47
Hi,
ok, dann mach ich das so wie mein Lehrer MzKIMu mir das hier beschrieben hat.
Vielen Dank auch für deine Einschätzung.
So langsam fängt es an Spaß zumachen und an dieser Stelle muss ich das Forum mal loben, sehr gute Unterstützung hier, immer bereit zu jeder Zeit, super  :)