Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
1:n Beziehung in Textfeld ausgeben
zurück: Verknüpfung von 3 Tabellen mit LEFT JOIN und INNER JOIN weiter: Pivot - Nachkommastellen werden immer mit 0 dargestellt Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
sehusi
Im Profil kannst Du frei den Rang ändern


Verfasst am:
03. Jun 2013, 10:57
Rufname: Sebastian

1:n Beziehung in Textfeld ausgeben - 1:n Beziehung in Textfeld ausgeben

Nach oben
       Version: Office 2007

Hallo zusammen,

leider bin ich bei meinen Problemen noch nicht ganz am Ende angelangt.

Meine 1:n Beziehung steht mitlerweile und wir über VBA und Abfragen gefüllt.
Der Aufbau sieht so aus:

tbl_Stammdaten
Code:
Prim_ID          |              Lieferant   ---| Adresse----|Telefon----| Etc.----|
---------------------------------------------------       
 230       -------  Eurosrew -------      bla ------  blub--------bla-----                       
 320       -------  BSF-Tec    ---------     bla ------  blub--------bla-----
tbl_Produkte
Code:
Sek_ID           |  Num_Produkt
 230      ---------                   2               
 230      ---------    3               
230      ---------   4               
230     ---------   1             
320      ---------    3               
320      ---------    5               
320      ---------    6
tbl_Zuordnungen
Code:
 Num_Produkt |       Produktbez.                   
      1           ---------------- Zahnraeder       
      2          ---------------- Schrauben         
     3          ---------------- Dichtringe         
     4           ---------------- Wellen             
       5          ---------------- Lager               
        6           ---------------- Sicherungsstifte
Die tbl_Produkte wird hier zur Platzersparnis über ein Popup "Unterformular" gefüllt.

Das Hauptformular ist ein Endlosformular um alle Datensätze in tbl_Stammdaten durchblättern zu können.
Ich würde nun gerne im Hauptformular über ein Textfeld oder ähnliches, jeweils Anzeigen lassen welche Produkte beim jeweiligen Datensatz ausgewählt sind.

Hierzu muss ich also gucken welche Datensätze in tbl_Produkte die gleiche Sek_ID haben wie die aus tbl_Stammdaten aufgerufene Prim_ID.
Anschließend müsste ich in der tbl_Zuordnungen den Numerischen Wert der Abteilung in einen Text umschlüsseln.

Ich habe mich als Anfänger etwas an die Abfragen getraut und versucht in SQL was passendes zu schreiben.
Ohne vorkenntnisse der richtigen Befehle gestaltet sich das aber als eine einzige Katastrophe ;)

Leider ist die Suche hier in dem Fall nicht hilfreich. Ich gehe zwar davon aus das schon viele dieses Frage hatten, die Topic überschriften aber so gewählt haben das ich bei der Suche nix finde. Optional gäb es natürlich noch die möglichkeit das meine suchfähigkeiten zu wünschen übrig lassen^^

Für tipps, hilfe oder Anregungen wäre ich wie immer sehr Dankbar!

Gruß
sehusi
Gast



Verfasst am:
03. Jun 2013, 11:59
Rufname:


AW: 1:n Beziehung in Textfeld ausgeben - AW: 1:n Beziehung in Textfeld ausgeben

Nach oben
       Version: Office 2007

Hallo,
Zitat:
Hierzu muss ich also gucken welche Datensätze in tbl_Produkte die gleiche Sek_ID haben wie die aus tbl_Stammdaten aufgerufene Prim_ID.
Anschließend müsste ich in der tbl_Zuordnungen den Numerischen Wert der Abteilung in einen Text umschlüsseln.
Das ist alles überflüssig. Zur Anzeige der Produktbezeichnung im Formular reicht es doch aus, wenn du in dem Unterformular (ist das wirklich ein im Hauptformular eingebettetes Unterformular, erzeugt mit dem Unterformular-Steuerelement oder nur ein Popup?) das Feld Num_Produkt als Kombinationsfeld ausführst. Dann wird dir in dem Unterformular statt des Fremdschlüsselwertes die Bezeichnung aus der tbl_Zuordnungen in dem Unterformular angezeigt.

Zitat:
Ich würde nun gerne im Hauptformular über ein Textfeld oder ähnliches, jeweils Anzeigen lassen welche Produkte beim jeweiligen Datensatz ausgewählt sind.
Da ein Lieferant ja mehrere (meist sogar sehr viele) Prodikte haben kann, reicht zur Anzeige im Hauptformular ein einzelnes Textfeld sowieso nicht aus. Dafür wäre mindestens ein Listenfeld (nicht editierbar) oder eben besser ein Endlos-Unterformular (editierbar, d.h. du kannst einem Lieferanten auch gleiche neue Produkte hinzufügen) nötig, welches über die Schlüsselfelder mit dem Hauptformular verknüpft ist.

