Access Firmen-facebook

Hallo liebe Profis!

Das Problem:
In einem Formular „Personen“ werden alle Datensätze zu natürlichen Personen erfasst und in Tabelle „Personen“ abgelegt.

Im Formular „Personen“ gibt es eine Unterformular „Beziehungen“. Eine Person kann mit ein oder mehreren Personen aus der oben genannten Tabelle „Personen“ in Beziehung stehen.
Ausserdem kann sie mit allen Organisationen aus der separaten Tabelle „Organisationen“ in Beziehung stehen.

Die Tabelle „Beziehungen“ enthält in einer Spalte „X1“ den Fremdschlüssel der gerade bearbeiteten Person, in einer anderen Spalte „X2“ den Fremdschlüssel des Beziehungspartners (Person oder Organisation), nebst weiteren (unwichtigen) Spalten.

Nun: Wie bekommt man es hin, dass beim Bearbeiten von X-Person, welche bei Y-Person unter Spalte „X2“ eingetragen ist, die Beziehung zu Y-Person ebenfalls im Unterformular „Beziehungen“ a) angezeigt und ggf. b) bearbeitbar gemacht wird?

Dass ein X1,X2 Datensatz sich also so verhält, als wäre er „ungerichtet“, sofern es sich um eine Beziehung von natürlichen Personen handelt.

Zwei Ideen hab ich mal:

  1. Datensatz irgendiwe „umgekehrt verdoppel“, falls es sich um eine Person handelt. Dies würde auch eine anschliessende bereits implementierte Abfrage deutlich vereinfachen (bei der ich genau dieses verdoppeln künstlich herstelle).
  2. Schlüssel-Verknüpfungen derartig anpassen, sodass sowohl X1 als auch X2 als der von der aktuell im Formular „Personen“ bearbeiteten X-Person geerbter Schlüssel in Frage kommt.

Ich hab keine Ahnung (blassen Schimmer), ob die Ideen in die richtige Richtung gehen, noch wie man sie umsetzt bzw. das Problem anderweitig löst.

Ich bin Access-Anfänger.

Vielen & herzlichen Dank!

Hallo

Da müssten sicher 3 Tabellen vorhanden sein. Personen, Beziehungen und Oranisation. Danach sicher die entsprechenden Abfragen für die Formular. tbl_Personen = Hauptformular. tbl_Beziehungen und tbl_Organisation = 2 Unterformulare. Die Verküpfung der Formular am besten über den Assistenten machen.

Gruss Stuergen

Sorry, ich verstehe die Fragestellung nicht so richtig! Vielleicht hilft erst mal ein Access Tutorial weiter?

F.

Hallo

Das Problem:

In einem Formular „Personen“ werden alle Datensätze zu
natürlichen Personen erfasst und in Tabelle „Personen“
abgelegt.

Im Formular „Personen“ gibt es eine Unterformular
„Beziehungen“. Eine Person kann mit ein oder mehreren Personen
aus der oben genannten Tabelle „Personen“ in Beziehung stehen.

Ausserdem kann sie mit allen Organisationen aus der separaten
Tabelle „Organisationen“ in Beziehung stehen.

Die Tabelle „Beziehungen“ enthält in einer Spalte „X1“ den
Fremdschlüssel der gerade bearbeiteten Person, in einer
anderen Spalte „X2“ den Fremdschlüssel des Beziehungspartners
(Person oder Organisation), nebst weiteren (unwichtigen)
Spalten.

Nun: Wie bekommt man es hin, dass beim Bearbeiten von
X-Person, welche bei Y-Person unter Spalte „X2“ eingetragen
ist, die Beziehung zu Y-Person ebenfalls im Unterformular
„Beziehungen“ a) angezeigt und ggf. b) bearbeitbar gemacht
wird?

Es darf die Tabelle „Organisation“ nicht geben. Alle Daten daraus werden in Tabelle „Personen“ zusammengeführt.

Um zu definieren, ob es sich bei einem Datensatz um eine Person oder um eine Organisation hndelt, muß ein weiteres Feld („Typ“) mitgeführt werden, das dieses erlaubt.

