Neuigkeiten:

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

Mobiles Hauptmenü

Zählung in Datenfeld abhängig von anderen Werten

Begonnen von Pjoernrachzark, Juni 24, 2016, 10:52:12

⏪ vorheriges - nächstes ⏩

Pjoernrachzark

Guten Tag zusammen,
als Laie in Datenbankerstellung trage ich meine Frage hier mal vor, in der Hoffnung, einen Hinweis zu bekommen, ob das überhaupt geht, was ich vorhabe und in welche Richtung das geht.
Also: Ich habe eine kleine Datenbank erstellt (Access 2016), in der Artikel für eine Zeitschrift erfasst werden. Es gibt verschiedene Datenfelder für Rubrik, Titel, Bearbeiter usw. U.a. soll eine Artikelnummer vergeben werden, anhand der sich ablesen lässt, in welchem Heft, welcher Rubrik usw. der Artikel erschienen ist. Diese Nummer erstelle ich mit der Funktion "Berechnet" aus den Werten anderer Felder. Soweit ist alles ok. Um diese Artikelnummer eindeutig zu machen könnte ich die ID des Datensatzes verwenden. Problem dabei ist, dass die Nummer dann irgendwann recht groß/lang wird und dass sie nicht mehr (wie bisher in der manuellen Vergabe) anzeigt, wieviele Beiträge in einer Heftausgabe vorhanden sind.
Was ich also haben möchte, ist eine Zählung abhängig von Erscheinungsjahr (ist ein Datenfeld) und Erscheinungsmonat (ebenfalls ein Datenfeld). Es soll für ein neues Heft jeweils ab 1 hochgezählt werden. Beispiel für eine Artikelnummer ist SB2501mh00-1607 /S=Publikation, B=Textsorte, 25=Rubriknummer, 01=Hochzählung Artikelnummer des Hefts usw.
Ich hoffe, ich habe das Vorhaben einigermaßen gut beschrieben... Jetzt hoffe ich auf Hinweise und Tipps :)
Viele Grüße,
Markus

DF6GL

#1
Hallo,

die Logik der Artikelnummer-Berechnung versteh ich nicht am Beispiel....


Vermutlich geht Du aber die Sache falsch an.


Bevor Du Tabellen erstellst, sollten die vorhanden und benötigten Daten analysiert und deren Beziehungen/Abhängigkeiten voneinander geklärt werden. Dabei ist die Aufgabe der späteren DB (Was soll die DB leisten, welche Ergebnisse werden aus den erfassten Daten erwartet) immer im Blickfeld zu behalten.

Nach meiner Interpretation werden (mindestens) diese Tabellen benötigt:


tbl_Artikel mit allen diesen Artikel beschreibenden Attribute (Felder), einschließlich einem Primärschlüsselfeld (ArtID) als Autowert

tbl_Zeitschriften mit allen möglichen Zeitschriften und deren beschreibende Felder + PK (ZSID) als Autowert

tbl_Rupriken  alle möglichen Rupriken mit deren Beschreibungen + PK (RupID)als Autowert

tbl_Textsorten  alle Felder, die eine Textsorte beschreiben + PK (TSID)  als Autowert

tbl_ArtikelErscheinungen  (oder andere sinnvolle Benamsung)  mit den Feldern
AEID   (PK, Autowert)

AE_ArtID (Zahl, long, Fremdschlüssel zu tbl_Artikel)
AE_ZSID (Zahl, long, Fremdschlüssel zu tbl_Zeitschriften)
AE_RupID (Zahl, long, Fremdschlüssel zu tbl_Rupriken)
AE_TSID  (Zahl, long, FK zu tbl_Textsorten)
weitere Felder wie z. B. AE_Erscheinungsdatum, AE_Heftnummer, AE_Bearbeiter, usw...

Was jetzt die beschriebene "Artikelnummer" darstellen soll und für was die gebraucht wird, musst Du näher erläutern.
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

Pjoernrachzark

Hallo DF6GL,
danke für Deine ausführliche Antwort. Du hast wohl Recht, ich muss mehr Tabellen anlegen. Ich werde das angehen.
Die Artikelnummer, die ich meine, stammt aus einem manuellen System und wurde handschriftlich vergeben. Sie hat den Vorteil, dass an ihr sofort ersichtlich ist, um welche Rubrik um was für einen Text in welchem Heft usw. es sich handelt. Die Nummer setzt sich zusammen aus Kürzeln von Textsorte, Bearbeiter, Erscheinungsjahr usw. und eben aus einer mit jedem Heft neu begonnenen Hochzählung, beginnend mit 1. So ist auf einen Blick zu sehen, wieviele Texte pro Heft bereits fertiggestellt/geplant sind. Im Prinzip erübrigt sich das mit einer Datenbank, aber es wäre dennoch nicht schlecht, das auch in Access hinzubekommen. Ich weiß allerdings nicht, wie das zu bewerkstelligen ist.
Hoffe, es ist etwas klarer geworden.
Gruß, Markus

DF6GL

Hallo,

solche "berechneten Daten",  die sich aus den vorhandenen gespeicherten Daten ergeben, können jederzeit und bei Bedarf eben berechnet werden.  Inwieweit solche "Kurzzusammenfassung" sinnvoll ist und wie weit man dabei geht, ist halt irgendwann mal festzulegen.
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

Pjoernrachzark

Hallo,
ja, ist vielleicht nicht das sinnvollste jemals Ersonnene, aber ich möchte es dennoch hinbekommen?
Ich weiß eben nur nicht wie und ob das überhaupt geht.
Grüße!

Beaker s.a.

Hallo Franz,
ZitatInwieweit solche "Kurzzusammenfassung" sinnvoll
Das kann schon sinnvoll sein, kommt halt drauf an.

Nehme z.B. einen EAN13, da sind auch drei (vier) Informationen
zusammen gefasst, - ein Ländercode, der Besitzer, die eigentliche
Artikelnummer und (die Prüfziffer).

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

DF6GL

#6
Hallo Ekkehard,

hab ich ja nicht bestritten, nur auf die Festlegung des Einsatzzwecks hingewiesen.  8)

Wenn daraus eine für den Bediener der Db eine mehr oder weniger kryptische "sprechende" Artikelnummer werden soll, halte ich das als Aufgabe für eine Berechnung (auf die kommt es an) eher sinnvoll, als daraus einen "sprechenden" Primärschlüssel zu machen.
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

Beaker s.a.

Halo Franz,
Schon klar, einen PK würde ich daraus auch nicht machen.
Bin da ganz bei dir.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Pjoernrachzark

Hallo zusammen,
ok, jetzt weiß ich aber immer noch nicht, ob das geht und wie :/
Gruß,
Markus

DF6GL

Hallo,

ob das geht, wurde beantwortet,

wie das geht: was willst Du genau wissen?

Zudem ist zu erklären, welche der vorgeschlagenen Methoden Du nun einsetzen willst.
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