Wenn du Hauptformular und Unterformular korrekt über die Schlüsselfelder "Prim_ID" und "Sek_ID" verknüpfst, dann werden dir doch automatisch alle Produkte angezeigt, die zu dem gerade im Hauptformular angezeigten Lieferanten gehören.

Übrigens ist deine Benennung suboptimal. Wink
Die tbl_Zuordnungen würde ich eher tbl_Produkt nennen und die tbl_Produkte eher tbl_LieferbareProdukte oder tbl_LieferantProdukte (denn hier wird ja abgebildet, welcher Lieferant welche Produkte liefert).
Auch solltest du bei der Benennung von Schlüsselfeldern kennzeichnen, was Primärschlüssel und was Fremdschlüsel ist, ansonsten zusammengehörende Schlüsselfelder bis auf die Kennzeichnung gleich benennen (läßt sich bei größeren Datenbanken mit vielen Tabellen dann viel leichter zuordnen).
Beispiel:
Primärschlüssel des Lieferanten: LieferantID_P statt Prim_ID
Fremdschlüssel des Lieferanten: LieferantID_F statt Sek_ID
Primärschlüssel Produkt: ProduktID_P statt Num_Produkt
Fremdschlüssel Produkt: ProduktID_P statt Num_Produkt
Gast



Verfasst am:
03. Jun 2013, 12:28
Rufname:

AW: 1:n Beziehung in Textfeld ausgeben - AW: 1:n Beziehung in Textfeld ausgeben

Nach oben
       Version: Office 2007

Hallo Gast,

vielen Dank für deine Hilfestellung.
Als direkte Antwort erstmal:
Nein es ist kein wirkliches Unterformular und im Hauptformular eingebettet.
Das hätte ich deutlicher schreiben sollen.
Ein Unterformular kommt mir immer sehr Platzverbauchend vor.
Außerdem finde ich sieht es auch nicht sehr schön/professionell aus.
Wenn es natürlich keine andere Möglichkeit gibt, muß ich mir das noch einmal ansehen.

Deine ganze Antwort muss ich mir später noch genauer durchlesen, jetzt bin ich leider grade aufem sprung.

Besten Dank nochmal!
Nachtrag: Gast am 03. Jun 2013 um 13:55 hat folgendes geschrieben:
Zur Ergänzung evtl. noch einmal:

Die tbl_Zuordnungen enthält sämtliche Zuordnungen die in der Datenbank benötigt werden. Also Personen,Abteilungen,Produktbezeichnungen etc..

Daraus folgt das das Feld Num_Produkt nicht die Primär ID der eigentlichen Datenbank darstellt. Auch dieses Feld ist ein Fremdschlüssel.

Ich werde jetzt noch ein wenig mit Unterformularen spielen und ansonsten Versuchen das ganze über VBA zu machen. Hierbei habe ich nur Angst das die Laufzeiten zu hoch ausfallen.

Ich hatte gehofft die Tabelle über eine Abfrage zusammenführen zu können, jedoch bekomme ich da immer wieder Probleme mit den Datentypen.

Besten Dank nochmal!
Gast



Verfasst am:
04. Jun 2013, 16:19
Rufname:


AW: 1:n Beziehung in Textfeld ausgeben - AW: 1:n Beziehung in Textfeld ausgeben

Nach oben
       Version: Office 2007

Hallo,
Zitat:
Ein Unterformular kommt mir immer sehr Platzverbauchend vor.
Außerdem finde ich sieht es auch nicht sehr schön/professionell aus.
Nun, das ist Geschmacksache. Mich nerven Popup-Formulare immer tierisch. Ich habe gerne die Daten alle auf einen Blick ersichtlich.

Zum Platzverbrauch: da verwende ich gerne das Register-Steuerelement. Damit lassen sich mehrere Unterformular übersichtlich und platzsparend auf einem Hauptformular anordnen.

Zitat:
Die tbl_Zuordnungen enthält sämtliche Zuordnungen die in der Datenbank benötigt werden. Also Personen,Abteilungen,Produktbezeichnungen etc..
Wie? Shock Das halte ich für grob falsch. Die Beziehungen müssen doch so gesetzt werden, wie die Objekte in der Realität zueinander in Beziehung stehen und wie euer Workflow abläuft. Eine einzige Tabelle, in der alle Tabellen einer Datenbank "irgendwie zugeordnet" werden, ist doch sinnfrei.

