Neuigkeiten:

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

Mobiles Hauptmenü

Kombifeld Problem mit nicht in Liste

Begonnen von MrB, Februar 04, 2020, 14:15:39

⏪ vorheriges - nächstes ⏩

MzKlMu

Hallo,
und die letzte Zahl ist die LfdNr die als Zahl (ohne führende 0) gespeichert werden muss. Diese lässt sich dann ganz einfach automatisch Hochzählen.
Wie ich das in #6 und #10 auch schon geschrieben habe.
Gruß Klaus

MrB

Hallo Klaus
die 002 vergebe ich händisch für die Spalte G_Item_German in der Tabelle.
Die folgende Nummer ergibt sich aus der Anzahl der Einzelteile einer Beschreibung in G_Item_german 002-001, 002-002 usw
Die kann ich Meineserachtens nicht neu berechnen lassen, da diese ja immer so vergeben wurden mit den Vornummern aus ID_WS in der Workshoptabelle und er ID_MAT_GRP aus der Materialgruppentabelle. Sprich die 002-001 kann 10x da sein.
Nur die ID_Teile ist einzigartig.
Also soll ich die ITS-InterneNummer  in eine eigene Tabell bringen, die aber über die ID_Teile mit der tblTeile verbunden wird ?
Braucht also auch der Preis und die Verpackungseinheiten eine eigene Tabelle ?
Sowie für ID_WS_F und ID_MAT_GRP_F eine eigene Tabelle mit ID_Teile und dem Fremdschlüssel ?
Irgendwie hakt da was bei mir glaube ich.
Ich habe hier die Mappe1 angehängt
C = Workshop
D = Materialgruppe
habe ich verstanden reicht der Schlüssel aus R und S
die hier 001 = Satz Laborglas kommt viele male vor
            001-001 = Laborflasche 250ml
Das mus ich nochmal in eigene Tabellen bringen?
Automatisch hochzählen kann ich mir das nicht vorstellen ist abhängig von den ersten beiden Schlüsseln

Cord

MzKlMu

Hallo,
das wird immer verwirrender.
ZitatC = Workshop
D = Materialgruppe
habe ich verstanden reicht der Schlüssel aus R und S
die hier 001 = Satz Laborglas kommt viele male vor
            001-001 = Laborflasche 250ml
Wer soll das als Außenstehender verstehen. Was ist denn R und S ich sehe nur C und D ?
Wo kommt den jetzt 001-001 her ?
Wieso vergibst Du die 002 händisch ?

ZitatAlso soll ich die ITS-InterneNummer  in eine eigene Tabelle bringen,
Nein, die ITS-InterneNummer kommt in keine Tabelle.
ZitatAutomatisch hochzählen kann ich mir das nicht vorstellen ist abhängig von den ersten beiden Schlüsseln
Natürlich kann man automatisch hochzählen. Es gibt die DMax Funktion und da lassen sich auch Kriterien unterbringen.
Also Maxwert betimmen mit den beiden Schlüsseln als Kriterium und 1 addieren, fertig.

Bitte beschreibe mal (mit einheitlicher Nomenklatur) die 4 Gruppen der "ITS-InterneNummer" und wie diese zu Stande kommt.
Zeige bitte auch mal ein Bild des Beziehungsfensters.
Gruß Klaus

MrB

Hallo Klaus
Beziehungen sind oben.
In der Tabelle sind die Spalten R und S die Schlüssel des Workshops und der Materialgruppe, ist für mich sichbar halt rechts von allem.
Die 001-001 ist aus der Tabelle die ich an den vorherigen Post angehängt habe. Diese werde ich jetzt für die Erklärung nutzen wie diese Art Nummer entstanden ist.

In Mappe1 findest du in Zeile 7 Spalte B die interne Nummer
Teil 1: Spalte C enthält den Workshop der auch gleichzeitig in der Spalte R als Identifier aus der zugehörigen Tabelle ist.

Teil 2:Spalte D enthält die Materialgruppe mit dem Identifier in Spalte S

Teil 3:Spalte E ist ein Oberbegriff für ein Teil (hier Satz Laborglas)