In Tabelle „Beziehungen“ gibt es weiterhin die zwei jetzt auch schon vorhandenen Spalten, in denen der jeweilige Primärschlüssel aus „Personen“ eingetragen wird.

Falls ich es richtig verstanden habe, was der Hintergrund dieser Verknüpfungen sein soll

(Jede beliebige Person/Organisation kann beliebig viele andere Personen/Organisationen besitzen)

Dass ein X1,X2 Datensatz sich also so verhält, als wäre er
„ungerichtet“, sofern es sich um eine Beziehung von
natürlichen Personen handelt.

was heißt „umgerichtet“ ?

Zwei Ideen hab ich mal:

  1. Datensatz irgendiwe „umgekehrt verdoppel“, falls es sich
    um eine Person handelt. Dies würde auch eine anschliessende
    bereits implementierte Abfrage deutlich vereinfachen (bei der
    ich genau dieses verdoppeln künstlich herstelle).

  2. Schlüssel-Verknüpfungen derartig anpassen, sodass sowohl
    X1 als auch X2 als der von der aktuell im Formular „Personen“
    bearbeiteten X-Person geerbter Schlüssel in Frage kommt.

Ich hab keine Ahnung (blassen Schimmer), ob die Ideen in die
richtige Richtung gehen, noch wie man sie umsetzt bzw. das
Problem anderweitig löst.

Ich bin Access-Anfänger.

Vielen & herzlichen Dank!

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo Franz,

vielen Dank für Deine Antwort.

Es leuchtet mir ein,d ass es vorzüge mit sich bringt, die beiden Tabellen zusammen zu führen.
Das macht es dann schonmals einfacher, in jeder Hinsicht. Gesagt, getan. :smile:

Auch wenn ich es bisher schon hinbekommen habe 1:n-Beziehungen entsprechend her zu stellen.
Mit ungerichtet, gerichtet meine ich: (P=Person,O=Organisation)
Spalte X Spalte Y

Py Py diese
Py Px beiden.
Py Ox
Px Oz

Das erste Tupel gehört zusammen, wenn das eine bearbeitet, gelöscht,etc. wird muss dass andere ebenfalls aktualisiert, gelöscht, etc. werden. (Umsetzung mittels Idee1)

Organisationen müssen diese Eigenschaft nicht unbedingt aufweisen, können aber.

Mein eigentlich Problem ist nämlich dass in der Eingabemaske von Person X zwar die Beziehung zu Person Y bearbeiten/löschen kann, nicht jedoch bei Person Y DIESELBE Beziehung zu Person X. Weil ja die entsprechenden Dropdownmenüs mit der jeweiligen Spalte in Tabelle „Beziehungen“, verbunden sind. Die Beziehung ist also „gerichtet“, es sieht so aus als war z.B. X zwar mit Y auf der gleichen Schule, Y aber nicht mit X.

Vielen Dank auch für die weniger spezifischen Hinweise, zuvor! Ich weiss leider noch nicht mal wonach ich suchen muss, das ist sogar oft das grösste Problem. :smile:

Vielen Dank und beste Grüsse von „Gar-Nicht-So-Weit-Vom-Bodensee-Weg“ :smile:
David

Hallo

Da müssten sicher 3 Tabellen vorhanden sein. Personen,

Ja, das ist so.

Beziehungen und Oranisation. Danach sicher die entsprechenden
Abfragen für die Formular. tbl_Personen = Hauptformular.
tbl_Beziehungen und tbl_Organisation = 2 Unterformulare. Die
Verküpfung der Formular am besten über den Assistenten machen.

Auch das ist korrekt.

Gruss Stuergen

Das Problem ist nun vereinfacht gesagt, dass in der Darstellung des entsprechenden Unterformulars X zwar Y „kennt“, Y aber nicht X. Bearbeiten müsste ebenfalls möglich sein.

Viele Grüsse
David

Welches? :wink: - Diese Frage kann ich mir leider nicht selbst beantworten. Das Problem ist ja relativ spezifisch:

