Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Über JOIN-Tabelle nachgeschlagener Wert ändert Datensatz der Quell-Tabelle

Begonnen von TobiasW, Oktober 15, 2013, 18:50:39

⏪ vorheriges - nächstes ⏩

TobiasW

Hallo zusammen,
wie wahrscheinlich nicht schwer zu erkennen ist, bin ich neu hier  :)
Der Grund meiner Anmeldung ist relativ einfach: ich versuche mit Access 2010 ein Formular zu erstellen und komme an einer Stelle nicht weiter und würde mich riesig über eure kompetente Hilfe freuen!
Ich habe auch die Suche bemüht, weiß aber nicht so recht, wonach ich eig. suchen soll bzw. wie man mein Problem korrekt bezeichnet.

Erst mal zum System:
Es handelt sich um eine MySQL-Datenbank, die per ODBC-Connector mit Access verbunden ist.
Es funktioniert soweit alles bestens: Datensätze lesen, ändern, erstellen, usw.

Der betroffenen teil des DB-Schemas sieht wie folgt aus:
Es gibt die Tabellen Produkt, Bewertungskriterium, MöglicheAusprägung und Ausprägung. (MöglicheAusprägung ist die JOIN-Tabelle (Assoziative Klasse) der n-m-Beziehung zwischen Bewertungskriterium und Ausprägung.
Ein Beispiel:
In der Tabelle Ausprägung stehen alle vordefinierten Ausprägungen, z.B. "JA" und "NEIN".
In der Join-Tabelle (assoziativen Klasse) MöglicheAusprägung steht, dass das Bewertungskriterium "LTE-fähig" die Ausprägungen "JA" und "NEIN" haben kann.

Im Formular soll dann folgendes zusammengestellt oder geändert werden können:
Das Produkt "Smartphone XYZ" hat für das Bewertungskriterium "LTE-fähig" die Ausprägung "NEIN".

Was ich mittlerweile hinbekommen habe ist, dass das Nachschlagen der möglichen Ausprägung abhängig vom gewählten Bewertungskriterien funktioniert. (per Select-Statement)
Lege ich also ein neues Produkt an und wähle das Bewertungskriterium "LTE-fähig" bekomme ich als mögliche Ausprägung nur "JA" und "NEIN" zu Auswahl angezeigt.

Das Problem dabei ist folgendes:
In der Produktliste gibt es mehrere Einträge/Produkte. Einige haben "JA" andere "NEIN" für unterschiedliche Bewertungskriterien.
Ändere ich jetzt bei EINEM Bewertungskriterium die Ausprägung von "JA" auf "NEIN", werden AUCH ALLE ANDEREN "JA" auf "NEIN" geändert.
Die Änderung betrifft also nicht nur, den aktuellen Datensatz, sondern ändert die Zuordnung des Primärschlüssels zum Text (wenn man das so sagen kann).
Ändere ich den einen Datensatz erneut, mache ich die Änderung rückgängig. (Die Ausprägungen, die vorher schon "NEIN" lauteten, bleiben auch "NEIN".
Daher meine Folgerung, dass die Änderung anhand der Primärschlüssel erfolgt und nicht aufgrund des "Textes".

Kann man dieses Problem mit den Boardmitteln von Access 2010 lösen oder braucht man dazu VBA oder ähnliches?

Ich wäre für jeden Tipp äußerst dankbar!

Viele Grüße
Tobias

MzKlMu

Hallo,
Du musst darauf achten, dass das Fremdschlüsselfeld der Tabelle MöglicheAusprägung gefüllt wird, diese Tabelle ist ja die Zuordnungstabelle.
Es empfiehlt sich daher, das Fremdschlüsselfeld eindeutig zu benennen, z.B. mit einem angehängten _F.
Überhaupt, sollte es in einer Datenbank keine gleichnamigen Felder geben, um solcher Verwechselungsgefahr zu begegnen.
Gruß Klaus

TobiasW

Vielen Dank für die schnelle Antwort.

Allerdings kann es daran leider nicht liegen. Die Join-Tabelle ist komplett gefüllt und alle Felder sind eindeutig benannt.

Ich denke nicht, dass es an der Datenbank selber liegt, sondern am Access bzw. am Formular oder an einer vorgelagerten Abfrage.

Würde mich daher über weitere Tipps sehr freuen!

Und noch eine Frage am Rande: Gibt es im Forum Profis, die evtl. gegen Bezahlung weiterhelfen können bzw. das Problem direkt beheben?

bahasu

Hi,

Zitat von: TobiasW am Oktober 15, 2013, 20:50:44
Gibt es im Forum Profis, die evtl. gegen Bezahlung weiterhelfen können bzw. das Problem direkt beheben?

siehe: http://www.access-o-mania.de/forum/index.php?topic=6969

Harald
Servus

MzKlMu

Hallo,
die ganze Schilderung deutet auf ein falsches Fremdschlüsselfeld. Ich würde fast eine Wette eingehen, dass es so ist. Trotz der Beteuerung.
Gruß Klaus