Teil 4:Spalte F ist eine Verfeinerung des Oberbegriffes (siehe Zeile 5 Spalte E [Futtertrog] Spalte F [Mörtelkübel, rund 60cm] oder Teil eines Satzes wie hier bei Laborglas oder Ersatzteil.


Die händische Vergabe hängt am Ursprung dieser gewachsenen Tabelle( war eine Monster Excelliste) Problem war und ist hier, das viele Tabellen erstellt wurden für unterschiedliche Schulen und nichts genormt war. So versuche ich aus dem Wirrwar eine Datenbank zu erstellen. Ich habe die Beispieltabelle angepasst und unnötige Spalten ausgeblendet.

So jetzt nochmal was ich aus dem was du bzw Franz geschrieben habt rauslese:
Die ITS interne Nummer wird an keine Stelle gespeichert sondern bei Bedarf über die Schlüssel für Workshop und Materialgruppe berechnet. Also Teil 1 und 2 der ITS Internen Nummer.
Wonach wird der Teil 3 Sortiert ? Alphabet ?
Teil 4 dann nach Teil 1+2+3 und Alphabet ?
Also kann Spalte B+C+D ersatzlos gestrichen werden und wird für jede Abfrage neu berechnet.
Ich hofe das wird besser nicht noch schlimmer durch meine Erklärungen

Cord



DF6GL

Hallo,


wenn ich das jetzt recht verstehe, wird die Interne Nummer aus 4(!)  verschiedenen Stammdaten zusammengesetzt.  Zwei von 4 Tabellen hast Du schon, ergo fehlen Tabellen für G_Item_German und SG_Item_German.

Das bedeutet, dass pro DS nur die Daten aus 4 Tabellen (Spalten C, D, E, F)  gewählt werden und die InterneNummer daraus berechnet und z. B. in einem Textfeld angezeigt werden kann.

Inwieweit die Tabellen tbl_G_Item_German und tbl_SG_Item_German voneinander abhängig sind, muss Du selber wissen. Für die Auswahl (abhängige Kombis) und die Berechnung der internen Nummer ist das aber untergeordnet.


Was meinst Du mit "Sortieren"?
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

MzKlMu

Hallo,
was immer noch verwirrend ist, in Spalte R steht für 07 der ITS interne Nummer eine 1, aber in der Zeile 5 steht für doe 07 eine 6 ?
Wie erklärt sich das ?
Und welche Zahlen willst Du jetzt hochzählen, da gibt es doch nichts zu Hochzählen ?
Ich sehe da nur 4 Tabellen die abhängig sind.

1 tabWorkshop
WorkshopID
WorkshopBezeichnung

2 tabMaterialgruppe
MaterialgruppeID
MatergruppeBezeichnung
WorkshopID_F

3 tabTeil
TeilID
Teilbezeichnung
MaterialgruppeID_F

4 tabTeilDetailID
TeilDetailID
TeilDetailBezeichnung
TeilID_F

Das sind 4 Tabellen mit 3 1:n Beziehungen, die Tabellen sind hierarchisch abhängig.
1 > 2 > 3 > 4

..ID = Primärschlüssel
..ID_F = Fremdschlüssel
> = 1 > n


In der Tabelle "tblAllParts" wird nur der letzte Schlüsselwert gespeichert, also der Primärschlüssel der Tabelle 4 (TeilDetailID).
Die Auswahl des richtigen Wertes erfolgt mit 4 Kombifeldern, 3 dienen zur Vorauswahl für 4.
Die Kombis 1, 2, 3 sind ungebunden.
Sind alle 4 Kombis gefüllt, wird über die Abfrage die richtige ITSinterneNummer automatisch angezeigt.
Sortierungen sind da völlig bedeutungslos.




Gruß Klaus

MrB

Hallo Klaus Hallo Franz

Zitatwas immer noch verwirrend ist, in Spalte R steht für 07 der ITS interne Nummer eine 1, aber in der Zeile 5 steht für doe 07 eine 6 ?
Mein Fehler Klaus ich habe die anderen Tabellen angehängt damit das klarer wird, denn die Workshops habe noch zusätzliche Codenummern.

ZitatZwei von 4 Tabellen hast Du schon, ergo fehlen Tabellen für G_Item_German und SG_Item_German.
für mich sollten die Tabellen G_Item_German und SG_Item_German zusammengehören, weil sie ja die Bezeichnung für ein Teil geben. G_Item_German kann sein "Brutschrank für Eierbrütung", SG_Item_German kann auch sein "Brutschrank für Eierbrütung", weil beide Felder voll sein sollen. (Zeile2 in der Mappe2)
Zeile 3 und 4 sind in G_Item_German "Bolzenschussgerät mit Zubehör" und SG_Item_German ist Zeile 3 Bolzenschussgerät und Zeile 4 Munition(50Stck).
Deshalb würde ich eher für G_Item_German und SG_Item_German eine Tabelle nehmen wenn das gehen würde ?
Dafür kann ich doch schon die tblAllParts nehmen oder nicht ?
Aus der Tabelle kann dann ITS_InterneNummer, Workshop und MAT-GRP gelöscht werden? Ich habe das mal nach hinten verschoben.

Das hochzählen ist gedacht, das wenn G_Item_German mehrfach da ist, das SG_Item_German automatisch eine aufstegende Nummer erhält.
Ich danke euch für eure Geduld.

Cord


DF6GL

Hallo,

habe das vorher vermutlich falsch verstanden..

Jetzt interpretiere ich das so:

Der rechte Ziffernblock der internen Nummer soll innerhalb der Gruppe "G_Item_German" fortlaufend selbstständig hochgezählt werden.

Diese "Nummer" muss in Folge dann bei neuen DS händisch eingegeben oder per VBA-Funktion automatisch berechnet werden.

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

MrB

Hallo Franz Hallo Klaus
Die Teile haben schon alle eine feste ID
und ich habe aus der Liste alle Internen Nummern gelöscht.
Die neue tblTeile sieht jetzt so aus:
ID_Teile / ID_MAT_GRP_F / G_Item_German / SG_Item_German
In der Tabelle stehen noch diverse andere Informationen, muss ich die auch in einzelne Tabellen aufteilen? zB Preise, Lieferant, Verpackungsmengen, englische Bezeichnungen
Die anderen Tabellen habe ich dem angepasst, was Klaus geschrieben hat.
Zu deinem Post Franz
Beispiel wieder die farbige Zeile
Ja in Abhängigkeit der:
ID_Workshop und ID_Materialgruppe        G_Item_German          SG_Item_German
          8                            29                      001 Satz Laborglas       001  Laborflasche,  250 ml
          8                            29                      001 Satz Laborglas       002  Laborflasche, 500 ml
Achtung Beispiel nicht in der Liste
          8                            30                      001 Absauganlage        001 Absauganlage
          8                            30                      001 Absauganlage        002 Wandhalterung
oder der

ID_Workshop und ID_Materialgruppe        G_Item_German                                                      SG_Item_German
          9                             30                  001 Satz für Biologie Grundlagen und Aufbau      001 Modell Blattaufbau
          9                             30                  001 Satz für Biologie Grundlagen und Aufbau      002 Model Blüte

Wie im Beispiel sichtbar  kann es sein, das 001-001 x mal vorkommt und das muss jedesmal berechnet werden ?
Wenn ich ein Teil hinzufüge bekommt es ja eine eigene ID aber die Berechnung könnte doch etwas verschieben oder nicht ?
Cord


       



MrB

Schade jetzt haben die beiden wohl keine Lust mehr zu antworten.
Vielleicht jemand zusätzliches ?

Mfg Cord

MzKlMu

Hallo,
ZitatSchade jetzt haben die beiden wohl keine Lust mehr zu antworten.
Das hat damit nichts zu tun, aber wenn eine Weile rum ist, verliert man das Thema aus dem Auge. Es spricht also nichts dagegen, das Thema durch eine Rückfrage wieder nach vorn zu holen.

Da ich aber die Zusammenhänge immer noch nicht so recht verstanden habe, solltest Du vieleicht mal eine kleine Beispieldb erstellen mit einigen Spieldatensätzen und die repariert/komprimiert (Access Dienstprogramm) und diese dann als Zip File hier hochladen.
Gruß Klaus

MrB

Hallo Klaus
ich werde eine Beispiel DB erstellen und mich gleichzeitig damit beschäftigen die tblAllParts zu verkleinern (Informationen auslagern). Dann lade ich das hoch mal schauen ob die Lösung dann einfacher wird.

Danke Cord

MrB

#27
Ich habe jetzt die Datenbank verkleinert und hochgeladen.
Ich fange am besten von vorne an  ::)
Wenn ich das frm_Neuteil_anlegen starte funktionieren die ersten 2 Kombifelder ohne Probleme. Dort suche ich den Workshop und die Materialgruppe aus.
Das Kombifeld G_Item funktioniert auch gut, ich kann aussuchen falls ich etwas anlegen möchte, das schon vorhanden ist(zB Atom Modell).
Sollte ich aber versuchen ein neues Teil anzulegen öffnet sich zwar das Form frm_NeueNummer und ich kann die Nummer anlegen, aber in dem Moment wenn ich das schließe kommt nur die Fehlermeldung, das "Der von Ihnen eingegeben Text kein Element der Liste ist".
Erst wenn ich etwas aus der Liste suche kann ich weiter, was mir aber ja nicht hilft.
Das gleiche Problem ergibt sich natürlich auch im nächsten Feld.

