Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Duplikate in Tabellen

Begonnen von jm.net, März 06, 2022, 21:06:41

⏪ vorheriges - nächstes ⏩

jm.net

Hallo zusammen,
ich bin Access-Neuling und habe ein kleines Problem. Ich möchte eine Tabelle "tbl_Daten" erstellen, in der ich Artikelnummern und die dazugehörige Seriennummer eintragen kann.
Die Artikelnummern habe ich in einer separaten Tabelle "tbl_MAT" bereits angelegt.
In der neuen Tabelle "tbl_Daten" möchte ich die Artikelnummern mittels Nachschlageassistent aus "tbl_MAT" einbinden, damit in "tbl_Daten" nur Artikelnummern aufgenommen werden können, die in "tbl_MAT" vorhanden sind. Dies hat so auch geklappt.
Nun möchte ich in "tbl_Daten" ein Feld einfügen, indem ich zu jeder eingetragenen Artikelnummer eine Seriennummer eintragen kann.
Die Seriennummer beginnt für jeden Artikel mit der Nummer 101.
Wird der identische Artikel nochmals in "tbl_Daten" eingetragen, bekommt dieser die Seriennummer 102.
Wird eine andere Artikelnummer in "tbl_Daten" eingetragen, beginnt die Seriennummer wieder mit 101.
Wie kann ich nun verhindern, dass ein Artikel nicht nochmals mit der identischen Seriennummer mit aufgenommen werden kann?
Ich dachte zuerst an Indexierung "Ohne Duplikate" für das Feld Seriennummer, allerdings kann ich dann für eine andere Artikelnummer nicht wieder die Seriennummer 101 eintragen.
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.
Danke für eure Hilfe.

Gruß Jörg



MzKlMu

Hallo,
mit Index bist Du auf der richtigen Spur. Du kannst einen eindeutigen Mehrfeldindex über die Artikelnummer und die Seriennummer legen. Siehe hierzu die Hilfe zu Index.
Damit wird zuverlässig auf Tabellenebene die Doppelung einer Seriennummer verhindert.
Die Tabelle für das Material sollte auch einen Primärschlüssel haben, das ist im Regelfall nicht die Artikelnummer, sondern ein extra Feld als Autowert. Und mit diesem PS wird dann der Mehrfeldindex gebildet.

Zitatmittels Nachschlageassistent aus "tbl_MAT" einbinden,
Bitte keine Nachschlagefelder in Tabellen anlegen, die haben dort nichts zu suchen. Die verstellen den Blick auf die Daten wie sie in der Tabelle stehen.
Die Datenbearbeitung erfolgt bei Access ausschließlich über Formulare und dort kannst Du solche Nachschlagefelder (=Kombinationsfelder) ohne Problem verwenden. Du hast keine Nachteile, wenn die aus den Tabellen entfernt werden.

Bitte gebe der Tabelle für die Daten einen vernüftigen NAmen, Daten stehen in allen Tabellen. Verwende Tabellenamen die auf die Art der Daten schließen lassen. Beim Material hast Du es ja gemacht.
Gruß Klaus

jm.net

Hallo MzKlMu,
danke für die schnelle Rückantwort. Hat teilweise geklappt, manche Dinge verstehe ich allerdings noch nicht so ganz. Bei "tbl_MAT" habe ich bei der Artikelnummer den PS angehängt, da jede Artikelnummer nur ein mal vorkommt und somit doch eindeutig ist; warum hier ein extra Feld mit "Autowert"?
Den Nachschlageassistenten im Tabellenentwurf habe ich verwendet, damit ich bei der Formularerstellung  automatisch ein Auswahlfeld bekomme.
Wie gesagt, bin Neuling aber ich versuch mich durchzukämpfen.
Danke für deine Hilfe.

MzKlMu

#3
Hallo
was heißt hat teilweise geklappt?
Was geht denn nicht?

Was ist denn die Artikelnummer für ein Datentyp?

Lösche die Nachschlagefelder in den Tabellen, du tust dir einen Gefallen.
Du kannst auch im Formular die Auswahlfelder erstellen, ohne Probleme.

Zeige bitte mal ein Bild des Beziehungsfensers.
Gruß Klaus

Beaker s.a.

Hallo,
Zitatdamit ich bei der Formularerstellung  automatisch ein Auswahlfeld bekomme.
Kann man so machen, sollte aber nicht vergessen, das Feld in der Tabelle
zu einem "normalen" Feld zu ändern.

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)