In dem Formular zur Bearbeitung/Erstellung einer Person gibt es ein Dropdownmenü (in einem Unterformular), in dem alle Personen/Organisationen erscheinen. Man kann eine Person/Organisation auswählen und in einem weiteren Dropdown den Typ (Mitglied, Vorstand, Privatbeziehung, etc.) auswählen. Dann kann man in diesem Unterformular einen neuen Datensatz anlegen und eine weitere Person/Organisation in Beziehung setzen.

Beispiel:
Ich habe bei Person X im Dropdown Person Y ausgewählt und hinzugefügt, dass sie in einer Ehe stehen.

Das eigentliche Problem:
Jetzt gehe ich zu Datensatz von Person Y. Dort, im entsprechenden Unterformular, erscheint „Person X“ und „Ehe“ aber nicht in den jeweiligen Dropdowns.
Nicht nur Anzeigen, auch Bearbeiten sollte möglich sein.

beste Grüsse
D.

Sorry,

das ist mir zu verwirrend, ich denke das muß man sehen um es zu verstehen.

Gruß
Erika

Hi,

mir ist es ehrlich gesagt zu kompliziert, bei Deinen schlechten Vorkenntnissen, diese Frage hier über www zu beantworten. Früher enthielt die Online-Hilfe (F1) von Access immer recht brauchbare Tutorials als Bestandteil der Software. Mit Access 2007 ff. Hat sich dies leider evtl. deutlich verschlimmbessert.

Nix für ungut,
Fips

Hallo David

Das sieht nach einer fehlenden Verknüpfung aus. Wichtig ist, dass in der Abfrage für das Unterformular das Fremdschlüsselfeld enthalten ist, das sich auf die Tabelle(bzw. genauer: auf den Primärschlüssel) im Hauptformular bezieht. In deinem Fall auf die Person. Primär- und Fremdschlüssel können beide gleich heissen, dass muss aber nicht so sein. Nur wenn die beiden Schlüsselfelder Bestandteil der Abfrage sind, kann Access zusammengehörige Datensätze im Haupt-/Unterformular zusammenführen.

Gruss Jürgen

Hallo blaggacao

Ich habe einmal versucht, aus Deinem Problem klar zu kommen.
Dazu habe ich drei Tabellen erzeugt,
Personen mit den Feldern X1 (Schlüssel), Name, Vorname
Organisation mit X2 (Schlüssel), Organisation
Beziehung mit Feldern X1,X2

Dann habe ich eine Abfrage erzeugt, bei der X1 aus Personen und X1 aus Beziehung sowie X2 aus Organisation mit X2 aus Beziehungen verknüpft sind.
Diese Abfrage bezeichne ich als queryBeziehung.

Formular Organisation:

  1. Datenherkunft auf queryBeziehung
  2. Standardansicht auf Datenblatt
  3. Zur Auswahl der Organisation/Person würde ich
    eine Combobox verwenden:
    Steuerelementeinhalt: X2
    Datensatzherkunft: Organisation
    Spaltenanzahl: 2
    Gebundene Spalte: 1
    Spaltenbreiten: 0;5cm
    Dies zeigt die Organisationen an und schreibt bei
    Auswahl den entsprechenden X2-Wert in Tabelle.

In Formular Personen die Eigenschaften des Unterformulars so setzen:
Herkunftsobjekt: Organisation
Verknüpfen von: X1
Verknüpfen nach: X1

Dann sollte bei Aufruf von Formular Personen im
Unterformular alle eingetragene Beziehungen zur
Person im Hauptformular angezeigt werden. Änderungen oder Ergänzungen im Unterformular werden automatisch
in den entsprechenden Tabellen (Organisation und Beziehung) vorgenommen.

Ich hoffe, Dein Problem irgendwie getroffen zu haben.

Gruß Wolfgang

Hallo Jürgen,
vielen Dank für deine Antwort.

Ich bin mir aber nicht sicher ob das das Problem im Kern trifft…

