collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 43
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13947
  • stats Beiträge insgesamt: 66274
  • stats Themen insgesamt: 8933
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: "Freundschaften" anzeigen  (Gelesen 4056 mal)

Offline datekk

  • Access-Meister
  • ***
  • Beiträge: 701
"Freundschaften" anzeigen
« am: Februar 01, 2016, 16:58:59 »
Hallo,

ich habe eine Tabelle mit Kundendatensätzen (Personen) und ein Formular, welches die Datensätze einzeln anzeigt. Ich möchte nun für die Kunden eine Art Freundesliste anlegen, da manche Datensätze untereinander verknüpft werden sollen. Hierzu habe ich eine weitere Tabelle "tbl_Freunde" angelegt. Diese beinhaltet eigentlich nur die DatensatzID und eine LinkID.

Wenn ich nun z.B. im Formular den Müller geöffnet habe und eine Freundschaft zu Herrn Schulze anlege, so füllt sich die Tabelle "tbl_Freunde" wie folgt: DatensatzID = ID von Herrn Müller, Link ID = ID von Herrn Schulze. Dies geschieht mit einer INSERT INTO Anweisung, nachdem sich ein anderes Formular öffnet, aus dem ich den Datensatz von Herrn Schulze ausgewählt habe.

Das Kundenformular hat ein UFO in dem wiederrum ein Formular ist, welches die Inhalte aus einer Abfrage der Tabelle "tbl_Freunde" anzeigt, verknüpft FormularID = DatensatzID

Soweit so gut.. Fortan sehe ich die Freundschaft im Formular beim Herrn Müller. Leider aber nicht bei Herrn Schulze da das UFO ja auf die DatensatzID und nicht auf die Link ID verknüpft ist.

Wie kann man dies lösen? Der einzige Weg der mit spontan einfallen würde wäre in der Tabelle über die INSERT Anweisung zwei Datensätze eintragen zu lassen (den zweiten dann mit vertauschten IDs). Aber es gibt vielleicht elegantere Lösungen..?

Danke schon mal und viele Grüße
datekk

« Letzte Änderung: Februar 01, 2016, 17:18:35 von datekk »
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7258
Re: "Freundschaften" anzeigen
« Antwort #1 am: Februar 01, 2016, 17:47:01 »
Hallo,
erstelle eine Abfrage mit der Tabelle "tbl_Freunde" dann nimmst Dui in diese Abfrage die Personentabelle 2x auf, Access ergänzt den 2. Tabellennamen automatisch mit _1.
Im Formular kannst Du wenn Du die Tabellennamen dem Feldnamen voranstellt die Inhalte unterscheiden.
Wenn Du Hafo und Ufo über die Schlüsselfelder der Originaltabellen verknüpfst, kannst Du automatisch Freunde erfassen. Die Insert Abfrage wird komplett überflüssig. Du brauchst auch kein Formular zur Auswahl, das geht mit einem Kombi im Ufo ganz einfach.
Das Ganze kannst Du völlig ohne Programmierung mit den Standardfunktionalitäten von Access erledigen.
Gruß
Klaus
 

Offline datekk

  • Access-Meister
  • ***
  • Beiträge: 701
Re: "Freundschaften" anzeigen
« Antwort #2 am: Februar 01, 2016, 18:53:52 »
Wie sieht dann die Verknüpfung innerhalb der Abfrage aus? Die eine Personentabelle DatensatzID auf PersonentabelleID und die Personentabelle_1 LinkID auf Personentabelle_1_ID?

 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7258
Re: "Freundschaften" anzeigen
« Antwort #3 am: Februar 01, 2016, 19:21:40 »
Hallo,
ja, so ist das.
Gruß
Klaus
 

Offline datekk

  • Access-Meister
  • ***
  • Beiträge: 701
Re: "Freundschaften" anzeigen
« Antwort #4 am: Februar 02, 2016, 09:16:18 »
Hi Klaus.. Leider komme ich nicht zurecht. Wenn ich die Umstellung so vornehme, wird in meinem UFO gar nix mehr angezeigt. Wäre es Dir möglich, mal eine Beispieldatenbank zu erstellen?
 

Offline MaggieMay

  • Global Moderator
  • Access Guru
  • *****
  • Beiträge: 3109
Re: "Freundschaften" anzeigen
« Antwort #5 am: Februar 02, 2016, 09:52:23 »
Hallo,

die Beispiel-DB sollte von dir kommen, inklusive Lösungsversuch, dann kann man dir zeigen wo der Fehler liegt.
Freundliche Grüße
MaggieMay
 

Offline datekk

  • Access-Meister
  • ***
  • Beiträge: 701
Re: "Freundschaften" anzeigen
« Antwort #6 am: Februar 02, 2016, 11:37:39 »
Ich habe es ja schon probiert dies nachzustellen, allerdings komme ich nicht mit der Abfrage weiter, welche Felder dort wie rein müssen, dann weiß ich nicht welche Felder das UFO braucht und wie dann das KombiFeld aufgebaut werden muss. Von daher kann ich selbst kein Beispiel liefern.
 

Offline MaggieMay

  • Global Moderator
  • Access Guru
  • *****
  • Beiträge: 3109
Re: "Freundschaften" anzeigen
« Antwort #7 am: Februar 02, 2016, 11:40:25 »
Du hast aber doch eine DB mit den benötigten Tabellen und Datensätzen, wenigstens das könntest du zur Verfügung stellen, damit man das nicht selbst nachbauen muss.
Freundliche Grüße
MaggieMay
 