Die InterneID habe ich auf die letzten 6 Stellen reduziert, die würde ich weiterhin händisch eingeben.
Berechnen ist denke ich zu aufwändig.
Da ja jedes Teil eine ID hat ist das aus dem Post vorher denke ich erledigt
ZitatID_Workshop und ID_Materialgruppe        G_Item_German                                                      SG_Item_German
          9                             30                  001 Satz für Biologie Grundlagen und Aufbau      001 Modell Blattaufbau
          9                             30                  001 Satz für Biologie Grundlagen und Aufbau      002 Model Blüte

Wie im Beispiel sichtbar  kann es sein, das 001-001 x mal vorkommt und das muss jedesmal berechnet werden ?
Wenn ich ein Teil hinzufüge bekommt es ja eine eigene ID aber die Berechnung könnte doch etwas verschieben oder nicht ?
Die HSCodes zur Ausfuhr habe ich ausgelagert in eine eigene Tabelle und nur die ID eingefügt sowie die überflüssigen Dinge gelöscht. Ich hoffe die Tabelle ist jetzt so ok.

Ich hoffe auf eure Hilfe weiterhin

Cord



DF6GL

Hallo,

also, mir wird nichts klarer....  Die Tabellen, bzw. Beziehungen sind m. E. nicht in Ordnung.

Was bezweckst Du mit dem ungebundenen Form und den Anfügeabfragen?
Verwende nur gebundene Formulare!

Die Tabelle "tblWorkshops" hat welche Bedeutung? 
Sollen Einzelteile (Parts) für bestimmte Workshops zugeordnet werden? Dann fehlt eine Tabelle ("tblWorkhopParts"), die diese Zuordnung darstellt und die in Beziehungen zu tblParts du tblWorkshops gesetzt werden muss.


Tbl_Stückliste entfällt.


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

MrB

Hallo Franz
Die Abfragen sollen die eingegebenen Informationen in die nötigen Tabellen(tblAllParts und tblStueckliste) übertragen sobald man auf Ok klickt.
In Arbeit ist gerade nur das frm_Neuteil_anlegen und die Tabellen.

Die Zuordnung der Teile zu den Workshops erfolgt in der tblStueckliste wäre also bis auf den Namen die tblWorkshopParts die du vorschlägst ?
tblWorkshops benennt Unterrichtsräume egal ob Labor, Kfz-Werkstatt oder Klassenraum denen dann die Teile zugeordnet werden.
Beziehungen habe ich angepasst hoffe das ist so richtig .

Cord