Hanspeter Muster ist mit Max Mustermann befreundet. Das habe ich bei Hanspeter Muster im Unterformular eingetragen. Es wir auch korrekt ausgegeben und korrekt in die Tabelle eingefügt.
Bis hier hin ist alles paletti und es fehlen auch keine Verknüpfungen.

Gehe ich jetzt aber zum Datensatz von Max Mustermann und schaue ins Unterforular erscheint dort nicht Hanspeter Muster. Ich weiss dass das nicht von selber geht und vielleicht noch nicht mal trivial ist. Genau das ist mein Problem.

Vielen Dank und viele Grüsse
David

Kein Problem. Einem Geschenkten Gaul schaut man nicht ins Maul.
Dennoch vielen Dank.

Hallo David

Ok ich verstehe es langsam. HP hast du mit Max „verheiratet“ und in der umgekehrten Ansicht fehlt die Info. Ich denke, das Problem liegt an den Ebenen Ober/Unterformular. Wenn du manuelle Max noch mit HP „verheiratest“ wird es vermtulich funktionieren. Ich habe hier so was ähnliches gebaut mit Firmen und Kontaktpersonen. Wenn ich sehen will welche Kontaktpersonen zu welcher Firma gehören, müsste ich die Abfragen umbauen bzw. drehen. Die Abfrage für das Hauptformular wird neue für das Unterformular verwendet.

Gruss Jürgen

Hallo Wolfgang,

nein, es traf das Problem leider nicht.

Ich habe es nun wie folgt gelöst:

Ich habe nun zwei Unterformulare eingebaut.
Eines ist an X1 gebunden, das andere an X2. Dadurch werden die Beziehungen, die bei einer anderen Person (Personen können auch Personen kennen) gepflegt werden auch angezeigt.

Besten Dank dennoch!

Ich glaube ich war sprachlich etwas aufgeschmissen, sodass keiner das Problem richtig verstanden hatte… :smile:

Gruss
David

Hallo Jürgen,

ich habe es jetzt in der Tat zwar recht unelegant aber funktional gelöst, indem ich ein zweites Unterformular eingefügt habe, wleches genau „umgelehrt gepolt“ ist.

Also die Verbindung zum Hauptvormular liegt auf der zweiten Spalte, anstatt auf der Ersten und mit der Kombobox wird die erste Spalte anstatt der zweiten angezeigt.

Hoffentlich stiftet diese Lösung in der Anwendung nicht zu viel Verwirrung… :wink:

Viele Grüsse
David

Hallo blaggacao,

habe im Moment leider nur wenig Zeit, aber vielleicht in Kürze:

Ich denke was Du brauchst ist eine Tabelle Beziehungen, die ein Schlüsselfeld und zwei Personenfelder hat. Für jede Beziehung machst Du dann einen Eintrag in dieser Tabelle. Also Person A hat Beziehung zu K, L und M, dann gibt es in der Tabelle Beziehungen drei Einträge:
1 A K
2 A L
3 A M
4 …

Diese Tabelle kannst Du dann nach der ersten Person sortieren, so erhälst Du alle Beziehungen der Person A
zu anderen Personen.

Die Personenfelder enthalten selber auch nur Schlüssel,
also für A ein Schlüssel und für K, L, M auch jeweils nur Schlüssel.

Über eine Abfrage die die Personentabelle mit beiden Schlüsselfeldern verbindet kannst Du dann Namen in den Beziehungen anzeigen lassen.

Ich hoffe das hilft Dir weiter.

Herzliche Grüße

Peter

…da kann ich auch nicht helfen…
;-(

Guten Tag,
du musst 2 Tabellen anlegen, z.B. „tblStammdaten“ und „tblQualifikation“. Den Schlüssel von „tblQualifikation“ legst du dann in „tblStammdaten“ als Fremdschlüssel an. Mit einer Abfrage füllst du dann ein Formular und kannst damit alle Felder bearbeiten.

Melde dich, wenns klemmt!

Viel Erfog mit Access, ich arbeite gern damit!!

Gruß
Eckart