Zitat:
Daraus folgt das das Feld Num_Produkt nicht die Primär ID der eigentlichen Datenbank darstellt.
Jede Tabelle hat seinen eigenen Primärschlüssel! Es gibt zwar die Möglichkeit, eine Datenbankweite ID für jeden Datensatz anzulegen, allerdings würde ich das bei Access nicht machen. Besser ist da in jeder Tabelle ein Feld mit einem AutoWert als Primärschlüssel.

Zitat:
Auch dieses Feld ist ein Fremdschlüssel.
Dann sind die Beziehungen bei dir falsch gesetzt! Eine Beziehung besteht immer zwischen dem Primärschlüssel einer Tabelle und seinem Gegenpart, dem Fremdschlüssel, in einer anderen Tabelle, aber nicht zwischen zwei Fremdschlüsseln.

Ich denke du solltest dein Datenmodell überarbeiten. Ein anfängergrerechtes Tutorial findest du hier:
Datenmodell entwickeln: Welche Tabellen und Beziehungen?

Zu deinem Ursprungsproblem: auch bei einem Popup-Formular (bei dir dann gebunden an tbl_Produkte) solltest du das Feld Num_Produkt als Kombinationsfeld ausführen (Datenquelle: Abfrage aus tbl_Zuordnungen mit den zwei Spalten Num_Produkt und Produktbez, Soalte 1 ausblenden, Spalten 2 anzeigen lassen). Dann wird dir im Popup-Formular der Klartext statt der Nummer angezeigt.
In einer Datenbank sollte der User niemals diese kryptischen IDs zu sehen bekommen.

Wie öffnest du das Popup-Formular? Über einen Button? Dann kannst du die ID als Filter mit übergeben.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Parameter aus Textfeld übernehmen 2 Frankie 1743 04. Dez 2005, 23:34
Gast Parameter aus Textfeld übernehmen
Keine neuen Beiträge Access Tabellen & Abfragen: M:N Beziehung 1 taomik 474 18. Nov 2005, 11:13
DF6GL M:N Beziehung
Keine neuen Beiträge Access Tabellen & Abfragen: Schreibschutz bei mehreren 1:n verknüpfungen 2 matze0815 810 23. Okt 2005, 21:25
matze0815 Schreibschutz bei mehreren 1:n verknüpfungen
Keine neuen Beiträge Access Tabellen & Abfragen: Bei Abfrage ohne Beziehung leeres Feld einfügen 2 Thomas_v2.1 3587 23. Sep 2005, 09:13
Thomas_v2.1 Bei Abfrage ohne Beziehung leeres Feld einfügen
Keine neuen Beiträge Access Tabellen & Abfragen: Zirkulare Beziehung 4 hötti 715 20. Sep 2005, 19:29
hötti Zirkulare Beziehung
Keine neuen Beiträge Access Tabellen & Abfragen: Gültigkeitsregel für Textfeld:Ort 1 reteid2222 1319 18. Sep 2005, 11:53
jens05 Gültigkeitsregel für Textfeld:Ort
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage und n:m Beziehung 3 Saib 596 05. Sep 2005, 12:57
Willi Wipp Abfrage und n:m Beziehung
Keine neuen Beiträge Access Tabellen & Abfragen: Importierte Tabelle mit vielen m:n Beziehungen aufteilen 6 joerg70 1001 12. Aug 2005, 19:23
joerg70 Importierte Tabelle mit vielen m:n Beziehungen aufteilen
Keine neuen Beiträge Access Tabellen & Abfragen: Tabellenwerte in Abfrage zählen und ausgeben. 5 HardcoreJan 1006 11. Jul 2005, 17:02
Willi Wipp Tabellenwerte in Abfrage zählen und ausgeben.
Keine neuen Beiträge Access Tabellen & Abfragen: M:N Beziehungen um alle Datensätze zu sehen? 3 zuperwoman 686 04. Jul 2005, 10:46
stpimi M:N Beziehungen um alle Datensätze zu sehen?
Keine neuen Beiträge Access Tabellen & Abfragen: Wert aus Textfeld für Abfrage auslesen 2 Sonic 6622 23. Jun 2005, 08:08
Sonic Wert aus Textfeld für Abfrage auslesen
Keine neuen Beiträge Access Tabellen & Abfragen: Datensätze hinzufügen bei m:n Beziehung 13 Th.Fi 1036 10. Feb 2005, 13:27
Willi Wipp Datensätze hinzufügen bei m:n Beziehung
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Dreamweaver Forum