Offline datekk

  • Access-Meister
  • ***
  • Beiträge: 701
Re: "Freundschaften" anzeigen
« Antwort #8 am: Februar 02, 2016, 11:58:06 »
Ok, ich habe eine ganz einfache Datenbank angehangen. In dem UFO im Kontaktformular sollte man eine Freundschaft zu einem anderen Kontakt auswählen können. Diese soll dann dort zu sehen sein. Wenn man den befreundeten Kontakt öffnet, soll auch dort "die Gegenseite" zu sehen sein.
 

Offline MaggieMay

  • Global Moderator
  • Access Guru
  • *****
  • Beiträge: 3109
Re: "Freundschaften" anzeigen
« Antwort #9 am: Februar 02, 2016, 12:36:09 »
Man sollte es seinen potenziellen Helfern stets so einfach wie möglich machen, deine Beispiel-DB enthält aber leider nicht das, was du schon beschrieben hattest, nämlich ein Unterformular zur Zuordnung und Anzeige der Freunde. Das hatte doch soweit schon geklappt, wie du schriebst, nur fehlte dir die Umkehrbeziehung.

Apropos "Beziehung", so wie unten angefügt sollte sich das im Beziehungsfenster darstellen, lässt sich leicht zusammenklicken.
Freundliche Grüße
MaggieMay
 

Offline datekk

  • Access-Meister
  • ***
  • Beiträge: 701
Re: "Freundschaften" anzeigen
« Antwort #10 am: Februar 02, 2016, 13:02:43 »
Vielen Dank erstmal. Soweit bin ich ja auch schon gekommen. Aber im Beziehungsfenster soll doch der Name desjenigen auftauchen, zu dem eine Beziehung besteht. Die Abfrage liefert nun aber zwei Namen aus.. aus tbl_Kontakt und tbl_Kontakt_1. Von daher weiß ich nicht wie ich dieses UFO-Formular aufbauen soll damit mir die richtige Verknüpfung angezeigt wird. Und das oben besprochene Kombifeld zum setzen der Beziehung ist mir auch nicht klar wie das aufgebaut wird. Daher habe ich das Beziehnungsfenster weg gelassen.

Sorry, ich steh da auf dem Schlauch.
 

Offline MaggieMay

  • Global Moderator
  • Access Guru
  • *****
  • Beiträge: 3109
Re: "Freundschaften" anzeigen
« Antwort #11 am: Februar 02, 2016, 15:13:06 »
Du musst das Erfassen der Freunde vom Anzeigen trennen - geht leider nicht anders. Denn beim Erfassen ist die Kontakt_ID der erste Schlüssel in der Verknüpfungstabelle und die des Freundes wird als zweiter Schlüssel eingetragen. Umgekehrt aber willst du ja auch die Freunde des Freundes sehen, also vom zweiten Schlüssel auf den ersten "verlinken".

Hierzu könnte folgende Abfrage dienen:
SELECT k1.ID_Kontakt, k2.anrede AS Anrede, k2.Vorname As Vorname, k2.Nachname As Nachname
FROM tbl_Kontakt AS k2 INNER JOIN (tbl_Kontakt As k1 INNER JOIN tbl_Verknüpfung As v ON k1.ID_Kontakt = v.KontaktID) ON k2.ID_Kontakt = v.LinkID
UNION ALL
SELECT k2.ID_Kontakt, k1.anrede, k1.Vorname, k1.Nachname
FROM tbl_Kontakt AS k2 INNER JOIN (tbl_Kontakt As k1 INNER JOIN tbl_Verknüpfung As v ON k1.ID_Kontakt = v.KontaktID) ON k2.ID_Kontakt = v.LinkID

Diese ist aber nicht änderbar, also musst du die Anzeige von der Erfassung trennen, bspw. mit Hilfe zweier Unterformulare.

Ich hoffe, das hilft dir weiter.
Freundliche Grüße
MaggieMay
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1765
Re: "Freundschaften" anzeigen
« Antwort #12 am: Februar 02, 2016, 17:24:17 »
Hallo Maggie,
Zitat
Du musst das Erfassen der Freunde vom Anzeigen trennen - geht leider nicht anders.
Warum? Was hält dich davon ab nach Eintrag des FK einen zweiten DS in die Tabelle zu schreiben mit umgekehrten Schlüsseln?
Oder habe ich hier was übersehen?
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline MaggieMay

  • Global Moderator
  • Access Guru
  • *****
  • Beiträge: 3109
Re: "Freundschaften" anzeigen
« Antwort #13 am: Februar 02, 2016, 17:49:56 »
Davon hat mich die fehlende Einsicht abgehalten, dass dies eine gute Lösung sein könnte. ;-)
Aber vielleicht irre ich da, ist vermutlich am einfachsten so.

Hatte das denn überhaupt schon mal jemand vorgeschlagen?
Freundliche Grüße
MaggieMay
 

Offline datekk

  • Access-Meister
  • ***
  • Beiträge: 701
Re: "Freundschaften" anzeigen
« Antwort #14 am: Februar 02, 2016, 18:18:33 »
Davon hat mich die fehlende Einsicht abgehalten, dass dies eine gute Lösung sein könnte. ;-)
Aber vielleicht irre ich da, ist vermutlich am einfachsten so.

Hatte das denn überhaupt schon mal jemand vorgeschlagen?

:) Ja ich selbst in meinem Eröffnungsbeitrag :) Ich habe es jetzt mit zwei Insert Into Routinen genau so gelöst. :)