collapse

* Benutzer Info

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

* Wer ist Online

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

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14419
  • stats Beiträge insgesamt: 71647
  • stats Themen insgesamt: 9667
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Doppelte M:N Beziehung auslösen  (Gelesen 406 mal)

Offline Atuatuca

  • Access-Profi
  • **
  • Beiträge: 115
Doppelte M:N Beziehung auslösen
« am: Juli 07, 2019, 17:03:58 »
Hallo Access-O-Maniacs,

habe ein Problem mit doppelte M:N-Beziehung

Lieferant <<->> Artikel (Lieferant hat mehrere Artikel, aber Artikel hat auch mehrere Lieferanten
Charge <<->> Artikel (Artikel hat eine Charge, aber eine Charge hat auch mehrere Artikel.

Eine M:N Beziehung mit zusätzliche Tabelle bekomme ich hin aber dann....

Ich vermute das es an der Tabellen-Beziehungen liegt, aber ich finde keine Lösung.
Die Daten in der Test-Datenbank wurden händisch eingegeben und befüllen das Formular (frm_Art_Charge_Lfrt), aber ich kann keine neuen Datensätze hinzufügen.

Gruss
Rudi
 

Offline Atuatuca

  • Access-Profi
  • **
  • Beiträge: 115
Re: Doppelte M:N Beziehung auslösen
« Antwort #1 am: Juli 16, 2019, 00:40:13 »
Moin Access-O-Maniacs,

ich bin ein bisschen weitergekommen, aber irgenwie ist da der wurm drin.
Ich glaube das die Beziehungen nicht stimmen.

Leider ist es schon eine weile herr mit dem access.

Vielleicht habt ihr ein Denk-Anstoss.

Ziel soll sein, dass zu jeder BA ein kombination aus Artikel und Lieferant stehen soll.
Artikel und Lieferant haben eine M:N beziehung, welche ich mittels eine zwischen Tabelle
in 2x 1:N Beziehungen aufgelöst habe.

Test DB im Anhang.

Gruss Rudi

 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7995
Re: Doppelte M:N Beziehung auslösen
« Antwort #2 am: Juli 16, 2019, 10:37:33 »
Hallo,
Dein Beispiel entspricht ja nicht den Bildern aus Deinem 1.Beitrag.
Im Beispiel ist auch keine doppelte n:m Beziehung.

Bitte erkläre die Zusammenhänge mal genauer.
Gruß
Klaus
 

Offline Atuatuca

  • Access-Profi
  • **
  • Beiträge: 115
Re: Doppelte M:N Beziehung auslösen
« Antwort #3 am: Juli 16, 2019, 12:41:51 »
Hallo MzKlMu,

habe die N:M beziehung erst einmal reduziert auf eine N:M beziehung.
Um das ganze zu verstehen und es einfacher zu machen.

Hinzu käme (zum späteren Zeitpunkt) noch eine Tabelle (tab_Charge) welche auch an Artikel und Lieferant "gebunden" ist.

Die tab_Art_Lfrt müsste dann um die Spalte FS_Charge (=Fremdschlüssen Charge erweitert werden)
und an Diesen die tab_Charge verknüpft werden.

Kann ich gerne wie o.g. machen.

Gruss
Rudi
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 2180
Re: Doppelte M:N Beziehung auslösen
« Antwort #4 am: Juli 16, 2019, 19:17:50 »
Hallo Rudi,
Zitat
Die tab_Art_Lfrt müsste dann um die Spalte FS_Charge (=Fremdschlüssen Charge erweitert werden)
und an Diesen die tab_Charge verknüpft werden.
Genau; - und der PK dieser Tabelle gehört dann als FK in die
Bewegungstabelle.

Was ist denn tbl_BA? Und warum gibt in der n:m einen FK auf diese
Tabelle, wenn die Bezihung doch anders herum eingerichtet ist?
I.Ü. viel Spass mit deinen kryptischen Objektnamen. Da droht schon
nach zwei Wochen die Verständnislosigkeit.

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 Atuatuca

  • Access-Profi
  • **
  • Beiträge: 115
Re: Doppelte M:N Beziehung auslösen
« Antwort #5 am: Juli 16, 2019, 20:56:49 »
Hallo Ekkehard,

habe jetzt mal eine Beziehungsmodell "gebastelt". Siehe Anhang.
Geänderte DB habe ich auch nochmal angehängt.

Artikel, Charge und Lieferant (verbunden mit 2x M:N-Beziehung über Tabelle Lfrt_Art) sollen mit einer Beanstandung (BA) in Verbindung stehen. Artikel, Charge und Lieferant können mehrfach in verschiedenen Beanstandungen (BA) vorkommen.

Irgendwie funktioniert es mit den Verknüpfungen / Beziehungen nicht. Die DB "vergisst" immer die Werte. Wenn ich jedoch in der Tabelle BA gucke, dann sind da mehrere Datensätze, kann Diese jedoch nicht öffnen mit dem "+" wie bei den anderen Tabellen.

Bzgl. der kryptischen Objektnamen. Mit den meisten Bezeichnungen arbeite ich tagtäglich.

BA = Beanstandung
Art = Artikel
Lfrt = Lieferant
Charge = Charge (=Schmelznummer)
FS = FK = Fremdschlüssel
ID_... = PK = Primärschlüssel mit Autowert
tab = Tabelle
frm = Formular
ufrm = Unterformular
abfr = Abfrage
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 2180
Re: Doppelte M:N Beziehung auslösen
« Antwort #6 am: Juli 17, 2019, 17:06:09 »
Hallo Rudi,
Zitat
arbeite ich tagtäglich.
Aber ich/wir hier nicht.
Zitat
BA = Beanstandung
Art = Artikel
Lfrt = Lieferant
O.K., Rest ist klar bzw. gängig.
Die Beziehung zwischen tab_BA und tab_Lfrt_Art ist falsch herum bzw.
müsste als n:m wohl eher so aussehen.
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 Atuatuca

  • Access-Profi
  • **
  • Beiträge: 115
Re: Doppelte M:N Beziehung auslösen
« Antwort #7 am: Juli 17, 2019, 19:55:33 »
Moin Ekkehard,

bin mir nicht ganz sicher ob das so richtig ist, bzw. ich mich nicht eindeutig genug ausgedrückt habe.   ;D

Eine Beanstandung hat immer nur eine Kombination aus Artikel, Charge und Lieferant.
Eine Kombination aus Artikel, Charge, Lieferant kann auf mehreren Beanstandungen auftauchen.

Somit Bestünde doch eine 1:n Beziehung zwischen Beanstandung und der Kombination aus Artikel, Charge und Lieferant, oder bin ich da falsch gewickelt ?

Den Namen dieses Threads bezieht sich auf der Kombination Artikel, Charge und Lieferant.
Die dann mit der Tabelle BA verknüpft werden soll.

Ein Artikel kann mehrere Chargen haben und auch mehrere Lieferanten.
Ein Lieferant hat mehrere Artikel und mehrere Chargen
Ein Charge kann mehrere Artikel haben jedoch nur ein Lieferant.

Gruss
Rudi
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 2180
Re: Doppelte M:N Beziehung auslösen
« Antwort #8 am: Juli 18, 2019, 14:14:58 »
Hallo Rudi,
Zitat
Eine Beanstandung hat immer nur eine Kombination aus Artikel, Charge und Lieferant.
Eine Kombination aus Artikel, Charge, Lieferant kann auf mehreren Beanstandungen auftauchen.
O.K., hatte ich wohl falsch verstanden. Dann schmeiss die "tab_BA_LAC"
wieder raus und mach es so.
In meinem letzten Bild sind auch Fehler; - da habe ich vergessen die
unnötigen FKs zu löschen.
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 Atuatuca

  • Access-Profi
  • **
  • Beiträge: 115
Re: Doppelte M:N Beziehung auslösen
« Antwort #9 am: Juli 18, 2019, 20:57:04 »
Moin Ekkehard,

müssten nicht in der Tabelle mit Artikel, Charge und Lieferant die Spalten mittels Primärschlüssel eindeutig (nur einmal vorkommend) gekennzeichnet werden.  ?

Die Kombination aus Artikel, Lieferant und Lieferant gibt es jeweils nur einmal.

Habe meine Idee / Vorschlag mal bildlich angehängt.

Gruss
Rudi
 

Offline Atuatuca

  • Access-Profi
  • **
  • Beiträge: 115
Re: Doppelte M:N Beziehung auslösen
« Antwort #10 am: Juli 18, 2019, 22:14:02 »
Es muss natürlich heissen

Die Kombination aus Artikel, Charge und Lieferant gibt es jeweils nur einmal.
 

Offline Atuatuca

  • Access-Profi
  • **
  • Beiträge: 115
Re: Doppelte M:N Beziehung auslösen
« Antwort #11 am: Juli 18, 2019, 23:40:33 »
Moin die Damen und Herren,

habe noch mal ein bisschen die Tastatur betätigt und meine DB angepasst und rumprobiert, aber komme nicht mehr weiter.

1) Egal welchen Artikel ich angeben, es gibt immer nur ein Lieferant. Obwohl mehrere Lieferanten den gleichen Artikel haben mit anderen Chargen.

Ich habe 2 Varianten:
1) Hauptformular (frm_BA)mit Unterformular (ufrm_BA) verbunden über eine ID und ein FS und eine dazugehörige Abfrage (abfr_frm_BA)
2) nur ein Hauptformular (frm_BA_1 mit entsprechenden Feldern und eine dazugehörige Abfrage (abfr_frm_BA1)

Es ist bestimmt irgend etwas kleines aber ich finde es nicht.

Gruss
Rudi
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 2180
Re: Doppelte M:N Beziehung auslösen
« Antwort #12 am: Juli 19, 2019, 15:58:00 »
Hallo Rudi,
Zitat
müssten nicht in der Tabelle mit Artikel, Charge und Lieferant die Spalten mittels Primärschlüssel eindeutig (nur einmal vorkommend) gekennzeichnet werden.  ?
Eindeutig ja, aber nicht als PK. Richte den Autowert als PK ein, und
erzeuge einen eindeutigen Mehrfelderschlüssel (siehe Anlage).
Deine DB lade ich mir gleich runter, und schau es mir (später) mal an.
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 Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 2180
Re: Doppelte M:N Beziehung auslösen
« Antwort #13 am: Juli 19, 2019, 18:06:45 »
Hallo Rudi,
DB anbei zurück; - Forms Artikel und Beanstandungen angepasst, Index in der n:m gesetzt.
Achtung, ich habe einige Controls umbenannt.
gruss ekkhard
--
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 Atuatuca

  • Access-Profi
  • **
  • Beiträge: 115
Re: Doppelte M:N Beziehung auslösen
« Antwort #14 am: Juli 19, 2019, 19:55:32 »
Moin Ekkehard,

das sieht sehr gut aus. Ich würde aber gerne nach Auswahl des Artikels, die weiteren Werte (Charge und Lieferant) auch per gefiltertes Kombinationsfeld auswählen wollen. Siehe DB, frm_BA_1

kombinationsfeld Artikel: ID_Art; ArtNr; Kurztext
Datensatzherkunft: tab_Art, gebundene Spalte 1 (=ID_Art)

kombinationsfeld Charge: ID_Charge; Charge; FS_Art wie cbo_Art
Code: SQL
SELECT tab_Charge.ID_Charge, tab_Charge.Charge, tab_Art_Lfrt_Charge.FS_Art
FROM tab_Charge INNER JOIN tab_Art_Lfrt_Charge ON tab_Charge.ID_Charge = tab_Art_Lfrt_Charge.FS_Charge
WHERE (((tab_Art_Lfrt_Charge.FS_Art)=[Formulare]![frm_BA_1]![cbo_Art]))
ORDER BY tab_Charge.Charge;

kombinationsfeld Lieferant: ID_Lfrt; LfrtName; FS_Art wie cbo_Art und FS_Charge wie cbo_Charge
Code: SQL
SELECT tab_Lfrt.ID_Lfrt, tab_Lfrt.LfrtName, tab_Art_Lfrt_Charge.FS_Art, tab_Art_Lfrt_Charge.FS_Charge
FROM tab_Lfrt INNER JOIN tab_Art_Lfrt_Charge ON tab_Lfrt.ID_Lfrt = tab_Art_Lfrt_Charge.FS_Lfrt
WHERE (((tab_Art_Lfrt_Charge.FS_Art)=[Formulare]![frm_BA_1]![cbo_Art]) AND ((tab_Art_Lfrt_Charge.FS_Charge)=[Formulare]![frm_BA_1]![cbo_Charge]))
ORDER BY tab_Lfrt.LfrtName;

Der Grund ist, dass es ca. 18000 Artikel, 36500 Chargen und 181 Lieferanten gibt. Von der Menge an Bestellungen und Lieferscheinen ganz zu schweigen. Oder bin ich da falsch gewickelt ?

Gruss
Rudi.

 

 

doppelte Dtensätze beim export exel in access vermeiden

Begonnen von thomutBoard Microsoft Excel

Antworten: 2
Aufrufe: 3260
Letzter Beitrag Juli 05, 2010, 21:28:04
von thomut
Doppelte Einträge nach Datum aussortieren

Begonnen von macpitBoard Tabelle/Abfrage

Antworten: 5
Aufrufe: 5373
Letzter Beitrag Juli 21, 2010, 21:39:55
von database
Doppelte Einträge nach mehreren Kriterien löschen

Begonnen von Falke22Board Microsoft Excel

Antworten: 4
Aufrufe: 6172
Letzter Beitrag August 06, 2010, 19:49:32
von Stapi
Gültigkeitsregel für nicht doppelte Kundennummern

Begonnen von AccessfreundBoard Formular

Antworten: 55
Aufrufe: 27010
Letzter Beitrag Oktober 07, 2010, 12:16:38
von Accessfreund
Doppelte Einträge nicht berücksichtigen

Begonnen von bigralaBoard Tabelle/Abfrage

Antworten: 9
Aufrufe: 6383
Letzter Beitrag November 22, 2010, 02:00:06
von bigrala

Advertisment / Werbung - Amazon Affiliate Links