Access-Laie
Liebe Access-Profis,
ich versuche mich gerade an meiner ersten eigenen Access-Datenbank (Access 2000), bisher habe ich nur Erfahrung als einfacher User sowie mit dem Programmieren von Abfragen.
Jetzt stehe ich vor folgender Herausforderung und hoffe, dass mir hier jemand helfen kann:
Datensätzen, die in einer Tabelle (A) stehen, sollen über ein Formular weitere Daten zugeordnet werden, die eine Tabelle (B) geschrieben werden. Das Formular soll so aussehen, dass es möglich ist, bestimmte Datensätze aus Tabelle (A) aufzurufen, um für diese in Tabelle (B) je einen neuen Datensatz anzulegen.
Wie muss ich das Fomular aufbauen?
Bitte entschuldigt meine Unkenntnis. Es wäre toll, wenn mir jemand weiterhelfen könnte! Danke schon jetzt dafür.
Gruß Bernd
Antwort schreiben
Antwort 1 von RalfH vom 07.11.2019, 14:54 Options
Hallo rookie44,
Wir haben doch alle mal bei 0 Angefangen, oder ?
Grundsätzlich werden solche Formulare ja von Tabellen gefüttert. Diese Tabellen stehen miteinander in Verbindung über eine Verknüpfung, die Datenbank Spezies nennen das Relation.
Angenommen deine Tabelle A ist eine Firmen Liste.
Tabelle B soll nun die Niederlassungen der Firmen beinhalten.
Tabelle A wird ungefähr so aufgebaut:
Firmen_ID (Autowert)
Firmen_Name(Text)
Firmen_Anschrift(Text)
Tabelle B wird dann so aufgebaut:
Niederlassung_ID(Autowert)
Firmen_ID(Zahl)
Niederlassungsort(Text)
Anschrift(Text)
Die Grundlage für die Relation (Verknüpfung) ist in Tabelle B mit dem Eintrag der Firmen_ID gesetzt.
Es ist eine sogenannte 1 zu N Relationen. ( 1:N)
1 Firma kann unendlich viele Niederlassungen besitzen.
Wenn Du Formulare hast von den Tabellen kannst Du das Formular der Tabelle A als Hauptformular benutzen, das Formular der Tabelle B nutzt Du als Unterformular.
So, das wars fürd erste.
Gruß Ralf
Antwort 2 von rookie44 vom 07.11.2019, 19:46 Options
Hallo Ralf,
vielen Dank für deine ausführliche Antwort!
Bis zum Unterformular war ich mit Hilfe des Assistenten auch schon gekommen. Es ist allerdings noch nicht das, was ich brauche:
In meinem Fall soll zu manchen Datensätzen aus Tabelle A nur ein einziger Datensatz in Tabelle B angelegt werden. Dabei ist mein Problem, dass in Tabelle B jeder Datensatz eine neues Merkmal (Zahl) erhalten soll, das als zukünftige Referenz benötigt wird, aber in Tabelle A nicht an alle Datensätze vergeben werden kann.
Ich hänge jetzt also an den Fragen
a) über welches Kriterium ich die Datensätze miteinander verknüpfen soll
b) ob es überhaupt möglich ist, beide Tabellen über ein und dasselbe Formular zu bearbeiten, und falls ja, wie.
Bin sehr gespannt, ob und wie das geht, und für jeden Tipp sehr dankbar!!!
Viele Grüße
Bernd
Antwort 3 von rookie44 vom 07.11.2019, 20:05 Options
...noch eine Ergänzung, falls das Bisherige nicht klar genug war:
Zu den Datensätzen aus Tabelle A soll in Tabelle B immer nur 1 Datensatz generiert werden.
Jeder Datensatz in Tabelle B soll mit einem Datensatz in Tabelle A verknüpft sein, aber nicht alle Datensätze in Tabelle A haben eine Entsprechung in Tabelle B.
Antwort 4 von RalfH vom 08.11.2019, 06:14 Options
Hallo und guten Morgen,
Ich muss zugeben, ein wenig bin ich jetzt verwirrt:
Zitat:
In meinem Fall soll zu manchen Datensätzen aus Tabelle A nur ein einziger Datensatz in Tabelle B angelegt werden.
Ist für mich eine N:1 Relation
Zitat:
Zu den Datensätzen aus Tabelle A soll in Tabelle B immer nur 1 Datensatz generiert werden.
Wäre dann eine n:m Relation
Vieleicht beschreibst Du die Aufgabe der Datenbank mal ein wenig Globaler.
Gruß Ralf
Antwort 5 von rookie44 vom 08.11.2019, 08:11 Options
Hallo Ralf,
ich verstehe zwar nicht, worin du als Fachmann den Widerspruch siehst, aber wahrscheinlich wird mein Anliegen deutlicher, wenn ich den Zweck der Tabellen schildere:
In Tabelle A sollen Adressdaten von Bewerbern und Mitarbeitern erfasst werden. Tabelle B soll Personaldaten enthalten, die noch nicht in Tabelle A enthalten sind.
Aus einem Teil der Bewerber in Tabelle A werden irgendwann Mitarbeiter, für die dann ein Datensatz in Tabelle B angelegt werden soll. D.h. zu jedem Datensatz, der in Tabelle B angelegt werden soll, existiert bereits zuvor ein Datensatz in Tabelle A, auf den sich die neuen Informationen beziehen.
Pro Mitarbeiter bzw. Bewerber gibt es immer einen Datensatz in Tabelle A und maximal einen in Tabelle B.
Ich hoffe, meine Beschreibung ist verständlich. Sorry für die Verwirrung!
Gruß Bernd
Antwort 6 von RalfH vom 08.11.2019, 11:51 OptionsLösung
Hallo,
Ok, damit kann man was anfangen. Das wäre nach Deiner Beschreibung eine 1:1 Relation.
1Bewerber wird 1 Mitarbeiter.
Ich würde aber eine M:N Beziehung bevorzugen.
1 Bewerber wird 1 Mitarbeiter kann aber im laufe der Zeit innerhalb der Firma mehrmals den Job wechseln.
Und umgekehrt kann ein Job mehrmals den Mitarbeiter wechseln.
Dazu werden Benötigt:
Tabelle A:
Bewerbungs_ID(Autowert) (Primärschlüssel)
Name
Vorname
usw.
Tabelle B:
Personal_ID (Primärschlüssel)
Bewerbungs_ID (Fremdschlüssel aus Tabelle A)
Berufs_ID (Fremdschlüssel aus Tabelle C)
Tabelle C
Berufs_ID(Primärschlüssel)
Berufsbezeichnung
Entgeldgruppe
Kostenstelle
Abteilung
usw.
So könnte man das, mal ganz schnell und schmutzig gesagt machen.
Und wenn man jetzt noch ein wenig tiefer einsteigen will, so würden dann noch Tabellen für:
Kostenstelle
Abteilung
Entgeld/Lohngruppe
Projekte
und und und
hinzukommen, die dann auch über relationen Verknüpft werden. Vor oder während der Laufzeit muss man dann schauen.
Gruß Ralf
Antwort 7 von rookie44 vom 08.11.2019, 12:45 Options
Hallo Ralf,
1000 Dank! Das hilft mir auf jeden Fall weiter.
Viele Grüße
Bernd